首页 > 解决方案 > 销毁对象并在 Canvas 中间实例化它

问题描述

我有一个可以在画布上拖放的角色。

如果你把它拖到一个正方形上,它就会消失。

所有这些都很好,但是我想在画布被破坏后再次在画布中间实例化该角色的克隆。

到目前为止,我的代码是;

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

但是,我认为该对象正在被克隆,但我看不到它,而且我也不知道它在哪里。

有什么建议吗?

标签: unity3dinstantiationitween

解决方案


UI 对象必须嵌套在 Canvas 下的某个位置。如果您在Instantiate没有传递任何父级的情况下使用 GameObject ,则在没有任何父级的情况下在根级别实例化 => 您的 UI 保持不可见。

要么已经通过它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);

最后一个参数决定对象是否应该保持其在世界中的当前位置。


推荐阅读