首頁 >後端開發 >C++ >如何從一個 Unity 腳本存取另一個 Unity 腳本的變數和函數?

如何從一個 Unity 腳本存取另一個 Unity 腳本的變數和函數?

Susan Sarandon
Susan Sarandon原創
2025-01-18 06:21:09658瀏覽

How Can I Access Variables and Functions from One Unity Script to Another?

跨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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn