Akses pembolehubah dan fungsi komponen berbeza dalam Unity
Dalam Unity, mengakses pembolehubah dan fungsi dalam skrip lain adalah keperluan yang sangat biasa. Secara lalai, pembolehubah dan fungsi dalam skrip adalah peribadi dan tidak boleh diakses dari luar skrip. Untuk membenarkan skrip lain mengaksesnya, ia perlu didedahkan kepada umum.
Sebagai contoh, pertimbangkan adegan yang mengandungi pemain dan musuh, masing-masing dengan skripnya sendiri (Statistik_Watak dan Statistik_Musuh). Dalam kes ini, mengakses pembolehubah Kesihatan skrip Enemy_Stats daripada skrip Character_Stats memerlukan penyelesaian, seperti yang ditunjukkan dalam kod berikut:
<code class="language-c#">void OnCollisionEnter(Collision collision) { if (collision.gameObject.tag == "Enemy") { collision.gameObject.GetComponent<enemy_stats>().Health = collision.gameObject.GetComponent<enemy_stats>().Health - gameObject.GetComponent<character_stats>().AttackDamage; if (collision.gameObject.GetComponent<enemy_stats>().Health < 0) { Destroy(collision.gameObject); } } }</code>
Jadikan pembolehubah dan fungsi awam
Untuk mengelakkan penyelesaian ini, jadikan pembolehubah Kesihatan dan sebarang fungsi yang anda mahu akses daripada skrip lain awam. Begini cara melakukannya:
<code class="language-c#">public class Enemy_Stats : MonoBehaviour { public float Health; void Start() { } public void TakeDamage(float damage) { Health -= damage; } }</code>
Akses pembolehubah dan fungsi awam
Anda kini boleh mengakses pembolehubah Kesihatan daripada skrip lain menggunakan fungsi Cari dan GetComponent dan memanggil fungsi TakeDamage:
<code class="language-c#">public class Character_Stats : MonoBehaviour { GameObject enemyObj; Enemy_Stats enemyStats; void Start() { enemyObj = GameObject.Find("EnemyGameObject"); enemyStats = enemyObj.GetComponent<Enemy_Stats>(); } void AttackEnemy() { enemyStats.TakeDamage(AttackDamage); if (enemyStats.Health <= 0) { Destroy(enemyObj); } } }</code>
Dengan menjadikan pembolehubah dan fungsi awam, anda boleh mengakses dan memanipulasinya dengan mudah daripada skrip lain, menjimatkan masa dan usaha dalam projek Unity anda.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Pembolehubah dan Fungsi daripada Komponen Perpaduan Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!