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.
Görev
ZorUnlocked olduğunda kapıyı aç ve daha sonra, oyuncunun üzerine asla kapanmayacak şekilde tekrar kapat.
IEnumerator OpenDoor()yaz:door.SetActive(false);, ardındanyield return new WaitForSeconds(openTime);.- Sonra
while (Physics.CheckSphere(doorway.position, 1f, LayerMask.GetMask("Player"))),yield return null;. - Son olarak
door.SetActive(true);yaz veDoor closedmesajını kaydet.Unlockedmesajını kaydettikten sonraStartCoroutine(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;
}
}
}
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
1Rigidbody
Yerçekimi ve KütleAddForce ile İtmeDürtüyle ZıplamaFizik için FixedUpdateHızKinematik CisimlerTekrar: Fırlatma Rampası2Çarpışmalar
OnCollisionEnterNeye Çarptım?Çarpınca KırılYerde DurmakSekme ve SürtünmeCollider ŞekilleriTekrar: Kırılabilir DuvarKendi başına pratik yap: Unity playground