-1

私はunityscriptとunityが初めてで、タッチの移動位置がタッチ開始の右側に+100になったときにアニメーショントリガーを作成しようとしているので、+500と+1000も試しましたが、アニメーションが再生されているようですタッチは画面上で 100、500、または 1000 を超えています。タッチの開始位置 + (量) ではありません。

#pragma strict
var distance : float = 10;
var joystick : GameObject;
private var first : boolean = false;
function Start () {

}

function Update () {
transform.eulerAngles = Vector3(0,Camera.main.transform.eulerAngles.y + 180,0);

var v3Pos : Vector3;
if (Input.touchCount > 0 && 
          Input.GetTouch(0).phase == TouchPhase.Began) {

            // Get movement of the finger since last frame
            var touchDeltaPosition:Vector2 = Input.GetTouch(0).position;
            if(!first){
            var touchdet : Vector2 = touchDeltaPosition;
            first = true;
            }

            // Move object across XY plane
            v3Pos = Vector3(touchDeltaPosition.x, touchDeltaPosition.y, distance);
         transform.position = Camera.main.ScreenToWorldPoint(v3Pos);
        }


 if (Input.touchCount > 0 && 
          Input.GetTouch(0).phase == TouchPhase.Moved) {

            // Get movement of the finger since last frame
            var touchAlphaPosition:Vector2 = Input.GetTouch(0).position;

            // Move object across XY plane
            v3Pos = Vector3(touchAlphaPosition.x, touchAlphaPosition.y, distance);
         transform.position = Camera.main.ScreenToWorldPoint(v3Pos);
        }

        if (Input.touchCount > 0 && 
          (Input.GetTouch(0).phase == TouchPhase.Ended || Input.GetTouch(0).phase == TouchPhase.Canceled )) {

            // Get movement of the finger since last frame
            var touchBetaPosition:Vector2 = Input.GetTouch(0).position;
            first = false;
            // Move object across XY plane
            v3Pos = Vector3(touchBetaPosition.x, 600, distance);
         transform.position = Camera.main.ScreenToWorldPoint(v3Pos);
        }

        if(first)
        {
        if(touchAlphaPosition.x > touchdet.x + 100)
        {
        animation.Play("Right");
        }
        }

}
4

1 に答える 1

1

変数 touchDet は関数 Update で宣言および初期化されるため、値は関数呼び出し間で保持されません。TouchPhase.Began イベントが発生する反復以外のすべての touchDet は、常に Vector2.zero に等しくなります。

于 2013-06-14T02:22:05.570 に答える