回顾:看门狗
本课属于 Coddy Unity 学习旅程的“物理与游戏玩法”单元。第 58 课,共 71 课。
本次回顾将本章内容串联起来:将追击设为速度,在地面上测量距离,通过 Health 脚本造成伤害,并施加击退冲量。
挑战
中等编写护卫犬:它会追赶狗窝附近的陌生人。
- 在
FixedUpdate()中,如果玩家在地面上距离kennel.position小于guardRange,就以speed的速度追向玩家,并保持 y 不变。 - 否则就跑回狗窝;距离狗窝在 0.3 以内时,原地不动。
- 撞到
Player时,调用它的Health的TakeDamage(1),并沿着地面上远离狗的方向给它施加大小为bite的冲量。
在狗窝附近按“开始”,然后按“检查”。
亲手试试
using UnityEngine;
public class Dog : MonoBehaviour
{
[SerializeField] private Transform player;
[SerializeField] private Transform kennel;
[SerializeField] private float speed = 3.5f;
[SerializeField] private float guardRange = 6f;
[SerializeField] private float bite = 5f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
// 守护狗舍:玩家靠近时追赶玩家,否则回到狗舍
}
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
物理与游戏玩法中的所有课
自己练习: Unity 在线编辑器