[英]Why are BoxCollider and GameObject moving to the wrong place?
我有一個空的 GameObject 充當屏障。 它有一個 Kinematic Rigidbody2D 和一個 BoxCollider2D。 游戲開始時,它與位於其上的其他游戲對象完美配合,但是當活動的 boolean 翻轉時,object 轉換到錯誤的位置。 它沒有轉到 Vector3(0, -1060, 0),而是轉到 Vector3(0, -2932.16, -219.24)。 為什么要這么做???
public static bool active = false;
private Rigidbody2D block;
private Vector3 endPosition = new Vector3(0, -1060, 0);
void Start()
{
block = GetComponent<Rigidbody2D>();
}
void Update()
{
if (active)
{
transform.position = endPosition;
block.transform.position = endPosition;
active = false;
}
}
只有在本地位置不同時,它才必須這樣做。 您很可能在本地空間工作,而不是在世界空間工作。
嘗試這兩種方法中的任何一種。 https://docs.unity3d.com/ScriptReference/Transform.InverseTransformPoint.html https://docs.unity3d.com/ScriptReference/Transform.TransformPoint.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.