Menu
CoddyTech

Tampilkan dan Sembunyikan

Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 48 dari 85.

SetActive(false) menonaktifkan seluruh GameObject: objek itu tidak ditampilkan, tidak lagi bertabrakan, skrip di dalamnya berhenti menerima Update(), dan objek-objek turunannya juga ikut dinonaktifkan. SetActive(true) mengaktifkan semuanya kembali, dan activeSelf menunjukkan apakah objek itu aktif. Skrip pada tombol ini menyembunyikan pintu di field door saat mouse diklik:

public GameObject door;

void Update()
{
    if (Input.GetMouseButtonDown(0))
    {
        door.SetActive(false);
    }
}

Skrip yang menyembunyikan objeknya sendiri dengan gameObject.SetActive(false) tidak dapat mengaktifkannya kembali, karena Update()-nya tidak lagi berjalan. Jadi, sakelar berada di objek lain, yang memiliki referensi ke objek yang ditampilkan dan disembunyikannya.

enabled menonaktifkan satu komponen dan membiarkan bagian lain dari objek tetap seperti semula. GetComponent<Renderer>().enabled = false membuat objek tidak terlihat, tetapi collider-nya tetap menghalangi benda lain: seperti tembok tak terlihat. Skrip dengan enabled = false tidak lagi menerima pemanggilan Update(), tetapi objeknya tetap berada di scene, tetap ditampilkan dan tetap bertabrakan, sementara komponen lainnya tetap berfungsi.

challenge icon

Tantangan

Sedang

Tekan Space untuk menyembunyikan jembatan lalu menampilkannya kembali.

  1. Di dalam Update(), saat Input.GetKeyDown(KeyCode.Space), panggil bridge.SetActive(...) untuk mengubah seluruh jembatan, termasuk collider.
  2. Berikan nilai kebalikan dari statusnya: bridge.SetActive(!bridge.activeSelf);.

Tekan tombol “Main” lalu tekan Space beberapa kali: jembatan menghilang lalu muncul kembali. Setelah itu, tekan tombol “Periksa”.

Coba sendiri

using UnityEngine;

public class BridgeSwitch : MonoBehaviour
{
    public GameObject bridge;

    void Update()
    {
        // Menekan Space menyembunyikan jembatan, lalu menekannya lagi menampilkan jembatan kembali
    }
}

Semua pelajaran di Dasar-Dasar Scripting Unity

Latihan sendiri: Playground Unity