Почему BoxCollider и GameObject перемещаются не в то место? - PullRequest
0 голосов
/ 31 октября 2019

У меня есть пустой GameObject, который действует как барьер. У этого есть Кинематическое Rigidbody2D и BoxCollider2D. Когда игра начинается, она отлично работает с другими объектами GameObject, сидящими на ней, НО, когда булево значение active перевернуто, объект трансформируется в неправильное место. Вместо перехода к 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;
    }
}

1 Ответ

0 голосов
/ 31 октября 2019

Он должен делать это только в том случае, если местные позиции различны. Скорее всего, вы работаете в локальном пространстве, а не в мировом.

Попробуйте любой из этих двух способов. https://docs.unity3d.com/ScriptReference/Transform.InverseTransformPoint.html https://docs.unity3d.com/ScriptReference/Transform.TransformPoint.html

...