0
我有兩個GameObject: Obj1在世界空間中的位置 - transform.position;
。 世界空間中的Obj1方向 - transform.TransformDirection;
。 可變距離 - float distance = 5f;
。如何計算Unity腳本中另一個對象之前的Vector3位置?
我需要將obj2放在Obj1之前的固定距離上。如何計算Obj2的Vector3位置?
我有兩個GameObject: Obj1在世界空間中的位置 - transform.position;
。 世界空間中的Obj1方向 - transform.TransformDirection;
。 可變距離 - float distance = 5f;
。如何計算Unity腳本中另一個對象之前的Vector3位置?
我需要將obj2放在Obj1之前的固定距離上。如何計算Obj2的Vector3位置?
如果我明白你的意思,你只需要objB與objA處於固定距離,相對位置由objA的方向定義。
這很容易通過讓objB成爲objA的孩子來實現。如果是這種情況,它會移動,旋轉,甚至與objA一起縮放。如果距離和相對方向不變,只需在場景中直接設置即可。如果他們需要的是可配置的,你需要這樣的代碼:
public class KeepRelativePosition : MonoBehaviour
{
public float distance = 5f;
public Vector3 direction = Vector3.forward;
void Start()
{
SetRelativePosition();
}
void SetRelativePosition()
{
transform.localPosition = direction.normalized * distance;
}
}
如果不改變預定義值,你的對象將是5個單位之前( - >在父母的局部空間正向)對象的父。但是,你的問題並沒有足夠的說清楚,以確定這就是你想要的。
此刻你有什麼嘗試嗎?請分享您的當前代碼,以便我們更好地瞭解您是如何解決此問題的。瞭解您目前的方法將使我們更容易提供有用的解決方案。 – Serlite