Unity3D 人脸对象移动的地方

Unity3D face object where its moving

所以我做了一个和你一起飞行的伴侣,它运行良好: this.transform.position = Vector3.Lerp(transform.position, player.transform.position + offset, speed * Time.deltaTime);

但现在这是它开始的地方......目前我正在使用它,但我希望对象在移动的地方旋转: this.transform.LookAt(player, Vector3.up);

非常感谢您的回答。

祝你有愉快的一天。

托比胡迪

您可以使用一些矢量数学来做到这一点。存储同伴之前的位置,然后使用新的目标位置来确定方向向量。代码可能类似于:

private void Update()
{
    // store our prev location
    Vector3 prevLocation = this.transform.position;
   
    // update the position as you are already doing
    this.transform.position = Vector3.Lerp(transform.position, player.transform.position + offset, speed * Time.deltaTime);
   
    // now calculate our direction using the targetLoc - prevLoc
    // assure to normalize so we have a non scaled vector, which is just a direction
    Vector3 newDir = (this.transform.position - prevLocation).normalized;

    // assign the rotation of our object to the direction we are now moving
    this.transform.rotation = Quaternion.LookRotation(newDir);
}

以上代码段未经测试,但基于 Quaternion.LookRotation 文档,因此它应该按预期工作。