Accéder aux variables et aux fonctions dans les scripts Unity
Dans Unity, chaque script s'exécute indépendamment, ce qui rend difficile l'accès aux variables ou l'appel de fonctions d'un script à un autre. Cependant, avec l'aide de membres publics et de références d'objets, la communication peut être établie entre des scripts attachés à différents GameObjects.
Variables et fonctions publiques
La première étape consiste à déclarer la variable ou la fonction à laquelle vous souhaitez accéder ou appeler comme publique dans le script. Cela le rend visible aux autres scripts de la scène. Par exemple, dans ScriptA, vous définiriez quelque chose comme ceci :
<code class="language-c#">public class ScriptA : MonoBehaviour { public int playerScore = 0; void Start() { } public void doSomething() { } }</code>
Référence d'objet
Pour accéder à une variable ou à une fonction depuis un autre script, vous devez obtenir une référence au GameObject auquel le script souhaité est attaché. Ceci peut être réalisé en utilisant la fonction GameObject.Find, qui prend le nom du GameObject comme paramètre. Une fois que vous avez obtenu le GameObject, vous pouvez utiliser la fonction GetComponent pour récupérer un composant de script spécifique.
<code class="language-c#">public class ScriptB : MonoBehaviour { private ScriptA scriptInstance = null; void Start() { GameObject tempObj = GameObject.Find("NameOfGameObjectScriptAIsAttachedTo"); scriptInstance = tempObj.GetComponent<ScriptA>(); // 访问ScriptA中的playerScore变量 scriptInstance.playerScore = 5; // 调用ScriptA中的doSomething()函数 scriptInstance.doSomething(); } }</code>
Vous pouvez établir une communication entre différents scripts de la scène en définissant des variables publiques playerScore
ou en appelant des fonctions publiques doSomething()
. Cette approche vous permet de coordonner le comportement d'interaction de différents objets et de créer des interactions plus complexes dans votre jeu.
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!