Menu
CoddyTech

Phương hướng

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 25 trên 85.

Unity có tên gọi cho sáu hướng, mỗi hướng dài một đơn vị:

  • Vector3.right (1, 0, 0) và Vector3.left (-1, 0, 0)
  • Vector3.up (0, 1, 0) và Vector3.down (0, -1, 0)
  • Vector3.forward (0, 0, 1) và Vector3.back (0, 0, -1)

Ngoài ra còn có Vector3.zero (0, 0, 0) và Vector3.one (1, 1, 1). Vì mỗi hướng dài một đơn vị, nhân một hướng với tốc độ sẽ tạo ra chuyển động có độ dài đúng bằng tốc độ đó. Chú ốc sên này bò ra xa camera với tốc độ 0.5 đơn vị mỗi giây:

public float speed = 0.5f;

void Update()
{
    transform.position += Vector3.forward * speed * Time.deltaTime;
}

Đó là chuyển động giống như new Vector3(0, 0, speed * Time.deltaTime), nhưng hướng này dễ đọc hơn và khó đặt nhầm trục hơn. Dấu trừ đảo ngược một hướng: -Vector3.forward là Vector3.back. Những hướng này thuộc về thế giới, không thuộc về đối tượng: Vector3.forward là trục z của thế giới ngay cả khi ốc sên quay về hướng ngược lại. Bài học tiếp theo sẽ di chuyển các đối tượng theo hướng chúng đang quay mặt.

challenge icon

Thử thách

Dễ

Điều khiển móc cần cẩu bằng bốn phím mũi tên, sử dụng các hướng có tên trong Unity.

  1. Trong Update(), viết một câu lệnh if với Input.GetKey cho mỗi phím mũi tên.
  2. Mỗi câu lệnh cộng hướng tương ứng nhân với speed * Time.deltaTime: Vector3.right, Vector3.left, Vector3.up hoặc Vector3.down, như trong transform.position += Vector3.up * speed * Time.deltaTime;.

Nhấn Chơi và điều khiển: móc trượt ngang, nâng lên rồi hạ xuống. Sau đó nhấn Kiểm tra.

Tự làm thử

using UnityEngine;

public class Hook : MonoBehaviour
{
    public float speed = 2f;

    void Update()
    {
        // Phím mũi tên phải/trái: di chuyển theo trục x. Phím mũi tên lên/xuống: nâng lên và hạ xuống.
    }
}

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