簡體   English   中英

為什么 BoxCollider 和 GameObject 移動到錯誤的位置?

[英]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.

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