Maison >développement back-end >C++ >Comment accéder aux variables et aux fonctions de différents composants dans Unity ?
Dans Unity, les composants attachés aux objets du jeu communiquent et interagissent via divers mécanismes. Il existe certaines bonnes pratiques et restrictions à prendre en compte lors de l'accès à des variables ou de l'appel de fonctions dans différents scripts de composants.
Pour accéder à une variable ou une fonction depuis d'autres composants, elle doit être déclarée publique dans le script. Cela signifie que ces variables ou fonctions sont accessibles par des scripts attachés à d'autres objets de jeu dans la scène. En revanche, une variable ou une fonction privée n'est accessible que dans le script dans lequel elle est définie.
Pour accéder aux variables d'un composant ou appeler ses fonctions depuis un autre script, utilisez généralement la fonction GetComponent
. Cette fonction reçoit un paramètre de type Type
, qui est le type de composant à récupérer.
L'exemple suivant montre comment accéder à la fonction GetComponent
:
<code class="language-c#">GameObject tempObj = GameObject.Find("NameOfGameObjectScriptAIsAttachedTo"); ScriptA scriptInstance = tempObj.GetComponent<ScriptA>();</code>
Dans cet exemple, la fonction GameObject.Find
récupère l'objet de jeu nommé "NameOfGameObjectScriptAIsAttachedTo" (en supposant que ScriptA est attaché à cet objet), puis utilise la fonction GetComponent
pour récupérer une référence au composant ScriptA.
Considérez le scénario suivant : Nous avons un composant playerScore
avec une variable publique doSomething
et une fonction Player
. Dans un autre composant nommé Enemy
, nous souhaitons accéder à la variable playerScore
et appeler la fonction doSomething
.
dans le composant 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>
Dans cet exemple, l'objet scriptAInstance
se voit attribuer une référence au composant ScriptA
attaché à l'objet de jeu nommé "NameOfGameObjectScriptAIsAttachedTo". Une fois que nous avons cette référence, nous pouvons accéder aux variables Enemy
publiques à partir du composant playerScore
et appeler les fonctions doSomething
publiques.
En suivant ces directives, vous pouvez accéder efficacement aux variables et appeler des fonctions dans différents scripts de composants pour implémenter des interactions et des fonctionnalités complexes dans votre projet Unity. Notez qu'une vérification nulle if (scriptAInstance != null)
a été ajoutée pour éviter les exceptions de référence nulle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!