Hiện và ẩ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 48 trên 85.
SetActive(false) tắt toàn bộ GameObject: nó không còn được vẽ, không còn va chạm, các script trên đó ngừng nhận Update(), và các đối tượng con cũng bị tắt theo. SetActive(true) bật lại tất cả, còn activeSelf cho biết nó có đang bật hay không. Script gắn trên một nút này ẩn cánh cửa trong trường door khi nhấp chuột:
public GameObject door;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
door.SetActive(false);
}
}Script tự ẩn đối tượng của mình bằng gameObject.SetActive(false) không thể bật đối tượng đó trở lại, vì Update() không còn chạy nữa. Vì vậy, công tắc phải nằm trên một đối tượng khác, có tham chiếu đến đối tượng mà nó bật và tắt.
enabled tắt một thành phần và không ảnh hưởng đến phần còn lại của đối tượng. GetComponent<Renderer>().enabled = false khiến đối tượng trở nên vô hình, nhưng collider của nó vẫn chặn các vật thể khác: như một bức tường vô hình. Script có enabled = false sẽ không nhận thêm lời gọi Update(), nhưng đối tượng vẫn ở trong cảnh, vẫn được vẽ và vẫn va chạm, còn các thành phần khác của nó vẫn hoạt động.
Thử thách
Trung bìnhDùng phím Space để ẩn cây cầu rồi hiện lại.
- Trong
Update(), khi nhấnInput.GetKeyDown(KeyCode.Space), gọibridge.SetActive(...)để bật hoặc tắt toàn bộ cây cầu, bao gồm cả collider. - Truyền vào trạng thái ngược lại:
bridge.SetActive(!bridge.activeSelf);.
Nhấn Chơi rồi nhấn phím Space vài lần: cây cầu sẽ biến mất rồi hiện lại. Sau đó, nhấn Kiểm tra.
Tự làm thử
using UnityEngine;
public class BridgeSwitch : MonoBehaviour
{
public GameObject bridge;
void Update()
{
// Nhấn Space để ẩn cây cầu, nhấn lần nữa để hiện 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