2013-06-13 5 views
-1

저는 유니티 스크립트와 화합에 익숙하지 않고 터치가 +100 터치가 시작될 때 애니메이션 트리거를 만들기 위해 노력하고 있습니다. +500 및 +1000을 시도했으며 터치가 100,500 또는 1000 이상 지나면 애니메이션이 재생되고 터치가 아닌 것 같습니다 .began 위치 + (금액), 도움을 주시면 감사하겠습니다. 시간을 내 주셔서 감사합니다. 나는 유니티 스크립트를 처음 사용합니다터치가 움직일 때 애니메이션을 움직이면 터치가 시작됩니다.

#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"); 
     } 
     } 

} 
+0

"어떻게해야합니까?"라는 질문보다 "내 코드에 어떤 문제가 있습니까?" – Justin

답변

1

변수 touchDet은 함수 호출 사이에 값이 유지되지 않도록 Update 함수에서 선언되고 초기화됩니다. touchPhase.Began 이벤트가 발생하는 반복을 제외하고 touchDet은 항상 Vector2.zero와 같습니다.

+0

감사합니다 남자, 당신이 옳았어요. 자바 스크립트가 처음이에요. – JRowan