안녕하세요 ~ 겁나게 더운 여름날에 선풍기 쐐며 포스팅하는 솔루션 입니다 :D
오늘은 RPG, FPS 장르를 막론하고 거의 필수로 쓰이는 플레이어, 캐릭터를 원하는 장소로 움직이게 만드는 방법을 올리도록 하겠습니다 ~
먼저 스크립트를 작성해야겠죠 ?
이동속도가 무조건 필요하진 않지만 저는 편하게 사용할 수 있도록 float 자료형으로 선언하고 인스펙터창에서 편하게 변경할 수 있도록 public 으로 만들겠습니다.
그리고 Horizontal 입력값과 Vertical 입력값을 h와 v 변수에 넣고, transform.Translate를 이용해서 오브젝트가 Vector3 좌표 상에서 x값에 h값을, y값에 0을 (y는 게임 캐릭터로 따졌을 때 위아래를 말합니다. 보통은 점프를 해야 위아래로 움직여져야 하니 이동상에서는 0으로 땅에 붙어있도록 해줍니다.) z값에는 v값을 넣고 속도값을 곱해줍니다.
저는 플레이어 캐릭터를 'Cube' 오브젝트로 따지고 Cube 오브젝트에 스크립트를 추가해줬습니다. 그리고 속도값을 적당히 5정도로 주겠습니다. (저는 이동속도로 사용할 변수를 public으로 선언하고 스크립트 상에서 초기화하지 않았기 때문에 스크립트가 정상이여도 속도값에 0이 곱해지기 때문에 움직이지 않습니다.)
그리고 다들 익숙하신 WSAD키를 누르시면 원하는 방향으로 이동됩니다 ! 물론 방향키로도 가능합니다.
여기서 뭔가 의문이 드시는 분들이 계실겁니다. 방향키나 WSAD라는 키로 이동을 하라는 코딩을 하지 않았거든요 ! 혹은 WSAD가 아닌 다른 키 입력으로 이동을 하고 싶으신 분들도 계실겁니다.
바로 Edit - Project Settings - Input으로 가시면 우측에 인스펙터창에 표시되는데 여기에 명시되어 있습니다. 기본적으로 Horizontal 입력값은 방향키 left, right와 a,d 로 되어 있고 Vertical 입력값은 방향키 down, up과 s,w로 되어 있네요 ~
만약 입력값을 바꾸고 싶으신 분들은 저기에서 바꾸셔도 되고 혹은 스크립트 상에서 Input.GetKey 값을 원하는 걸로 바꾸셔서 사용하시면 됩니다 ~
오늘은 간만에 기초가 되는 정보를 올리는 것 같아 뿌듯하네요 ! 매번 쓸모없는 것만 포스팅 하다가 하하... 여튼 개발을 꿈꾸시는 분들에게 조그이나마 도움이 되었기를 바랍니다 !
'Unity (C#) > Old' 카테고리의 다른 글
유니티 오브젝트간 거리 알아내기 (2) | 2018.08.13 |
---|---|
유니티 오브젝트 활성화/비활성화 시키기 (보이게, 안보이게 하기) (0) | 2018.08.09 |
유니티 제한시간/누적시간 만들기 (0) | 2018.08.06 |
유니티 함수 지연 실행하기 (Invoke) (2) | 2018.08.05 |
유니티 오브젝트 회전시키기 (0) | 2018.08.03 |
최근댓글