簡體   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