2014-01-28 3 views
1

저는 게임을 개발하기 위해 화합을 사용하고 있습니다. touch의 startPosition과 End Position을 계산하여 커스텀 슬쩍 제스처를 만들었습니다. 두 위치를 뺀 벡터 방향을 가져 와서 성공적으로 디버깅했습니다.Unity에서 특정 방향으로 물체에 힘을 가하는 방법

그러나 내 게임 개체에 힘을 가하는 것에 관해서는 많이 시도한 후에 어떤 성공도 얻지 못합니다.

여기서 내가 뭘 내용은 다음과 같습니다

볼 그냥 게임 오브젝트입니다
swipeDirection = new Vector3(endPos.x - startPos.x,0f, endPos.z - startPos.z); 

swipeDirection.Normalize(); 

Debug.Log("The direction is "+ swipeDirection); 

ball.rigidbody.AddForce(swipeDirection * 5); 

. 내 iPhone에서 실행할 때마다 게임이 멈추고 첫 번째 스 와이프 후 EXC_BAD_ACCESS 코드가 표시됩니다.

나는 여기 바보 같은 것을 놓치고 있다는 것을 알고있다. 그러나 나는 문자 그대로 붙어있다. 그러니 제발 도와주세요.

감사합니다.

+1

'EXC_BAD_ACCESS'는 일반적으로 캐치되지 않은 NullReferenceException입니다. 'ball' 또는'ball.rigidbody'이 null입니까? 예를 들어, "볼"을 찾지 못했거나 볼에 Rigidbody 구성 요소가 연결되어 있지 않은 경우입니다. – rutter

+0

편집기에서 실행할 때 오류가 발생할 수 있습니다. – Roberto

+0

고정 된 업데이트 방법으로 항상 강제 적용해야합니까? –

답변

0

그래서 방금 코드를 테스트했습니다. 그리고 그것은 작동합니다. 이 문제는 아마도 그 숫자가 매우 작을 가능성이 있으며, 눈에 띄게 이동하려면 많은 힘이 필요합니다. 5를 1000 또는 큰 것으로 변경해보십시오. 그러면 분명히 변경 사항을 볼 수 있습니다. 여기에 내 코드가 있습니다. 강체가있는 볼에 추가되었습니다.

void Start() 
    { 
      Vector3 dir = new Vector3 (100f, 0f, 0f); 
      dir.Normalize(); 
      this.gameObject.rigidbody.AddForce (dir * 100); 
    } 

거의 동일합니다. 당신은 단지 배율을 크게 볼 필요가 있습니다. 행운을 빈다.

관련 문제