$ref & $unref
5 mnt
The ref dan out kata kunci dalam C# digunakan saat mengoperasikan referensi ke variabel atau struktur ke metode.
Dalam TypeScript, kata kunci ini tidak tersedia, tetapi dalam ZEPETOScript, Anda dapat mencapai fungsionalitas serupa menggunakan $ref dan $unref.
Fungsi | Deskripsi |
|---|---|
$ref(x?:T):$Ref | Membuat referensi untuk parameter |
$unref(x:$Ref):T | Melepaskan referensi dari parameter dan mengembalikan nilai asli |
Untuk contoh, mari kita siapkan sebuah Scene sebagai berikut:
- Tambahkan objek 3D, Kubus, ke dalam Adegan.

- Di Inspector untuk Kubus yang ditambahkan, klik "Tambahkan Komponen" dan tambahkan Rigidbody.

- Tambahkan GameObject Kosong ke dalam Scene.
- Tulis skrip RefSample di bawah ini dan tambahkan ke GameObject yang dibuat di langkah 3.
import { GameObject, Rigidbody } from 'UnityEngine'
import { ZepetoScriptBehaviour } from 'ZEPETO.Script'
import TestScript from './TestScript';
export default class RefSample extends ZepetoScriptBehaviour {
Start() {
// Dapatkan GameObject yang bernama "Cube"
const testObject = GameObject.Find("Cube");
// Dapatkan Komponen Rigidbody dari Objek "Cube"
const testComponent = GameObject.Find("Cube").GetComponent<Rigidbody>();
// Dapatkan Komponen TestScript dari Objek "Cube"
const testScript = GameObject.Find("Cube").GetComponent<TestScript>();
// Buat referensi ke komponen dan objek
let tempObj = $ref(testObject);
let tempComponent = $ref(testComponent);
let tempScript = $ref(testScript);
// Periksa apakah komponen Rigidbody tidak null
if(tempComponent != null) {
// Akses nilai aktual dari referensi tersebut
let component = $unref(tempComponent);
console.log(`Nama Komponen : ${component}`);
}
// Periksa apakah komponen TestScript tidak null
if(tempScript != null) {
// Akses nilai aktual dari referensi tersebut
let script = $unref(tempScript);
script.DoTest();
}
// Periksa apakah referensi GameObject tidak null
if(tempObj != null) {
// Akses nilai aktual dari referensi tersebut
let objName = $unref(tempObj);
console.log(`Nama tempObj : ${objName.name}`);
}
}
}
- Buat ZEPETOScript lain dan tulis TestScript di bawah ini.
import { ZepetoScriptBehaviour } from 'ZEPETO.Script'
export default class TestScript extends ZepetoScriptBehaviour {
DoTest() {
console.log(`DoTest() dari TestScript dieksekusi.`);
}
}
- Seret dan sambungkan TestScript ke Inspector Cube.
- Klik tombol [▶︎(play)] untuk mengamati hasilnya.
- Anda dapat memeriksa keberhasilan referensi objek, komponen Rigidbody, dan komponen ZEPETOScript di jendela log konsol.
