2D 게임을 제작 중입니다. 나는 캐릭터와 타일을 가지고있다. 타일은 1 x 1 단위이며 장면에 배치됩니다.타일로 타일 이동
다음 코드를 사용하여 문자를 이동했습니다. 다음은 내 캐릭터 ("Hero")의 코드입니다.
public class Hero : MonoBehaviour {
private Vector2 speedX = new Vector2(1, 0);
private Vector2 speedY = new Vector2(0, 1);
void Update() {
if(Input.GetKey("left")) {
rigidbody2D.MovePosition(rigidbody2D.position - speedX * Time.deltaTime);
} else if(Input.GetKey("right")) {
rigidbody2D.MovePosition(rigidbody2D.position + speedX * Time.deltaTime);
} else if(Input.GetKey("up")) {
rigidbody2D.MovePosition(rigidbody2D.position + speedY * Time.deltaTime);
} else if(Input.GetKey("down")) {
rigidbody2D.MovePosition(rigidbody2D.position - speedY * Time.deltaTime);
}
}
}
작동하지만 예상대로 움직이지 않습니다. 화살표 키를 한 번 누르면 0.2 단위 씩 움직입니다. 플레이어가 키 당 1 단위 이동하도록하려면 어떻게해야합니까?
무엇을 놓쳤습니까?
문서 : 나는 당신이 키를 누르면 한 번 새 위치로 캐릭터의 순간 이동을 달성하고자처럼 보이는 무엇을보고에서 Rigidbody2D.MovePosition
당신이 RigidBody2D를 사용하는 이유는 무엇입니까? 게임에서 물리학을 사용하려고합니까? –
게임에서 충돌 감지가 필요합니다. – Raptor