1

次のカメラ パン js スクリプトを作成して、正常に動作するようにしようとしています。つまり、カメラを左右にパンします。私がこれまでに達成したことは、カメラを左に動かして開始位置に戻すことです。クリック/タッチされた gui.button で左右に移動できません。

js スクリプトは次のとおりです。

    #pragma strict

var target : GameObject;
var xpositionLeft = 10;
var xpositionRight = -10;
//var smooth : float = 5; // Don't know where should I put this var to make it pan smooth?

private static var isPanning = false;

function Update()
{
if(isPanning == true)
{
transform.position.x = target.transform.position.x;
transform.position.x = xpositionLeft;
    }
    else
    {
    transform.position.x = target.transform.position.x; // It only pan the camera left, not right!
    transform.position.x = xpositionRight;
    }
}

static function doPanning ()
    {
        isPanning = !isPanning;
    }

誰かがこのスクリプトを機能させる方法について手がかりを与えることができますか? 私は Unity とプログラミングが初めてなので、どんな助けも大歓迎です。お時間をいただき、ご回答いただきありがとうございます。

4

1 に答える 1

1

コードにはいくつかの問題があります。まず、transform.position.x = target.transform.position.x;次の行ですぐに上書きしているため、行は何の効果もありません。コードは基本的にとtransform.position.xの間で反転するだけです。-1010

次に、期待する動作がコード内のロジックと一致しません。pan leftisPanning true と false の 2 つの状態しかありませんが、pan rightとの 3 つの状態が必要ですdo nothing

// how far the camera should move witch each click
var xPositionOffset = 10;

// -1 = left, 0 = do dothing, 1 = right
var panDirection = 0;

function Update()
{
    if (panDirection != 0) // pan left/right
    {
        transform.position.x = transform.position.x + (panDirection * xPositionOffset);
        panDirection = 0;
    }
}

panDirectionここで、変数を-1orに設定するだけで1、ボタンが押されてカメラがその側に移動します。

ベクトル演算に問題がある場合は、Unity マニュアルの「ベクトル演算について」の章を参照してください。

上記のコードはカメラをあまりスムーズに動かしませんが、この方法で基本的な概念を理解しやすくなります。この関数Vector3.MoveTowardsを使用してよりスムーズな動きを得ることができます。リンクされた参照に示されている例は、それを実装するのに役立ちます。

于 2014-05-01T02:13:47.960 に答える