Accès aux variables à partir de scripts externes : un guide Unity C#
Une communication inter-composants efficace dans Unity nécessite souvent l'accès à des variables dans d'autres scripts. Ce guide explique comment y parvenir.
Obtention de la référence du composant de script
Avant d'accéder à une variable dans un autre script, vous avez besoin de la référence de son composant de script. Ceci est particulièrement important lorsque la variable réside dans un GameObject différent. Suivez ces étapes :
using UnityEngine;
public YourScriptName otherScript;
(Remplacez YourScriptName
par le nom réel du script contenant la variable).Start()
, obtenez le composant de script en utilisant otherScript = targetGameObject.GetComponent<YourScriptName>();
, où targetGameObject
est le GameObject contenant le script cible.Accès à la variable
Une fois que vous avez la référence du script, accéder à ses variables est simple :
otherScript.yourVariable = newValue;
int myValue = otherScript.yourVariable;
Exemple illustratif
Supposons que nous ayons ScriptA.cs
avec une variable booléenne publique myBool
, et que nous souhaitons y accéder et la modifier à partir de ScriptB.cs
attachée à un GameObject différent.
<code class="language-csharp">// ScriptB.cs public GameObject targetObject; // Drag and drop the GameObject with ScriptA in the Inspector public ScriptA scriptA; void Start() { scriptA = targetObject.GetComponent<ScriptA>(); } void Update() { if (scriptA != null) { scriptA.myBool = true; // Modify the boolean variable Debug.Log("Value of myBool: " + scriptA.myBool); // Read and print the value } else { Debug.LogError("ScriptA not found!"); } }</code>
N'oubliez pas d'attribuer le GameObject contenant ScriptA
à la variable targetObject
dans l'inspecteur. La vérification null
évite les erreurs si ScriptA
n'est pas trouvé. Cette approche garantit un accès aux variables robuste et sans erreur entre les scripts.
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!