Đối tượng cha và con
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 31 trên 85.
Trong Hierarchy, khi bạn kéo một đối tượng lên một đối tượng khác, nó trở thành đối tượng con và hiển thị thụt vào bên dưới đối tượng cha. Đối tượng con di chuyển, xoay và thay đổi tỷ lệ cùng với đối tượng cha: di chuyển đối tượng cha thì mọi đối tượng con đều di chuyển theo, không cần viết code cho các đối tượng con.
Unity lưu vị trí của đối tượng con tương đối với đối tượng cha. transform.localPosition là độ lệch đó, được đo từ đối tượng cha; transform.position là vị trí trong thế giới. Rider là đối tượng con của Horse, và script của nó đặt Rider ở vị trí cao hơn tâm của Horse 1 đơn vị và lùi về sau nửa đơn vị, bất kể Horse đứng ở đâu:
void Start()
{
transform.localPosition = new Vector3(0, 1, -0.5f);
}Khi Horse ở vị trí (4, 0.5, 2), position của Rider có giá trị (4, 1.5, 1.5), còn localPosition vẫn là (0, 1, -0.5). Khi Horse tiếp tục di chuyển, position thay đổi còn localPosition thì không. Độ lệch được đo theo các trục riêng của đối tượng cha, vì vậy khi đối tượng cha xoay hoặc thay đổi tỷ lệ, độ lệch cũng xoay và thay đổi tỷ lệ theo. Với đối tượng không có đối tượng cha, localPosition và position giống nhau.
Thử thách
Trung bìnhĐặt lá cờ ở chân cột buồm, tính từ con tàu.
- Trong
Start(), các số (0.6, 1, 0) được tính từ Ship, đối tượng cha của lá cờ. - Trên dòng đó, đổi
transform.positionthànhtransform.localPosition.
Nhấn Chơi: lá cờ nằm ở chân cột buồm trên tàu. Sau đó nhấn Kiểm tra.
Tự làm thử
using UnityEngine;
public class Hoist : MonoBehaviour
{
public float climb = 1f;
void Start()
{
// Chân cột buồm: cách Ship 0.6 về bên phải và 1 lên trên
transform.position = new Vector3(0.6f, 1, 0);
}
void Update()
{
// Trong khi giữ phím mũi tên lên, leo cho đến khi độ cao so với Ship là 4
}
}
Tất cả bài học trong Những kiến thức cơ bản về lập trình trong Unity
1C# cơ bản trong Unity
Xin chào, UnityBiếnSố thập phân cần có fVăn bản trong ConsoleBiến có thể ghi nhớIf và elseSo sánh các sốÔn tập: Thu thập xu7Vòng lặp và phương thức
Lặp lại với forVòng lặp lồng nhauViết phương thứcPhương thức trả lờiMảngÔn tập: Cầu thang2Làm cho nó chuyển động
Đặt khối lập phươngDi chuyển theo từng khung hìnhXoay mỗi giâyĐiều khiển bằng các phímÔn tập: Lái khối lập phương5Vectơ
Cộng vectơPhương hướngKhông gian cục bộ và không gian thế giớiTốc độ theo đường chéoKhoảng cách giữa các vậtVector3 là một structÔn tập: Người điều khiển drone8GameObject và thành phần
Tham chiếu trong InspectorLấy một thành phầnThành phần bị thiếuThêm một thành phầnRequireComponentHiện và ẩnÔn tập: Công tắc đèn3Inspector
Các trường trong InspectorSerializeFieldSố thực và MathfThuộc tính trong InspectorÔn tập: thang máy6Biến đổi và hệ phân cấp
Đối tượng cha và conKéo cờ lênTỷ lệNhìn vào các vật thểDi chuyển đến một điểmÔn tập: Mặt trăng quay quanh9Dự án: Bắt lấy ngôi sao
Người bắt saoNgôi sao rơiTự luyện tập: Playground Unity