Уничтожьте объект и поместите его в центр холста - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть персонаж, которого я могу перетаскивать по холсту.

Если вы перетащите его на квадрат, он исчезнет.

Все это работает хорошо, однако я хочу, чтобы Создайте экземпляр клона этого персонажа в середине холста снова, как только он будет уничтожен.

Мой код, позволяющий сделать это до сих пор:

var clone = Instantiate(gameObject, startPosition, Quaternion.identity);
iTween.ScaleTo(gameObject, new Vector3(0, 0, 0), 2f);
Destroy(gameObject, 3f);

Однако объект клонируется. I думаю, но я не вижу этого, и я также понятия не имею, где это.

Любой совет?

1 Ответ

2 голосов
/ 24 февраля 2020

объекты пользовательского интерфейса должны быть где-то вложенными в Canvas .. если вы используете Instantiate без передачи какого-либо родителя, экземпляр GameObject создается на уровне root без какого-либо родителя => Ваш пользовательский интерфейс остается невидимым.

Либо передать его уже на Instantiate

var clone = Instantiate(gameObject, startPosition, Quaternion.identity, parentWithinCanvas.transform);

, прямо установить transform.parent

clone.transform.parent = parentWithinCanvas.transform;

или используйте transform.SetParent

clone.transform.SetParent(parentWithinCanvas.transform, false);

, где последний параметр определяет, должен ли объект сохранять свою текущую позицию в мире или нет.

...