Menu
CoddyTech

대상 바라보기

Coddy Unity 여정의 Unity 스크립팅 기초 섹션에 포함된 레슨. 85개 중 34번째.

transform.LookAt(point)는 물체의 앞쪽 축인 파란색 z 화살표가 월드의 한 위치를 향하도록 물체를 회전시킵니다. 물체를 회전시키지만 이동시키지는 않습니다. 이 탐조등은 (0, 6, 0)에 있는 탑에 설치되어 있고, (4, 0, 10)에 있는 문을 조준합니다:

void Start()
{
    transform.LookAt(new Vector3(4, 0, 10));
}

문이 조명보다 낮으므로 탐조등은 회전하면서 아래쪽으로도 기울어집니다. LookAt은 위쪽이든 아래쪽이든 상관없이 지점을 똑바로 조준합니다. 이후 transform.forward는 조명에서 문 쪽을 가리킵니다.

Start()에서 호출하면 LookAt은 한 번 조준합니다. Update()에서 호출하면 매 프레임 다시 조준하므로 물체나 지점이 움직이는 동안 물체는 계속 그 지점을 향합니다. 인수는 항상 위치입니다. LookAt(Vector3.forward)는 물체가 어디에 있든 월드 중심 옆의 지점인 월드 좌표 (0, 0, 1)을 조준합니다.

challenge icon

챌린지

중급

로버가 이동하는 방향을 향하게 하세요.

  1. Update()의 주석 아래에 if (move != Vector3.zero)를 작성하여, 정지한 로버의 방향이 유지되게 하세요.
  2. 그 안에서 transform.LookAt(transform.position + move);를 호출하세요.

‘플레이’를 눌러 운전해 보세요. 로버의 앞부분이 이동하는 방향을 향해 회전합니다. 그런 다음 ‘확인’을 누르세요.

직접 해보기

using UnityEngine;

public class Rover : MonoBehaviour
{
    public float speed = 3f;

    void Update()
    {
        Vector3 move = Vector3.zero;
        if (Input.GetKey(KeyCode.RightArrow)) move += Vector3.right;
        if (Input.GetKey(KeyCode.LeftArrow)) move += Vector3.left;
        if (Input.GetKey(KeyCode.UpArrow)) move += Vector3.forward;
        if (Input.GetKey(KeyCode.DownArrow)) move += Vector3.back;
        move = move.normalized;
        transform.position += move * speed * Time.deltaTime;
        // 로버가 이동하는 방향을 바라보도록 회전시키기
    }
}

Unity 스크립팅 기초의 모든 레슨

직접 연습해 보세요: Unity 플레이그라운드