会命中的子弹
本课属于 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 在线编辑器