Dalam Unity, komponen yang dilampirkan pada objek permainan berkomunikasi dan berinteraksi melalui pelbagai mekanisme. Terdapat beberapa amalan terbaik dan sekatan untuk dipertimbangkan semasa mengakses pembolehubah atau memanggil fungsi dalam skrip komponen yang berbeza.
Untuk mengakses pembolehubah atau fungsi daripada komponen lain, ia mesti diisytiharkan awam dalam skrip. Ini bermakna pembolehubah atau fungsi ini boleh diakses oleh skrip yang dilampirkan pada objek permainan lain di tempat kejadian. Sebaliknya, pembolehubah atau fungsi peribadi hanya boleh diakses dalam skrip di mana ia ditakrifkan.
Untuk mengakses pembolehubah komponen atau memanggil fungsinya daripada skrip lain, biasanya gunakan fungsi GetComponent
. Fungsi ini menerima parameter jenis Type
, iaitu jenis komponen yang akan diambil.
Contoh berikut menunjukkan cara mengakses fungsi GetComponent
:
<code class="language-c#">GameObject tempObj = GameObject.Find("NameOfGameObjectScriptAIsAttachedTo"); ScriptA scriptInstance = tempObj.GetComponent<ScriptA>();</code>
Dalam contoh ini, fungsi GameObject.Find
mendapatkan semula objek permainan bernama "NameOfGameObjectScriptAIsAttachedTo" (dengan mengandaikan ScriptA dilampirkan pada objek itu) dan kemudian menggunakan fungsi GetComponent
untuk mendapatkan rujukan kepada komponen ScriptA.
Pertimbangkan senario berikut: Kami mempunyai komponen playerScore
dengan pembolehubah awam doSomething
dan fungsi Player
. Dalam komponen lain bernama Enemy
, kami ingin mengakses pembolehubah playerScore
dan memanggil fungsi doSomething
.
dalam komponen Enemy
:
<code class="language-c#">public class Enemy : MonoBehaviour { private ScriptA scriptAInstance = null; void Start() { GameObject tempObj = GameObject.Find("NameOfGameObjectScriptAIsAttachedTo"); scriptAInstance = tempObj.GetComponent<ScriptA>(); } void Update() { if (scriptAInstance != null) { scriptAInstance.playerScore += 1; scriptAInstance.doSomething(); } } }</code>
Dalam contoh ini, objek scriptAInstance
diberikan rujukan kepada komponen ScriptA
yang dilampirkan pada objek permainan bernama "NameOfGameObjectScriptAIsAttachedTo". Sebaik sahaja kami mempunyai rujukan ini, kami boleh mengakses pembolehubah Enemy
awam daripada komponen playerScore
dan memanggil fungsi doSomething
awam.
Dengan mengikut garis panduan ini, anda boleh mengakses pembolehubah dan fungsi panggilan dengan cekap dalam skrip komponen yang berbeza untuk melaksanakan interaksi dan fungsi yang kompleks dalam projek Unity anda. Ambil perhatian bahawa semakan nol if (scriptAInstance != null)
telah ditambahkan untuk mengelakkan pengecualian rujukan nol.
Atas ialah kandungan terperinci Bagaimanakah Saya Mengakses Pembolehubah dan Fungsi Merentasi Komponen Berbeza dalam Perpaduan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!