본문 바로가기
프로그래밍/Unity

[Unity] 오브젝트 이동

by 정빈e 2022. 3. 22.
728x90

키보드 입력을 통해 오브젝트 x, y 축 이동하기

 

실행화면

 

적용 코드

void Update()
    {
        Vector3 vec = new Vector3(
            Input.GetAxis("Horizontal") * Time.deltaTime,
            Input.GetAxis("Vertical") * Time.deltaTime, 
            0);
        transform.Translate(vec);
    }

이 스크립트는 실린더 오브젝트와 카메라에 적용해서 카메라가 오브젝트를 계속 주시하게 했다.

 

Input Manager에서 Horizontal, Vertical에 적용되어있는 키 확인 후 누르면 움직임을 줄 수 있다.

GetAxisRaw를 사용하면 -1, 0, 1로 반환받아 움직이고 GetAxis를 사용하면 소수점까지 반환받는다.

 

누르는 키에 맞춰 transform.Translate()에 값을 인자로 전달해주면 된다.

※ 주의

Time.deltaTime을 사용하지 않으면 프레임 수에 따라 업데이트 주기와 횟수가 차이가 난다.

이 차이를 없애기 위해 사용한다.

 

Time.deltaTime : 이전 프레임의 완료까지 걸린 시간

deltaTime 값은 프레임이 적으면 크고, 프레임이 많으면 작음

 

Time.deltaTime 사용하는 방법

Translate : 벡터에 곱하기

transform.Translate(Vec * Time.deltaTime);

 

 

Vector 함수 : 시간 매개변수에 곱하기

Vector3.Lerp(Vec1, Vec2, T * Time.deltaTime);
728x90

댓글