繁体   English   中英

如何围绕单个轴旋转 3D 对象?

[英]How to rotate a 3D object around a single axis?

我有一个 3D 游戏对象,我想在垂直平面上从 A 移动到 B。 我整理了运动部分:

public Vector3 start;
public Vector3 end;
public GameObject spaceship;
bool flying;

void OnStart(){

    spaceship.transform.position = start;
    flying = false;
}

void Update(){

    if (flying)
        MovingSpaceship();
}

void MovingSpaceship(){

    if (spaceship.transform.position != end)
    {
        spaceship.transform.position = Vector3.MoveTowards(spaceship.transform.position, end, speed * Time.deltaTime);
    }
}

问题是我希望游戏对象指向目的地。 我在这篇文章中找到了一个答案,但是给我不想旋转的轴赋予 0 值对我来说不起作用:

unity transform.LookAt 仅在一个轴上

还有其他选择吗?

假设您正在 XY 平面中移动游戏对象,Z 是您没有修改的深度,那么您可以在代码中放置某个位置:

spaceship.transform.LookAt(end, Vector3.back); 

如果您没有在 XY 计划中移动spaceship ,那么您需要为worldUp属性赋予不同的值。 文件

暂无
暂无

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

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