弾が持っている攻撃力の値を、ダメージを受けた側のOnCollisionEnter時に取得したかったので、その時の方法。他のスクリプトの持つ変数へのアクセスはいろいろと方法があるようだけど、今回はこの方法で。
ちなみに他スクリプトの変数へのアクセスは下記の記事がわかりやすかったです。
1 弾側の攻撃力
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"を設定してタグを判定しています。
以前はいろいろよくわからなくて悩んだ箇所ですが、わりとすんなりできました。