Menu
CoddyTech

사물을 바라보기

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

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

챌린지

중급

로버는 이미 화살표 키를 사용해 월드의 x축과 z축을 따라 움직입니다. 움직이는 방향을 바라보게 하세요. 움직이는 동안 앞쪽(전방 축)이 이동 방향을 향해야 하며, 대각선 방향도 포함됩니다. 아무 키도 누르지 않으면 멈춰서 마지막으로 이동한 방향을 계속 바라봅니다.

Play를 누르고, 돌아다닌 다음 Check를 누르세요.

직접 해보기

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;
        // 로버가 이동하는 방향을 바라보도록 회전시키세요
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

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