Menu
CoddyTech

Nhìn vào các vật thể

Thuộc phần Những kiến thức cơ bản về lập trình trong Unity trong hành trình Unity của Coddy. Bài học 34 trên 85.

transform.LookAt(point) xoay một đối tượng để trục hướng về phía trước của nó, mũi tên z màu xanh lam, hướng về một vị trí trong thế giới. Lệnh này xoay đối tượng chứ không di chuyển nó. Đèn pha này nằm trên một tòa tháp tại (0, 6, 0) và chiếu về phía cổng tại (4, 0, 10):

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

Cổng ở thấp hơn đèn, nên đèn pha cũng nghiêng xuống khi xoay: LookAt hướng thẳng đến điểm đó, bao gồm cả hướng lên hoặc xuống. Sau đó, transform.forward hướng từ đèn về phía cổng.

Khi được gọi trong Start(), LookAt chỉ hướng một lần. Khi được gọi trong Update(), lệnh này hướng lại ở mỗi khung hình, nên đối tượng tiếp tục hướng về điểm đó khi đối tượng hoặc điểm đó di chuyển. Đối số của lệnh này luôn là một vị trí: LookAt(Vector3.forward) hướng đến điểm (0, 0, 1) trong thế giới, một điểm gần tâm thế giới, bất kể đối tượng đang ở đâu.

challenge icon

Thử thách

Trung bình

Cho xe rover quay mặt về hướng nó di chuyển.

  1. Bên dưới chú thích trong Update(), viết if (move != Vector3.zero) để xe rover đang đứng yên vẫn giữ nguyên hướng.
  2. Bên trong câu lệnh đó, gọi transform.LookAt(transform.position + move);.

Nhấn Chơi rồi lái xe: đầu xe rover quay về hướng nó di chuyển. Sau đó nhấn Kiểm tra.

Tự làm thử

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;
        // Xoay xe tự hành theo hướng di chuyển
    }
}

Tất cả bài học trong Những kiến thức cơ bản về lập trình trong Unity

Tự luyện tập: Playground Unity