命中する弾丸
CoddyのUnityジャーニー「物理演算とゲームプレイ」セクションの一部。レッスン 56/71。
チャレンジ
中級弾丸を書こう。Healthを持つものにダメージを与え、命中したものを通り抜ける。
Bulletにvoid OnCollisionEnter(Collision collision)を追加します。- その中で、
if (collision.gameObject.TryGetComponent(out Health health))のとき、health.TakeDamage(damage);を呼び出します。 - その
ifの後にDestroy(gameObject);を呼び出します。これで、壁に当たった弾丸も消えます。
「プレイ」を押して、ダミーと壁を撃ちます。その後、「確認」を押します。
自分で試してみよう
using UnityEngine;
public class Bullet : MonoBehaviour
{
[SerializeField] private int damage = 2;
// 命中時: Health を持つ対象にダメージを与え、その後弾を破壊する
}
物理演算とゲームプレイのすべてのレッスン
自分で練習してみよう: Unityプレイグラウンド