Menu
CoddyTech

Pintu

Termasuk bagian Fisika dan Gameplay dalam perjalanan Unity di Coddy. Pelajaran 71 dari 71.

Tantangan ini mengakhiri bagian tentang pelat yang berfungsi sebagai pemicu, kode yang disimpan dalam satu skrip, dan pintu yang dikendalikan oleh coroutine yang menunggu hingga jalur pintu kosong.

challenge icon

Tantangan

Sulit

Buka pintu saat Unlocked, lalu tutup kembali nanti, jangan pernah saat pemain berada di sana.

  1. Tulis IEnumerator OpenDoor(): door.SetActive(false);, lalu yield return new WaitForSeconds(openTime);.
  2. Lalu while (Physics.CheckSphere(doorway.position, 1f, LayerMask.GetMask("Player"))), yield return null;.
  3. Terakhir, door.SetActive(true); dan catat Door closed. Jalankan dengan StartCoroutine(OpenDoor()); setelah mencatat Unlocked.

Tekan tombol “Main”, buka pintunya, lalu keluar. Setelah itu, tekan tombol “Periksa”.

Coba sendiri

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 iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Fisika dan Gameplay

Latihan sendiri: Playground Unity