Invoke
Termasuk bagian Fisika dan Gameplay dalam perjalanan Unity di Coddy. Pelajaran 22 dari 71.
Invoke("Explode", 3f) memanggil method milik skrip itu sendiri, yaitu Explode, satu kali, 3 detik dari sekarang, lalu kode setelahnya langsung dilanjutkan. Unity menemukan method berdasarkan namanya, yang diberikan sebagai string, dan method tersebut tidak menerima parameter. Bom ini meledak 3 detik setelah game dimulai:
void Start()
{
Invoke("Explode", 3f);
}
void Explode()
{
Debug.Log("Boom");
Destroy(gameObject);
}Karena namanya berupa string, compiler tidak dapat memeriksanya. Invoke("Explod", 3f) berhasil di-compile, lalu 3 detik kemudian Unity mencatat Trying to Invoke method: Bomb.Explod couldn't be called. alih-alih meledak. nameof milik C# mengatasi masalah itu: nameof(Explode) adalah string "Explode", yang dibuat oleh compiler dari nama yang sudah diperiksanya, jadi kesalahan ketik di dalamnya akan menjadi error compile yang kamu lihat sebelum game berjalan. Tulis Invoke(nameof(Explode), 3f);.
Tantangan
MudahBuat platform runtuh sesaat setelah pemain mendarat di atasnya.
- Di
OnCollisionEnter, saatcollision.gameObject.CompareTag("Player"), panggilInvoke(nameof(Fall), delay);. - Tambahkan
void Fall(): aturbody.isKinematic = false;dan catatCrumble!.
Tekan tombol “Main” dan berjalanlah ke atas platform: satu detik kemudian platform itu jatuh. Lalu tekan tombol “Periksa”.
Coba sendiri
using UnityEngine;
public class Crumble : MonoBehaviour
{
public float delay = 1f;
Rigidbody body;
void Start()
{
body = GetComponent<Rigidbody>();
}
void OnCollisionEnter(Collision collision)
{
// Saat pemain mendarat: buat platform jatuh setelah delay detik
}
// Fall(): aktifkan fisika platform dan catat Crumble!
}
Semua pelajaran di Fisika dan Gameplay
1Rigidbody
Gravitasi dan MassaDorong dengan AddForceMelompat dengan ImpulsFixedUpdate untuk FisikaKecepatanBenda KinematikRingkasan: Landasan Peluncur4Coroutine
InvokeInvokeRepeating, CancelInvokeCoroutine PertamamuPerulangan dalam CoroutineMenghentikan CoroutineRangkuman: Hitung Mundur10Proyek: Kabur dari Arena
ArenaPara Pemburu2Tabrakan
OnCollisionEnterApa yang Kutabrak?Pecah Saat BenturanBerdiri di Atas TanahPantulan dan GesekanBentuk ColliderRangkuman: Dinding yang Bisa HancurLatihan sendiri: Playground Unity