Prefab dan Instantiate
Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 48 dari 67.
Prefab adalah GameObject yang disimpan sebagai templat: seret object dari Hierarchy ke jendela Project, lalu Unity menyimpannya bersama semua komponennya dan nilai Inspector-nya. Prefab itu sendiri tidak berada di scene. Script mendapatkan prefab melalui sebuah field, seperti referensi lainnya: deklarasikan public GameObject parcelPrefab; lalu seret prefab ke field tersebut di Inspector.
Instantiate(prefab, position, rotation) membuat salinan prefab di scene dan mengembalikannya. Drone pengantar ini menjatuhkan sebuah paket di posisinya sendiri setiap kali tombol Space ditekan. Quaternion.identity berarti tidak ada rotasi:
public GameObject parcelPrefab;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
Instantiate(parcelPrefab, transform.position, Quaternion.identity);
}
}Setiap kali tombol ditekan, satu object lagi ditambahkan ke Hierarchy dengan nama Parcel(Clone). Prefab tetap seperti semula, jadi setiap salinan dimulai dengan nilai yang sama. GetKeyDown penting di sini: dengan GetKey, menahan Space selama setengah detik akan menjatuhkan sekitar 30 paket, satu per frame.
Tantangan
SedangTombol panah sudah menggerakkan pemain. Buat setiap klik memunculkan koin di atasnya:
- Tambahkan field
GameObjectpublic bernamacoinPrefab. Scene akan memasukkan prefab Coin ke dalamnya begitu field tersedia. - Saat tombol kiri mouse diklik, munculkan satu salinan koin 2 unit di atas pemain, tanpa rotasi.
Tekan Play, gerakkan pemain dan klik beberapa kali, lalu tekan Periksa.
Coba sendiri
using UnityEngine;
public class CoinDropper : MonoBehaviour
{
public float speed = 4f;
// coinPrefab: field GameObject publik yang diisi dengan prefab Coin
void Update()
{
if (Input.GetKey(KeyCode.RightArrow))
{
transform.position += new Vector3(speed * Time.deltaTime, 0, 0);
}
if (Input.GetKey(KeyCode.LeftArrow))
{
transform.position -= new Vector3(speed * Time.deltaTime, 0, 0);
}
// Klik: munculkan koin 2 unit di atas pemainmu
}
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar Scripting Unity
1Skrip Pertamamu
Halo, UnityLetakkan KubusBergerak di Setiap FrameBerputar Setiap DetikKendalikan dengan TombolRingkasan: Kendarai Kubus4Vektor
Menjumlahkan VektorArahRuang Lokal dan DuniaKecepatan DiagonalJarak antara BendaVector3 adalah StructRingkasan: Pilot Drone7Proyek: Tangkap Bintang
Si PenangkapBintang Jatuh5Transformasi dan Hierarki
Objek Induk dan AnakSkalaMenghadap ke ObjekBergerak Menuju TitikRangkuman: Bulan yang Mengorbit6GameObject dan Komponen
Referensi di InspectorMendapatkan KomponenKomponen yang HilangMenambahkan KomponenRequireComponentTampilkan dan SembunyikanRangkuman: Sakelar Lampu9Prefab dan Pemunculan
Prefab dan InstantiateMunculkan dengan TimerMunculkan dalam Kisilist objectHancurkanPemunculan AcakRingkasan: Kembang Api