Lấy một thành phần
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 44 trên 85.
GameObject là một vật chứa các thành phần: Transform, MeshRenderer dùng để vẽ đối tượng, collider và các script của bạn. GetComponent<Renderer>() trả về thành phần thuộc kiểu đó trên cùng đối tượng, qua đó script của bạn thay đổi cách thành phần ấy hoạt động. transform là lối tắt có sẵn cho Transform; bạn phải tự lấy mọi thành phần khác.
Khối lập phương này chuyển sang màu đỏ khi bạn nhấn Space. Nó tìm Renderer một lần trong Start() rồi lưu lại trong một trường: GetComponent tìm kiếm các thành phần của đối tượng mỗi khi được gọi, còn kết quả tìm được không thay đổi.
Renderer rend;
void Start()
{
rend = GetComponent<Renderer>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
rend.material.color = Color.red;
}
}rend.material tạo một bản sao material riêng cho đối tượng này vào lần đầu tiên bạn dùng nó, nên các đối tượng khác dùng chung material vẫn giữ nguyên màu. Unity đặt sẵn tên cho một số màu, chẳng hạn Color.red, Color.green, Color.blue, Color.yellow và Color.gray; new Color(r, g, b) tạo các màu khác, với mỗi thành phần nằm trong khoảng từ 0 đến 1.
Thử thách
Trung bìnhMỗi lần nhấp, đèn tín hiệu chuyển màu: đỏ, vàng, xanh lá, rồi lại đỏ.
- Thêm trường
Renderer rend;và gán giá trị cho trường này trongStart()bằngGetComponent<Renderer>(). - Khi có
Input.GetMouseButtonDown(0), tăng trườngint stepthêm 1, rồi đặt lại thành 0 khi giá trị đạt đến 3. - Đặt
rend.material.colorthànhColor.red,Color.yellowhoặcColor.greentương ứng với step 0, 1 hoặc 2.
Nhấn Chơi rồi nhấp vào trò chơi: đèn đổi màu. Sau đó nhấn Kiểm tra.
Tự làm thử
using UnityEngine;
public class SignalLight : MonoBehaviour
{
void Start()
{
}
void Update()
{
// Mỗi lần nhấp: đỏ, rồi vàng, rồi xanh lá, sau đó lại đỏ
}
}
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