unity3d - 销毁对象并在 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);
最后一个参数决定对象是否应该保持其在世界中的当前位置。
推荐阅读
- javascript - 使用javascript过滤数组对象的数组对象内的数据
- sql-server - Wildfly 14 Microsoft SQL Server 配置
- animation - 为什么我的 .dae 文件在 three.js 中不显示纹理和动画?
- reactjs - 如何使用 react-intl 返回一个空字符串
- django - 向原始数据添加字段以防止序列化错误
- awesome-wm - 新鲜的 ubuntu 18.04 和 awesome-wm gnome-control-center 已经死了
- php - Laravel CRON or Event process respond to api request via long poll - how to re-vitalise the session
- c# - 在 Visual Studio 中使用动态根 URL 生成 Web 服务
- javascript - 创建 prod build 后 Primeng 图标未显示在 IE11 上
- r - 如何避免使用 ggtern/ggplot2 剪切标签(如 xpd=TRUE)