Zugriff auf Variablen und Funktionen verschiedener Komponenten in Unity
In Unity ist der Zugriff auf Variablen und Funktionen in anderen Skripten ein sehr häufiges Bedürfnis. Standardmäßig sind Variablen und Funktionen in einem Skript privat und können nicht von außerhalb des Skripts aufgerufen werden. Damit andere Skripte darauf zugreifen können, müssen sie öffentlich gemacht werden.
Stellen Sie sich zum Beispiel eine Szene vor, die einen Spieler und einen Feind enthält, jeweils mit einem eigenen Skript (Character_Stats und Enemy_Stats). In diesem Fall erfordert der Zugriff auf die Health-Variable des Enemy_Stats-Skripts über das Character_Stats-Skript eine Problemumgehung, wie im folgenden Code gezeigt:
<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>
Variablen und Funktionen öffentlich machen
Um diesen Workaround zu vermeiden, machen Sie die Health-Variable und alle Funktionen, auf die Sie von anderen Skripten aus zugreifen möchten, öffentlich. So geht's:
<code class="language-c#">public class Enemy_Stats : MonoBehaviour { public float Health; void Start() { } public void TakeDamage(float damage) { Health -= damage; } }</code>
Zugriff auf öffentliche Variablen und Funktionen
Sie können jetzt von einem anderen Skript aus mit den Funktionen „Find“ und „GetComponent“ auf die Variable „Health“ zugreifen und die Funktion „TakeDamage“ aufrufen:
<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>
Indem Sie Variablen und Funktionen öffentlich machen, können Sie von anderen Skripten aus einfach auf sie zugreifen und sie bearbeiten, was Zeit und Aufwand in Ihrem Unity-Projekt spart.
Das obige ist der detaillierte Inhalt vonWie greife ich auf Variablen und Funktionen verschiedener Unity-Komponenten zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!