关于unity3d clone的prefab物体一起行动的问题(static要慎用)
2015-04-29 09:29
441 查看
首先,为什么要去一个这个名字呢,因为对大多数新手来说遇到这样的问题根本就不知道static的问题(就拿我来说...)而知道这个问题的基本可以自己解决了。
最近在学习Unity3d,看书和视频学习的时候基本上也就是对于static一句话就说过去了,说他是预先编译,优先于脚本的函数,这样的一句话,一开始我还是很迷茫,ok,或许是我的技术还很薄弱吧,没有细细体会到其中的奥秘,直到自己做了一个Unity的一个模仿红绿灯的项目,我才彻底的领悟到了这一点,当然代价就是找了六个小时的bug,最终用最笨的方法一点点的执行,最后发现是因为一个关键词——static!(一开始根本就没有想到会是static出问题...)
ok,回到我们所说的话题,了解Unity3d的都知道,对于一个prefab物体,我每次克隆的话,就相当于每一个独立的个体,彼此之间是没有联系的,然而我在运行我的项目(一个模拟红绿灯的交通系统)的时候,一旦一辆车停下,所有的车都停下了,这让我很迷茫,曾一度认为是我的wheelCollider的库不支持clone呢,后来也查了相关的东西,说什么的都有,还有什么Instantiate并不可以完全的复制还有destory并没有完全的删除,虽然了解了相关的东西,但是改来改去都没有解决我的所有的车一起停的问题,最后查到了凌晨一点,竟然是一个static,好吧,再说一下,为什么我要用static因为我要引用不同的js脚本的传值,当时并没有用sendmessage类似这样的方法而是用了一个自认为简单的直接获取另一个脚本的静态变量的方法,结果就导致了这个问题...
最后查了相关的资料也算是给自己和大家的一些忠告吧:直面意思就是说这个object是在程序运行时是静止不变的,确保不被改变,一般多用于场景中静止的物体。在unity内部会有不少操作来检测该object是否为static的,对于static的物体进行一些特殊处理,比如说在Occlusion
culling时会对static物体进行patching,在rendering优化时也会根据是否为static来进行不同的优化,在lightmaping时,会根据是否是static来进行光照等等。
最近在学习Unity3d,看书和视频学习的时候基本上也就是对于static一句话就说过去了,说他是预先编译,优先于脚本的函数,这样的一句话,一开始我还是很迷茫,ok,或许是我的技术还很薄弱吧,没有细细体会到其中的奥秘,直到自己做了一个Unity的一个模仿红绿灯的项目,我才彻底的领悟到了这一点,当然代价就是找了六个小时的bug,最终用最笨的方法一点点的执行,最后发现是因为一个关键词——static!(一开始根本就没有想到会是static出问题...)
ok,回到我们所说的话题,了解Unity3d的都知道,对于一个prefab物体,我每次克隆的话,就相当于每一个独立的个体,彼此之间是没有联系的,然而我在运行我的项目(一个模拟红绿灯的交通系统)的时候,一旦一辆车停下,所有的车都停下了,这让我很迷茫,曾一度认为是我的wheelCollider的库不支持clone呢,后来也查了相关的东西,说什么的都有,还有什么Instantiate并不可以完全的复制还有destory并没有完全的删除,虽然了解了相关的东西,但是改来改去都没有解决我的所有的车一起停的问题,最后查到了凌晨一点,竟然是一个static,好吧,再说一下,为什么我要用static因为我要引用不同的js脚本的传值,当时并没有用sendmessage类似这样的方法而是用了一个自认为简单的直接获取另一个脚本的静态变量的方法,结果就导致了这个问题...
最后查了相关的资料也算是给自己和大家的一些忠告吧:直面意思就是说这个object是在程序运行时是静止不变的,确保不被改变,一般多用于场景中静止的物体。在unity内部会有不少操作来检测该object是否为static的,对于static的物体进行一些特殊处理,比如说在Occlusion
culling时会对static物体进行patching,在rendering优化时也会根据是否为static来进行不同的优化,在lightmaping时,会根据是否是static来进行光照等等。
相关文章推荐
- Unity3D关于一个父物体下锚点位置问题
- 关于static与final 一起用需要注意的问题
- 关于static的问题
- unity3d中关于导入插件出错的问题,注意事项!!!
- 一个关于unity3d中ios设备多点触控顺序的问题
- 关于Unity3d中物体之间碰撞检测的方法
- 关于unity3D 打包的问题BuildAssetBundle的实现
- Unity3D - 关于Dynamic和Static
- 关于maven 把插件依赖一起打包进jar问题
- 关于getChildStaticTransformation在android4.1失效问题解决方案
- 关于Cocos2d-x中物理世界的物体乱跳的问题的解决
- (来自百度知道)c/c++ VC++ MFC 关于在Static 控件里面作图的问题 详见问题补充,希望能留下QQ,交流一下
- 关于getChildStaticTransformation在android4.1失效问题解决方案
- 关于static final的问题(半个转载,也有自己总结的)
- 关于Makefile的两个基本问题(参考大作“跟我一起写makefile”)
- 关于Singleton Template与于static member initialization问题
- 关于java中static问题
- 分享一道笔试题目--关于static和extern变量的问题
- 关于getChildStaticTransformation在android4.1失效问题解决方案
- 关于java中成员变量,static等问题总结