Unity研究院之多余的MeshCollider和Animation组件
来源:互联网 发布:耽美网络剧美拍 编辑:程序博客网 时间:2024/05/21 07:05
如果你是在做手游项目,我强烈建立不要做碰撞,有关一切物理的东西Unity对手机支持的并不好,如果不信你可以试试效率你就知道。美术兄弟,每次给过来的场景,都会带上MeshCollider 和Animation 空的组件。这俩东西很占效率的,不信你可以用Profiler 看看。如果你让美工们上传场景的时候手动检查一下,把MeshCollider和Animation空的组件都删掉,我可以很负责的告诉你,他们肯定会忘删除或者错删。。。比如下图这样的组件。
还有场景的材质最好用Mobile/Diffuse,他会比Diffuse的shader效率高很多,因为它会减少每个点的一次乘法。但是有时候美术需要做贴图的变色, 那就不能用Mobile/Diffuse了。但是后来我看了一下有很多材质用的是Diffuse,但是颜色那里是纯白色,那么shader在渲染的时候每个点都多余的进行了一次乘法的运算(效率白白的浪费了)。。。
作为程序我们首先要避免策划和美术犯错,果断的写一个插件吧,美术在上传场景之前让运行一下插件,把没用的组件删除掉。
如果你的项目中美术已经上传了很多场景,并且你也不知道那个场景有问题,那就快写一个批量删除所有场景的插件吧。
结合上面的代码
另外清注意 只有你的场景在BuildSettings页面中注册过UnityEditor.EditorBuildSettings.scenes才能获取场景。如果你的场景没有加到BuildSetting中。 如果想批量添加你可以参考我之前写的文章我还是copy过来吧。
合并drallCall 最简单的办法就是让美术上传模型的时候勾选一下Static,这样Unity会自动帮我们合并DrawCall.我建议你还是不要相信美术了。帮他们做工具吧。。
或者你也可以在游戏运行中动态的添加,找一个合适的位置写入如下代码。他会把该游戏对象以及所有子对象全部合并DrawCall。
这样合并DrawCall的很方便,而且也很简单。但是无法修改所有子对象的坐标、旋转、缩放了,但是可以修改父对象。如下图所示,比如我给a 设置了static属性,或者 Combine(a.gameObject) ,那么如果代码中你需要操作b 或者 c 的Transform那么是不行的, 但是你可以操作a。 他会带着 b 和c 一起Transform。
- Unity研究院之多余的MeshCollider和Animation组件
- Unity研究院之多余的MeshCollider和Animation组件
- Unity研究院之多余的MeshCollider和Animation组件
- Unity开发优化----删除多余的MeshCollider和Animation组件
- unity MeshCollider组件
- unity之Animation组件
- Unity中Animation与Animator组件的使用
- MeshCollider的那些坑
- unity之多态和索引
- unity中关于Animation和AudioSource的用法
- unity animation机制和flash 动画机制的区别
- unity的animation的使用
- unity组件的添加和删除
- 使用Animation实现组件的折叠和展开
- unity学习之多态和索引器
- Unity关于MeshCollider碰撞体无法触发碰撞事件
- unity-Animation
- Unity Animation
- 图形学理论知识 BRDF 双向反射分布函数 Bidirectional Reflectance Distribution Function
- Ward BRDF实现心得
- Unity3D Shader 入门
- 【Unity技巧】开发技巧(技巧篇)
- 深入理解Unity5中的StandardShader屏幕像素化特效的实现
- Unity研究院之多余的MeshCollider和Animation组件
- Unity5.3官方VR教程重磅登场-系列1
- Color Grading with Unity and the Asset Store
- 【华为OJ】【036-iNOC产品部--完全数计算】
- 【华为OJ】【037-挑7】
- 【华为OJ】【038-iNOC产品部-杨辉三角的变形】
- 成为C++高手之条件语句
- 不知道怎么开发VR游戏?Unity5.3官方VR教程重磅登场-系列3 VR中的交互方式
- Unity5.3官方VR教程重磅登场-系列4 VR中的用户界面