Menu
CoddyTech

回顾:看门狗

本课属于 Coddy Unity 学习旅程的“物理与游戏玩法”单元。第 58 课,共 71 课。

本次回顾将本章内容串联起来:将追击设为速度,在地面上测量距离,通过 Health 脚本造成伤害,并施加击退冲量。

challenge icon

挑战

中等

编写护卫犬:它会追赶狗窝附近的陌生人。

  1. 在 FixedUpdate() 中,如果玩家在地面上距离 kennel.position 小于 guardRange,就以 speed 的速度追向玩家,并保持 y 不变。
  2. 否则就跑回狗窝;距离狗窝在 0.3 以内时,原地不动。
  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()
    {
        // 守护狗舍:玩家靠近时追赶玩家,否则回到狗舍
    }
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

物理与游戏玩法中的所有课

自己练习: Unity 在线编辑器