유니티로 게임을 개발할때 케릭터를 한번에 일정범위 만큼 움직여야 할 경우가 있습니다.
제가 사용하는 방법은 Translate 함수를 사용합니다.
이 예제는 X 방향으로 moveSpeed 만큼 한번에 이동시키는 코드인데요, Mathf.Round가 사용된 이유는 소수점 자리를 항상 0 으로 강제로 유지시키기 위해서 넣었어요.
transform.Translate(Vector3.left * moveSpeed);
transform.position = new Vector3(Mathf.Round(transform.position.x), transform.position.y, transform.position.z);
|
요렇게 구현하면 한번에 일정범위만큼 움직일 수 있답니다.
오른쪽 왼쪽 방향키를 누르면 케릭터가 일정 간격으로 한번에 움직일 수 있도록 풀소스코드는 아래처럼 구현했어요.
using UnityEngine;
public class Player : MonoBehaviour {
public float moveSpeed;
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.LeftArrow))
MoveLeft();
else if (Input.GetKeyDown(KeyCode.RightArrow))
MoveRight();
}
public void MoveLeft()
{
transform.Translate(Vector3.left * moveSpeed);
transform.position = new Vector3(Mathf.Round(transform.position.x), transform.position.y, transform.position.z);
}
public void MoveRight()
{
transform.Translate(Vector3.right * moveSpeed);
transform.position = new Vector3(Mathf.Round(transform.position.x), transform.position.y, transform.position.z);
}
}
'개발 > 정보' 카테고리의 다른 글
유니티 물체가 완전히 안에 있는지 알아보는 방법 (Fully-in case) (0) | 2017.07.05 |
---|---|
유니티에 Magica Voxel 적용하는 방법 (0) | 2017.07.05 |
색다른 간단하게 즐기는 퍼즐게임 - Shape Fold Animals (0) | 2017.07.04 |
유니티 InputManager 항목 추가 방법 (0) | 2017.07.03 |
요즘 유행하는 '스피너' 핸드폰 어플로도 나왔네요 (0) | 2017.06.27 |
유니티 Admob 문제해결방법 (com.google.android.gms:play-services-ads-lite:[11.0.0] 에러) (0) | 2017.06.27 |
5초완성 유니티 android 진동효과 구현 방법 (0) | 2017.06.25 |
온라인 커플게임 The Friends Escape2 (둘이하다 싸우지마세요) (0) | 2017.06.24 |
최근댓글