물리 오류가 나는 경우 대부분은
물리 연산이 들어가는 캐릭터 이동을 FixedUpdate가 아니라 Update에서 처리한 경우.
FixedUpdate에서 처리하면서 Time.deltatime을 Time.fixedDeltatime으로 고쳐써준다.
혹은 코루틴의 경우
null 이 아니라 new WaitForFixedUpdate()를 리턴해주자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | protected override IEnumerator SprinterCoroutine() { while (true) { _Rigidbody.MovePosition(transform.position + transform.forward * Spd * Time.fixedDeltaTime); yield return new WaitForFixedUpdate(); // fixedUpdate를 기다린다. } } protected override IEnumerator SprinterCoroutine() { while (true) { transform.Translate(transform.forward * Spd * Time.deltaTime); yield return null; // Update를 기다린다. } } |
'🌍 Unity > 유니티 프로그래밍' 카테고리의 다른 글
Unity Fade in Fade out 유니티 페이드 인 페이드 아웃 스크립트 (0) | 2019.06.30 |
---|---|
유니티 LINQ 활용하기 (0) | 2019.06.06 |
Unity Script checkbox 유니티 스크립트 체크박스가 없을 때 (0) | 2019.05.23 |
유니티 Touch로 카메라 회전 ( Unity Touch camera rotate ) (0) | 2019.02.03 |
유니티 Unity Send Message (0) | 2019.01.09 |