2017-04-27 1 views
0

제 게임에서 저는 팩맨 스타일의 경기장을 가지고 있습니다. 가장자리 충돌 장치가 각 선 위에 배치됩니다. 이제 내 플레이어 (WASD 스타일)의 이동을 위해 원래 transform.Translate를 사용했습니다. 이것은 내 선수가 갖고 싶은 최고의 유체 동작을 주었다. 대부분의 사람들은 가장자리 충돌자를 비효율적으로 만들었습니다. 왜냐하면 플레이어가 가장자리 위로 오른쪽 위치를 변형시키기 때문입니다. 이 문제를 해결하기 위해 rb.AddForce (새로운 Vector2 (Input.GetAxis ("Horizontal") * 속도, Input.GetAxis ("Vertical") * 속도)를 사용했지만 대신 플레이어가 이걸로 어떻게 움직이는 지 싫어합니다. , WSAD 키를 놓아도 여전히 이동하고 계산 된 이동이 아닌 가속 된 이동을 제공합니다.움직임에 문제가 생겼습니다.

이 문제를 해결하는 방법을 알고있는 사람이 있습니까? 변환과 같은 유체 WASD 이동. 에지 colliders를 통과하지 않습니다.

을 나는 그것을 감사!

+0

참조 [이] (https://stackoverflow.com/questions/42537362/stop-character

Vector2 inputVector = new Vector2(Input.GetAxis("Vertical", Input.GetAxis("Horizontal")); inputVector = inputVector.normalized; // Makes the Length of the vector = 1 even if pressed diagonally, if you don't want something like this, remove it rb.velocity = inputVector * speed; 

자세한 내용은 동영상을보고해야 - 키가 릴리즈 될 때/42537458 # 42537458) [this] (https://stackoverflow.com/questions/43166587/stop-object-instantly-after-collison/43167072#43167072). 둘 다 키가 해제 될 때 Object를 중지하는 방법을 설명합니다. 아니요. '변형. 번역'으로 강체를 절대로 움직여서는 안됩니다. AddForce 또는 Move 함수가 좋습니다. – Programmer

답변

관련 문제