C#
Unity
変数
取得

他スクリプトからの値の取得

More than 1 year has passed since last update.

弾が持っている攻撃力の値を、ダメージを受けた側のOnCollisionEnter時に取得したかったので、その時の方法。他のスクリプトの持つ変数へのアクセスはいろいろと方法があるようだけど、今回はこの方法で。

ちなみに他スクリプトの変数へのアクセスは下記の記事がわかりやすかったです。

他スクリプトから変数の値を取得する.(ゲッター,セッター)

1 弾側の攻撃力

image.png

publicの変数として指定。これだけ。

2 敵側(被ダメージ側)の処理

    private void OnCollisionEnter(Collision collision)
    {

        if(collision.gameObject.tag == "bullet")
        {
            int WeaponATK = collision.gameObject.GetComponent<bullet>().ATK;
            Damaged(WeaponATK);
        }
    }

衝突時のcollisionをGetComponentをするのにgameObjectを挟んでやると、bulletが当たった時にbulletに付けてある変数にアクセスができました。弾側のタグに"bullet"を設定してタグを判定しています。

以前はいろいろよくわからなくて悩んだ箇所ですが、わりとすんなりできました。