W,A,S,D 또는 방향키를 이용해 오브젝트를 원하는 방향으로 이동시키는 방법
부드러운 이동을 구현하는 방법으로 GetAxisRaw를 사용하였다
void Start()
{
myrigid=GetComponent<Rigidbody>(); //Start함수에서 myrigid라는 이름으로 Rigidbody를 상속시켜준다.
}
void Update()
{
float moveDirx = Input.GetAxisRaw("Horizontal"); //Horizontal값을 moveDirx에 넣어준다.
float moveDiry = Input.GetAxisRaw("Vertical");
Vector3 moveHorizontal = transform.right * moveDirx; //moveDirx값이 커지면 transform.right값이 변하므로 그 값이 moveHorizontal값에 들어간다.
Vector3 moveVertical = transform.foward * moveDiry;
Vector3 velocity =(moveHorizontal+moveVertical).normalized*speed; //두 값을 더한값에 normalized(정규화)를 시켜줘서 1.0에 방향값을 구할수 있다. 여기에 원하는 speed 값을 넣어줘서 속도를 정할수 있다.
myrigd.MovePosition(transform.position+velocity*Time.deltaTime); //myrigd.MovePosition함수를 사용해서 움직이는 값을 정할수 있다. Time.deltaTime을 이용해서 원하는 값이 초당 몇씩 이동하도록 해준다.
}
'Unity' 카테고리의 다른 글
[Unity] 레이캐스트(RayCast) 정리 (0) | 2021.06.25 |
---|---|
[Uinty3D] 마우스 클릭 좌표 구하기 (2) | 2021.06.25 |
[Unity] float사용에 유의점 (0) | 2021.05.15 |
[Unity] Rigidbody.velocity로 움직이기 (0) | 2021.03.25 |
Unity(1)-오브젝트 이동시키기 (0) | 2020.08.31 |