さまざまな Unity コンポーネントの変数と関数に効率的にアクセスする
このガイドでは、さまざまな Unity スクリプトに存在する変数や関数に効果的にアクセスして変更する方法を示し、特に、別のスクリプトの変数を変更するためにゲーム オブジェクトと対話する必要があるシナリオに対処します。 回避策は存在しますが、以下に概説する方法は、よりクリーンで保守しやすいソリューションを提供します。
重要なのは、ソース スクリプト内でターゲットの変数と関数を public
として宣言することです。 例:
<code class="language-csharp">public class ScriptA : MonoBehaviour { public int playerScore = 0; public void UpdateScore(int score) { playerScore += score; } }</code>
これで、別のスクリプト (ScriptB) が playerScore
にアクセスして UpdateScore
を呼び出すことができます。 その方法は次のとおりです:
<code class="language-csharp">public class ScriptB : MonoBehaviour { private ScriptA scriptAInstance; void Start() { GameObject targetObject = GameObject.Find("NameOfGameObjectScriptAIsAttachedTo"); scriptAInstance = targetObject.GetComponent<ScriptA>(); // Access playerScore int currentScore = scriptAInstance.playerScore; // Call UpdateScore scriptAInstance.UpdateScore(5); } }</code>
この方法により、コンポーネント間の直接的な対話が可能になり、より組織化されて管理しやすい Unity プロジェクトが得られます。 "NameOfGameObjectScriptAIsAttachedTo"
を、ScriptA
を含むゲームオブジェクトの実際の名前に置き換えることを忘れないでください。
以上がUnity の別のコンポーネントから変数や関数にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。