Menu
CoddyTech

Kapı

Coddy'nin Unity Journey'sinin Fizik ve Oynanış bölümünün bir parçası. Ders 71 / 71.

Bu görev, bölümü tamamlıyor: tetikleyici olan plakalar, tek bir betikte tutulan kod ve kapı aralığın boşalmasını bekleyen bir coroutine tarafından çalıştırılıyor.

challenge icon

Görev

Zor

Unlocked olduğunda kapıyı aç ve daha sonra, oyuncunun üzerine asla kapanmayacak şekilde tekrar kapat.

  1. IEnumerator OpenDoor() yaz: door.SetActive(false);, ardından yield return new WaitForSeconds(openTime);.
  2. Sonra while (Physics.CheckSphere(doorway.position, 1f, LayerMask.GetMask("Player"))), yield return null;.
  3. Son olarak door.SetActive(true); yaz ve Door closed mesajını kaydet. Unlocked mesajını kaydettikten sonra StartCoroutine(OpenDoor()); ile başlat.

“Oyna” düğmesine bas, kapının kilidini aç ve dışarı çık. Ardından “Kontrol et” düğmesine bas.

Kendin dene

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;
        }
    }

}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Fizik ve Oynanış bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground