销毁对象并在 Canvas 中间实例化它
Destroy Object and Instansiate it in the middle of Canvas
我有一个角色,可以在 canvas 周围拖放。
如果将它拖到正方形上,它就会消失。
所有这些都很好,但是我想在 canvas 被破坏后再次实例化该角色的克隆。
到目前为止,我的代码是;
var clone = Instantiate(gameObject, startPosition, Quaternion.identity);
iTween.ScaleTo(gameObject, new Vector3(0, 0, 0), 2f);
Destroy(gameObject, 3f);
但是我认为该对象正在被克隆,但我看不到它,而且我也不知道它在哪里。
有什么建议吗?
UI 对象 必须 嵌套在 Canvas 下的某个地方..如果你使用 Instantiate
而不传递任何父对象,GameObject 是在没有任何父级的情况下在根级别实例化 => 您的 UI 保持不可见。
要么已经传递给 Instantiate
var clone = Instantiate(gameObject, startPosition, Quaternion.identity, parentWithinCanvas.transform);
直接设置transform.parent
clone.transform.parent = parentWithinCanvas.transform;
clone.transform.SetParent(parentWithinCanvas.transform, false);
最后一个参数决定对象是否应保持其在世界中的当前位置。
我有一个角色,可以在 canvas 周围拖放。
如果将它拖到正方形上,它就会消失。
所有这些都很好,但是我想在 canvas 被破坏后再次实例化该角色的克隆。
到目前为止,我的代码是;
var clone = Instantiate(gameObject, startPosition, Quaternion.identity);
iTween.ScaleTo(gameObject, new Vector3(0, 0, 0), 2f);
Destroy(gameObject, 3f);
但是我认为该对象正在被克隆,但我看不到它,而且我也不知道它在哪里。
有什么建议吗?
UI 对象 必须 嵌套在 Canvas 下的某个地方..如果你使用 Instantiate
而不传递任何父对象,GameObject 是在没有任何父级的情况下在根级别实例化 => 您的 UI 保持不可见。
要么已经传递给 Instantiate
var clone = Instantiate(gameObject, startPosition, Quaternion.identity, parentWithinCanvas.transform);
直接设置transform.parent
clone.transform.parent = parentWithinCanvas.transform;
clone.transform.SetParent(parentWithinCanvas.transform, false);
最后一个参数决定对象是否应保持其在世界中的当前位置。