*공부하는 중인 아마추어의 의견이니 좋은 방법이 있으면 댓글 부탁드리겠습니다.
1.Vector.Set으로 위치값 얻고 transform.Translate로 이동. 대각선 이동은 안된다.
public float speed;
private Vector2 vector;
void Update()
{
if (Input.GetAxisRaw("Horizontal") != 0 || Input.GetAxisRaw("Vertical") != 0)
{
vector.Set(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"));
if (vector.x != 0)
{
transform.Translate(vector.x * speed, 0, 0);
}
else if (vector.y != 0)
transform.Translate(0, vector.y * speed, 0);
}
}
|
cs |
2.transform.Translate(Vector3.방향*속도*시간)
public int speed;
private void Update()
{
if (Input.GetKey(KeyCode.LeftArrow))
{
transform.Translate(Vector3.left * speed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.RightArrow))
{
transform.Translate(Vector3.right * speed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.UpArrow))
{
transform.Translate(Vector3.up * speed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.DownArrow))
{
transform.Translate(Vector3.down * speed * Time.deltaTime);
}
}
|
cs |
3.위의 내용과 같으면서 간결하지만, 좌표값에 더해서 그런지 물리충돌이 무시된다.
Vector2 position;
public float Speed = 1;
private void Start()
{
position = transform.position;
}
void Update()
{
position.x += Speed * Time.deltaTime * Input.GetAxisRaw("Horizontal");
position.y += Speed * Time.deltaTime * Input.GetAxisRaw("Vertical");
transform.position = position;
}
|
cs |
'웹, 게임 제작' 카테고리의 다른 글
유니티 (초보/ 중급/ 고급) 책 추천, 볼만한 내용들 (0) | 2020.08.27 |
---|---|
한장짜리 기획서 쓰기 [유니티 게임 제작 입문] (0) | 2020.08.26 |
유니티 플레이어 이동 관련 코드 모음2 (0) | 2020.08.26 |
레벨 디자인에 대해서 [유니티 게임 제작 입문] (0) | 2020.08.24 |
재미 만들기에 대해서 [유니티 게임 제작 입문] (0) | 2020.08.24 |
댓글