GameObjects dan Komponen
Di dunia ini, sangat umum untuk membuat objek atau memodifikasi atau menambahkan komponen tertentu ke objek.
ZEPETOScript mendukung antarmuka yang sama seperti yang digunakan dalam skrip Unity.
Contoh Dasar GameObject dan Komponen
Membuat dan menghapus objek permainan:
// GameObject Buat
const tempObj = new GameObject();
const obj = Object.Instantiate(tempObj);
// GameObject Hancurkan
Object.Destroy(obj);Untuk mendapatkan komponen GameObjects atau menambahkan yang baru, gunakan GetComponent atau AddComponent.
// GetComponent dengan Generik
const myTransform = this.GetComponent<Transform>();
// AddComponent dengan Generik
const animator = this.gameObject.AddComponent<Animator>();
Periksa contoh kode lengkap untuk Komponen GameObject.
Berikut adalah contoh yang mencakup pembuatan dan modifikasi properti GameObject, penambahan komponen, dan penghancuran.
import { GameObject, Object, Transform, Animator, Vector3, WaitForSeconds } from 'UnityEngine';
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
export default class GameObjectSample extends ZepetoScriptBehaviour {
private _testObject : GameObject;
Start() {
// Buat GameObject kosong
const tempObj = new GameObject();
this._testObject = Object.Instantiate(tempObj) as GameObject;
// Ubah nama objek
this._testObject.name = "TestObject";
// Ubah informasi transform objek
this._testObject.transform.position = new Vector3(3,3,3);
// Lampirkan komponen ke objek
this._testObject.gameObject.AddComponent<Animator>();
// Contoh penggunaan GetComponent
const animator = this._testObject.GetComponent<Animator>();
if(animator != null) {
console.log("GetComponent Sukses");
}
// Hancurkan objek setelah 5 detik menggunakan coroutine
this.StartCoroutine(this.DestroyObject());
}
*DestroyObject() {
yield new WaitForSeconds(5);
// Hancurkan GameObject
Object.Destroy(this._testObject);
}
} 
Memanfaatkan Find
Metode Find terkait juga mendukung gaya antarmuka yang sama dalam ZEPETOScript seperti dalam skrip Unity.
Metode | Deskripsi |
|---|---|
GameObject.Find() | - Ini menemukan dan mengembalikan objek GameObject aktif berdasarkan nama di Scene saat ini. - Mengembalikan null jika tidak ditemukan. |
GameObject.FindGameObjectWithTag() | - Ini menemukan dan mengembalikan objek GameObject aktif berdasarkan tag di Scene saat ini. - Menemukan dan mengembalikan objek pertama yang cocok dengan tag yang ditentukan di antara objek aktif, mengembalikan null jika tidak ditemukan. |
GameObject.FindGameObjectsWithTag() | - Menemukan semua objek GameObject aktif dengan tag tertentu di Scene saat ini dan mengembalikannya sebagai array. - Mengembalikan array kosong jika tidak ada yang ditemukan. |
Untuk contoh, atur Scene sebagai berikut:
- Tambahkan beberapa objek 3D dan tentukan semua Tag mereka sebagai 3D.
- Buat Objek Kosong untuk melampirkan skrip, dan ubah namanya menjadi FindSample.


import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { GameObject, Transform } from 'UnityEngine';
export default class FindSample extends ZepetoScriptBehaviour {
public tempObj1: GameObject;
public tempObj2: GameObject;
public tempObj3: GameObject[];
Start() {
// Menemukan GameObject target dengan nama yang ditentukan.
// Jika beberapa GameObject memiliki nama yang sama, yang pertama ditemukan akan dikembalikan.
this.tempObj1 = GameObject.Find("Cube");
if(this.tempObj1 != null) {
console.log("GameObject Temukan Sukses");
}
// Menemukan GameObject target dengan tag yang ditentukan.
// Jika beberapa GameObject memiliki tag yang sama, yang pertama ditemukan akan dikembalikan.
this.tempObj2 = GameObject.FindGameObjectWithTag("3D");
if(this.tempObj2 != null) {
console.log("FindGameObjectWithTag Sukses");
}
// Mengembalikan array GameObject yang memiliki tag yang ditentukan.
this.tempObj3 = GameObject.FindGameObjectsWithTag("3D");
if(this.tempObj3 != null) {
console.log("FindGameObjectsWithTag Sukses");
}
}
}
- Inspektor kosong ketika Anda menambahkan skrip di objek FindSample.


- Tekan tombol Putar untuk menjalankannya, dan Anda dapat mengonfirmasi di jendela Inspektor bahwa setiap objek telah ditugaskan dan memeriksa keberhasilan menemukan objek melalui jendela konsol.

Membuat Prefab
Mari kita eksplorasi cara membuat prefab selama runtime.
- Pertama, tambahkan objek 3D > Kubus ke dalam Scene.


- Tekan Tambah Komponen di inspector Kubus, dan tambahkan Rigidbody.


- Kemudian seret Kubus ke area proyek untuk menjadikannya prefab.


- Silakan tulis skrip di bawah ini.
import { GameObject, Object, Vector3, WaitForSeconds } from 'UnityEngine';
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
export default class CloneSample extends ZepetoScriptBehaviour {
public clonePrefab : GameObject;
Start() {
this.StartCoroutine(this.DoRoutine());
}
*DoRoutine() {
while(true) {
yield null;
// Buat klon
const clone = Object.Instantiate(this.clonePrefab) as GameObject;
// Atur tinggi objek klon
clone.transform.position = new Vector3(0, 10, 0);
// Hancurkan setelah 5 detik pembuatan
GameObject.Destroy(clone, 5);
yield new WaitForSeconds(1);
}
}
}
- Kemudian kembali ke editor Unity, seret prefab ke inspector skrip untuk menambahkannya.


- Tekan tombol play untuk memeriksa bahwa objek 3D dibuat dan jatuh dari atas setiap detik.

Klik tautan di bawah ini untuk mempelajari lebih lanjut tentang GameObjects dan Komponen Unity yang ditawarkan oleh ZEPETOScript.

📘 Membuat GameObjects https://docs.unity3d.com/2020.3/Documentation/ScriptReference/Object.Instantiate.html
📘 Menghancurkan GameObjects https://docs.unity3d.com/2020.3/Documentation/ScriptReference/Object.Destroy.html
📘 Menggunakan komponen https://docs.unity3d.com/kr/current/Manual/UsingComponents.html
