ホームページ > バックエンド開発 > C++ > さまざまな Unity コンポーネントから変数や関数にアクセスするにはどうすればよいですか?

さまざまな Unity コンポーネントから変数や関数にアクセスするにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-18 06:12:14
オリジナル
806 人が閲覧しました

How to Access Variables and Functions from Different Unity Components?

Unity のさまざまなコンポーネントの変数と関数にアクセスします

Unity では、他のスクリプト内の変数や関数にアクセスすることが非常に一般的なニーズです。デフォルトでは、スクリプト内の変数と関数はプライベートであり、スクリプトの外部からアクセスすることはできません。他のスクリプトがそれらにアクセスできるようにするには、それらを公開する必要があります。

たとえば、プレイヤーと敵が含まれ、それぞれに独自のスクリプト (Character_Stats と Enemy_Stats) があるシーンを考えてみましょう。この場合、Character_Stats スクリプトから Enemy_Stats スクリプトの Health 変数にアクセスするには、次のコードに示すように回避策が必要です。

<code class="language-c#">void OnCollisionEnter(Collision collision)
{
    if (collision.gameObject.tag == "Enemy")
    {
        collision.gameObject.GetComponent<enemy_stats>().Health = 
            collision.gameObject.GetComponent<enemy_stats>().Health 
            - gameObject.GetComponent<character_stats>().AttackDamage;

        if (collision.gameObject.GetComponent<enemy_stats>().Health < 0)
        {
            Destroy(collision.gameObject);
        }
    }
}</code>
ログイン後にコピー

変数と関数をパブリックにする

この回避策を回避するには、Health 変数と、他のスクリプトからアクセスしたい関数をパブリックにします。その方法は次のとおりです:

<code class="language-c#">public class Enemy_Stats : MonoBehaviour
{
    public float Health;

    void Start()
    {

    }

    public void TakeDamage(float damage)
    {
        Health -= damage;
    }
}</code>
ログイン後にコピー

パブリック変数と関数にアクセスする

これで、Find 関数と GetComponent 関数を使用して別のスクリプトから Health 変数にアクセスし、TakeDamage 関数を呼び出すことができます。

<code class="language-c#">public class Character_Stats : MonoBehaviour
{
    GameObject enemyObj;
    Enemy_Stats enemyStats;

    void Start()
    {
        enemyObj = GameObject.Find("EnemyGameObject");
        enemyStats = enemyObj.GetComponent<Enemy_Stats>();
    }

    void AttackEnemy()
    {
        enemyStats.TakeDamage(AttackDamage);

        if (enemyStats.Health <= 0)
        {
            Destroy(enemyObj);
        }
    }
}</code>
ログイン後にコピー
変数と関数を公開すると、他のスクリプトから簡単にアクセスして操作できるようになり、Unity プロジェクトの時間と労力を節約できます。

以上がさまざまな Unity コンポーネントから変数や関数にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート