Unity3D性能优化总结[通俗易懂]

Unity3D性能优化总结

大家好,又见面了,我是全栈君。

一、程序方面


  01、务必删除脚本中为空或不须要的默认方法;


  02、仅仅在一个脚本中使用OnGUI方法。


  03、避免在OnGUI中对变量、方法进行更新、赋值,输出变量建议在Update内。


  04、同一脚本中频繁使用的变量建议声明其为全局变量,脚本之间频繁调用的变量或方法建议声明为全局静态变量或方法;


  05、不要去频繁获取组件,将其声明为全局变量。


  06、数组、集合类元素优先使用Array,其次是List;


  07、脚本在不使用时脚本禁用之,须要时再启用;


  08、能够使用Ray来取代OnMouseXXX类方法。


  09、须要隐藏/显示或实例化来回切换的对象,尽量不要使用SetActiveRecursively或active,而使用将对象远远移出相机范围和移回原位的做法。


  10、尽量少用模运算和除法运算,比方a/5f,一定要写成a*0.2f。


  11、对于不常常调用或更改的变量或方法建议使用Coroutines & Yield;


  12、尽量直接声明脚本变量。而不使用GetComponent来获取脚本;


iPhone


  13、尽量使用整数数字。由于iPhone的浮点数计算能力非常差;


  14、不要使用原生的GUI方法。


  15、不要实例化(Instantiate)对象,事先建好对象池。并使用Translate“生成”对象;


 




二、模型方面


  01、合并使用同贴图的材质球。合并使用同样材质球的Mesh;


  02、角色的贴图和材质球仅仅要一个。若必须多个则将模型离分离为多个部分。


  02、骨骼系统不要使用太多。


  03、当使用多角色时,将动画单独分离出来;


  04、使用层距离来控制模型的显示距离。


  05、阴影事实上包括双方面阴暗和影子,建议使用实时影子时把阴暗效果烘焙出来。不要使用灯光来调节光线阴暗。


  06、少用像素灯和使用像素灯的Shader;
  08、假设硬阴影能够解决这个问题就不要用软阴影。而且使用不影响效果的低分辨率阴影;
  08、实时阴影非常耗性能,尽量减小产生阴影的距离;
  09、同意的话在大场景中使用线性雾,这样能够使远距离对象或阴影不易察觉,因此能够通过减小相机和阴影距离来提高性能。
  10、使用圆滑组来尽量降低模型的面数;
  11、项目中假设没有灯光或对象在移动那么就不要使用实时灯光;
  12、水面、镜子等实时反射/折射的效果单独放在Water图层中,而且依据事实上时反射/折射的范围来调整。
  13、碰撞对效率的影响非常小,但碰撞还是建议使用Box、Sphere碰撞体。
  14、建材质球时尽量考虑使用Substance;
  15、尽量将全部的实时反射/折射(如水面、镜子、地板等等)都集合成一个面;
  16、假反射/折射没有必要使用过大分辨率,一般64*64就能够,不建议超过256*256;
  17、须要更改的材质球。建议实例化一个,而不是使用公共的材质球;
  18、将不须射线或碰撞事件的对象置于IgnoreRaycast图层;
  19、将水面或类似效果置于Water图层
  20、将透明通道的对象置于TransparentFX图层;
  21、养成良好的标签(Tags)、层次(Hieratchy)和图层(Layer)的条理化习惯,将不同的对象置于不同的标签或图层,三者有效的结合将非常方便的按名称、类别和属性来查找;
  22、通过Stats和Profile查看对效率影响最大的方面或对象。或者使用禁用部分模型的方式查看问题究竟在哪儿;
  23、使用遮挡剔除(Occlusion Culling)处理大场景。一种较原生的类LOD技术。而且可以“切割”作为总体的一个模型。

三、其他
  场景中假设没有使用灯光和像素灯,就不要使使用方法线贴图。由于法线效果仅仅有在有光源(Direct Light/Point Light/Angle Light/Pixel Light)的情况下才有效果。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115692.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 考考基础部分,谈谈Java集合中HashSet的原理及常用方法

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:工匠初心cnblogs.com/LiaHon/p/11257805.html 目录 HashSet概述 Has…

  • IDEA中Maven配置问题全解决[通俗易懂]

    IDEA中Maven配置问题全解决[通俗易懂]最近换了工作环境,以前的IDEA配置都没了,记得上次配置自己的IDEA还是在两年前?然后构建Maven项目时遇到了一些小插曲,记录下解决方案(PS:新手教程向)1.idea中maven默认配置的坑首先打开File->Settings这里可以直接搜索maven,就可以进入idea的Maven配置选项。我这里是idea默认的maven配置,可以看到默认的Maven目录是idea内置…

  • QQ空间钓鱼源码_QQ空间视频提取值源码

    QQ空间钓鱼源码_QQ空间视频提取值源码IgotthiswebsitefrommypalwhosharedwithmeconcerningthiswebpageandatthemomentthistimeIamvisitingthiswebsiteandreadingveryinformativearticlesorreviewshere.回复thejjreport.com…

  • Python详细知识体系总结(2021版)「建议收藏」

    Python知识体系总结(持续更新ing)本文专注整理一些有关Python学习的知识体系,不定期更新。整理的Python知识体系主要包括基础知识,Python热门的应用方向,推荐书籍,FAQ以及一些常见面试题目,包含了作为一个Python全栈工程师以及数据分析工程师在开发工作和学习中需要用到或者可能用到的绝大部分知识。希望大家可以根据自己感兴趣的方面多多学习。另:写的博客如有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。文章目录Python知识体系总结(持续更新ing)面试题汇总Pyth

  • centos7下安装mysql5.7(rpm)「建议收藏」

    centos7下安装mysql5.7(rpm)「建议收藏」一查看linux操作系统版本和系统内核版本[root@nfs_client~]#cat/etc/redhat-release查看操作系统版本CentOSLinuxrelease7.5.1804(Core)[root@nfs_client~]#uname-r查看系统内核版本3.10.0-862.el7.x86_64…

  • 简单的贪吃蛇游戏代码_python 贪吃蛇

    简单的贪吃蛇游戏代码_python 贪吃蛇Python贪吃蛇游戏编写代码来源:中文源码网浏览:次日期:2018年9月2日【下载文档:Python贪吃蛇游戏编写代码.txt】(友情提示:右键点上行txt文档名->目标另存为)Python贪吃蛇游戏编写代码最近在学Python,想做点什么来练练手,命令行的贪吃蛇一般是C的练手项目,但是一时之间找不到别的,就先做个贪吃蛇来练练简单的语法。由于…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号