繁体   English   中英

如何在Unity3D中添加回避和追逐行为

[英]How to add avoidance and chase behavior in Unity3D

我想实现一种行为类型,在这种行为中,一群猎物正从这种游戏的掠食者中逃脱

我试图以这种方式编写脚本,但是我没有得到期望的动作,猎物只是向前移动。

public Transform target;

    public float damping;
    public float drivespeed;

    void Update () {
        transform.Translate(Vector3.forward * Time.deltaTime * -drivespeed);

        Quaternion rotation = Quaternion
            .LookRotation(target.position - transform.position);
        transform.rotation = Quaternion
            .Slerp(transform.rotation, rotation, Time.deltaTime * damping);
    }

看起来像你想要的

transform.Translate(transform.forward * Time.deltaTime * -drivespeed);

代替

transform.Translate(Vector3.forward * Time.deltaTime * -drivespeed);

Vector3.forward是世界前向向量,而不是对象的前向向量。)

可能是transform.translate在旋转逻辑之前被调用,但是很难分辨出这里出了什么问题。

  • 物体是否正确旋转?
  • 如果是这样,变换是否在忽略旋转的情况下向前发展?
  • 驱动速度和阻尼变量!= 0吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM