跨Unity腳本存取變數和函數
在Unity中,每個腳本獨立運行,因此難以從一個腳本存取另一個腳本中的變數或呼叫函數。但是,借助公共成員和物件引用,可以在附加到不同GameObjects的腳本之間建立通訊。
公共變數與函數
第一步是將要存取或呼叫的變數或函數在腳本中宣告為公共的。這使其對場景中的其他腳本可見。例如,在ScriptA中,您將定義以下內容:
<code class="language-c#">public class ScriptA : MonoBehaviour { public int playerScore = 0; void Start() { } public void doSomething() { } }</code>
物件引用
要從另一個腳本存取變數或函數,您需要取得附加了所需腳本的GameObject的參考。這可以使用GameObject.Find函數來實現,該函數以GameObject的名稱作為參數。取得GameObject後,您可以使用GetComponent函數檢索特定的腳本元件。
<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>
透過設定公用變數playerScore
或呼叫公用函數doSomething()
,您可以建立場景中不同腳本之間的通訊。這種方法可讓您協調不同物件的互動行為,並在遊戲中創建更複雜的互動。
以上是如何從一個 Unity 腳本存取另一個 Unity 腳本的變數和函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!