七、交互
现在敌人已经会自动寻路并且攻击主角了,但并不能造成实际伤害,主角也还不能攻击敌人。接下来我们就分别为主角和敌人的脚本添加处理代码来实现主角和敌人之间的交互。
1. 打开脚本Player.cs,添加OnDamage方法来处理主角被攻击时的逻辑。
/// <summary>
/// 主角被攻击时触发的逻辑代码
/// </summary>
/// <param name="damage">伤害数值</param>
public void OnDamage(int damage)
{
life -= damage;
// 更新UI生命值
GameManager.Instance.SetLife(life);
// 如果生命为0,游戏结束,取消鼠标锁定
if (life <= 0)
{
Cursor.lockState = CursorLockMode.None;
}
}
2. 在Player类中添加几个属性,为射击做准备。
public LayerMask layer; // 射击时射线能射到的碰撞层
public Transform fx; // 射中目标后的粒子效果
public AudioClip clip; // 射击音效
private Transform muzzlePoint; // 枪口的Transform组件
private float shootTimer = 0; // 射击间隔的计时器
3. 在Start方法中添加如