Cánh cửa
Thuộc phần Vật lý và lối chơi trong hành trình Unity của Coddy. Bài học 71 trên 71.
Thử thách này kết thúc phần học về các tấm kích hoạt, code được giữ trong một tập lệnh và một cánh cửa hoạt động bằng coroutine chờ lối đi thông thoáng.
Thử thách
KhóMở cửa khi có Unlocked, rồi đóng lại sau đó, không bao giờ đóng khi người chơi ở đó.
- Viết
IEnumerator OpenDoor():door.SetActive(false);, sau đóyield return new WaitForSeconds(openTime);. - Sau đó
while (Physics.CheckSphere(doorway.position, 1f, LayerMask.GetMask("Player"))),yield return null;. - Cuối cùng,
door.SetActive(true);và ghi nhật kýDoor closed. Khởi chạy bằngStartCoroutine(OpenDoor());sau khi ghi nhật kýUnlocked.
Nhấn Chơi, mở khóa cửa rồi đi ra ngoài. Sau đó nhấn Kiểm tra.
Tự làm thử
using System.Collections;
using UnityEngine;
public class CodeLock : MonoBehaviour
{
[SerializeField] private Renderer[] plates;
[SerializeField] private GameObject door;
[SerializeField] private Transform doorway;
[SerializeField] private float openTime = 4f;
private int next = 1;
public void Press(int number)
{
if (number == next)
{
Debug.Log("Plate " + number);
next++;
if (next > 3)
{
Debug.Log("Unlocked");
next = 1;
}
}
else
{
Debug.Log("Wrong plate");
next = 1;
StartCoroutine(Flash());
}
}
IEnumerator Flash()
{
foreach (Renderer plate in plates)
{
plate.material.color = Color.red;
}
yield return new WaitForSeconds(1f);
foreach (Renderer plate in plates)
{
plate.material.color = Color.gray;
}
}
}
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Vật lý và lối chơi
1Rigidbody
Trọng lực và khối lượngĐẩy bằng AddForceNhảy bằng xung lựcFixedUpdate cho vật lýVận tốcVật thể động họcÔn tập: Bệ phóng4Coroutine
InvokeInvokeRepeating, CancelInvokeCoroutine đầu tiên của bạnVòng lặp trong CoroutineDừng CoroutineÔn tập: đếm ngược10Dự án: Thoát khỏi đấu trường
Đấu trườngThợ săn2Va chạm
OnCollisionEnterMình đã va chạm với gì?Vỡ khi va chạmĐứng trên mặt đấtĐộ nảy và ma sátHình dạng colliderÔn tập: Tường có thể phá vỡ5Dự án: Cuộc đua thu thập xu
Quả bóng lănThu thập xuTự luyện tập: Playground Unity