代码之家  ›  专栏  ›  技术社区  ›  Harry

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

  •  0
  • Harry  · 技术社区  · 6 年前

    我想实现这样一种行为:一群猎物在躲避这样的捕食者 Game

    我试着用这种方式写剧本,但我没有得到想要的动作,猎物只是向前移动。

    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);
        }
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   AKX Bryan Oakley    6 年前

    看起来像你想要的

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

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

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

        2
  •  0
  •   Will Anderson    6 年前

    可能是因为转换.translate在旋转逻辑之前被调用,但很难判断出这里出了什么问题。

    • 物体旋转是否正确?
    • 如果是这样的话,变换向前移动会忽略旋转吗?
    • 是驱动速度和阻尼变量!=0?