Unity スクリプト全体で変数と関数にアクセスする
Unity では、各スクリプトが独立して実行されるため、あるスクリプトから変数にアクセスしたり、別のスクリプトから関数を呼び出したりすることが困難になります。ただし、パブリック メンバーとオブジェクト参照を使用すると、異なるゲームオブジェクトにアタッチされたスクリプト間で通信を確立できます。
パブリック変数と関数
最初のステップは、アクセスまたは呼び出したい変数または関数をスクリプト内でパブリックとして宣言することです。これにより、シーン内の他のスクリプトから見えるようになります。たとえば、ScriptA では次のように定義します:
<code class="language-c#">public class ScriptA : MonoBehaviour { public int playerScore = 0; void Start() { } public void doSomething() { } }</code>
オブジェクト参照
別のスクリプトから変数または関数にアクセスするには、目的のスクリプトがアタッチされているゲームオブジェクトへの参照を取得する必要があります。これは、GameObject の名前をパラメータとして受け取る GameObject.Find 関数を使用して実現できます。 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 中国語 Web サイトの他の関連記事を参照してください。