본문 바로가기

Unity

게임 오브젝트 이동

반응형

 

  • transform
    • 내가 소속되어 있는 게임 오브젝트의 Transform 컴포넌트
    • 새로운 위치 = 현재 위치 + (방향 * 속도)
      • transform.position += new Vector3(1, 0, 0) * 1;
      • Vector로  방향을 나타낸 경우 
      • Vecor3.right * 1과 동일한 의미로 작성 가능
    • Update 내에서 작성 시 
      • Vecor3.right * 1 * Time.deltaTime
        • deltaTime
          • Update 실행 후 다음 Update 실행 까지의 시간
          • 사양이 좋은 컴퓨터의 경우 이 값이 작음
        • 만약 deltaTime을 곱하지 않는다면  Update는 FPS는 사양이 좋을 수록 더 많이 호출되므로 사양이 좋은 컴퓨터와 그렇지 않은 경우의 이동거리 차이가 발생함
    • Input
      • 키보드, 마우스 등 모든 인풋 관련 처리
      • Input.GetAxisRaw ("단축키명");
        • Input.GetAxisRaw("Horizontal")
          • Edit - Project Settings - InputManager에서 확인 가능
          • Negative : a, left (키보드 왼쪽) => -1
          • Positive : d , right (키보드 오른쪽) => +1

 

Sample code

public class Movement2D : MonoBehaviour
{
    private float moveSpeed = 5.0f;
    private Vector3 moveDirection = Vector3.zero;

    private void Update()
    {
        float x = Input.GetAxisRaw("Horizontal");
        float y = Input.GetAxisRaw("Vertical");

        moveDirection = new Vector3(x, y, 0);
        transform.position += moveDirection * moveSpeed * Time.deltaTime;
    }
}
반응형

'Unity' 카테고리의 다른 글

게임 오브젝트 생성 함수  (0) 2023.07.23
게임오브젝트 물리와 충돌  (0) 2023.07.23
이벤트 함수  (0) 2023.07.23
스크립트 개요  (0) 2023.07.23
게임 오브젝트 Texture 출력  (0) 2023.07.23