Как при извлечении дочернего объекта не изменять глобальную позицию?

У меня есть следующий код, который при уходе объекта из триггера, извлекает этот объект из родителя:

private void OnTriggerExit(Collider other)
{
    transform.parent = null;
}

Но при выполнении данного кода объект изменяет свою глобальную позицию. Как это можно исправить?


Ответы (1 шт):

Автор решения: FiolDoll

Если я правильно понял ваш вопрос - можно сделать сохранение позиции в OnTriggerEnter, а в OnTriggerExit после "извлечения" дочернего объекта ставить сохранённую позицию

private Vector3 originalPosition;

private void OnTriggerEnter(Collider other)
{
    originalPosition = transform.position;
    // ...
}

private void OnTriggerExit(Collider other)
{
    transform.parent = null;
    transform.position = originalPosition;
}
→ Ссылка