为什么 Instantiate 克隆出来的GameObject的Scale 在 SetParent 总是放大 64倍?
来源:互联网 发布:nba球队数据排名 编辑:程序博客网 时间:2024/06/02 17:48
经常会犯一个错误:
这里克隆了一个物体,运行这一句发现,克隆的物体出现了在 Hieraychy 的最外层,而且查看 Transform 信息发现,和 源 GameObject上的数据一致。
Unity在 SetParent 的时候,就会把克隆出来的 GameObject 从世界坐标系中,平移到 父节点的 局部坐标系中。
GameObject childNodeClone = Instantiate(childNode) as GameObject;childNodeClone.transform.localScale = childNode.transform.localScale;childNodeClone.transform.SetParent(childNode.transform.parent);
在设置了 localScale 之后,又去 SetParent 。然后就出现了 克隆出来的 GameObject 变得无比巨大!
转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn
虽然马上会及时修改,调整 为 先 SetParent 然后再设置 localScale 。
但是经常性的出现这个问题会很难堪,那么到底是为什么会出现这个情况?
一句一句代码来看:
GameObject childNodeClone = Instantiate(childNode) as GameObject;
这里克隆了一个物体,运行这一句发现,克隆的物体出现了在 Hieraychy 的最外层,而且查看 Transform 信息发现,和 源 GameObject上的数据一致。
所以在克隆的时候,Unity 复制了 Transform 的信息,然后把 克隆出来的物体,扔到了世界坐标系中……
克隆出来的GameObject 和 Camera 的 Transform Position 是相同的,两者位于同一个点上,所以看不到克隆出来的 GameObject 。
然后
childNodeClone.transform.SetParent(childNode.transform.parent);
Unity在 SetParent 的时候,就会把克隆出来的 GameObject 从世界坐标系中,平移到 父节点的 局部坐标系中。
注意:这里只有位移,没有缩放!!
因为是从世界坐标系移动到 父节点的局部坐标系中,两个坐标系的尺量不一致。所以要进行转换。
查看 父节点 Canvas_Root 看到,父节点进行了缩放!
那么世界坐标系中的 1 ,在 父节点的局部坐标系中,就相当于 1/0.1562 ,约等于 64 倍。
转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn
所以克隆出来的物体的 Scale 是 64 !
1 0
- 为什么 Instantiate 克隆出来的GameObject的Scale 在 SetParent 总是放大 64倍?
- GameObject.instantiate 生成继承自其他的gameobject的问题
- Scale的放大与缩小
- 在VMware里克隆出来的CentOS Linux 配置网络
- 13、字体的整数倍放大
- setParent的区别
- unity Instantiate()克隆预设脚本Start()的执行时机问题
- 出来混的,总是要还的
- 为什么您们总是在质疑我的选择
- 出来混,总是要还的。
- 出来混,总是要还的
- 克隆出来的Debian/Ubuntu在新的主机环境中上网问题解决
- 在VMware里克隆出来的CentOS,没有eth0的解决办法
- transform.SetParent(ParentTra) 如果ParentTra的scale不是(1,1,1),会导致子物体变形
- CSS中两种放大zoom和scale的区别
- 为什么受伤的总是我
- 为什么被洗脑的总是你
- 为什么总是有做不完的工作?
- hibernate cache那些事
- 基数排序应用
- Android--自定义视图控件(一)(Android Studio)
- JavaWEB 核心编程视频教程 01
- Hadoop的JobControl设计及用法
- 为什么 Instantiate 克隆出来的GameObject的Scale 在 SetParent 总是放大 64倍?
- linux学习之c语言变量所占字节数
- 字符串加密,解密,利用 sun.misc.BASE64Decode类的 encode(byte)编码和decodeBuffer(str)解码
- 程序员面试准备
- C语言 字符串长度
- JSP基本语法、3个编译指令、7个动作指令、9个内置对象
- Spring构建多数据源的事务控制
- 6.7 statistics--数学统计函数
- Redis同步配置