簡體   English   中英

獲取3D對象在另一個對象之后的2D位置?

[英]Get 2D position of a 3D object when it follows another object?

當該對象跟隨另一個3D對象時,如何獲得3D對象的2D位置(即z軸應為0)?

到目前為止,我已經嘗試了下面的一行代碼,但是z軸不會保持為0,因為它跟隨另一個不斷波動的對象。 有什么辦法嗎?

public GameObject Car;
public GameObject Icon;

// Update is called once per frame
void Update () 
{
    Icon.transform.position = Vector3.MoveTowards(Car.transform.position, Car.transform.position, 0);
}
Icon.transform.position = Vector3.MoveTowards(Car.transform.position, Car.transform.position, 0);

這絕對沒有任何作用...首先,您在相同的位置之間移動,其次是速度= 0 ...所以基本上等於

Icon.transform.position = Car.transform.position;

您想要做的是消除位置矢量的z分量,例如

Icon.transform.position = new Vector3(Car.transform.position.x, Car.transform.position.y, 0);

或一個小技巧:您可以將其轉換為Vector2 ,使其“忘記” z值。 然后隱式地將其轉換為Vector3z=0

Icon.transform.position = (Vector2) Car.transform.position;

您只需將位置放在局部變量中,然后將z設置為0。

public GameObject Car;
public GameObject Icon;

// Update is called once per frame
void Update () {
    Vector3 pos3d = Car.transform.position;
    pos3d.z = 0;
    Icon.transform.position = pos3d;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM