脚本方面

1、不需要高频率调用的函数,使用InvokeRepeating(或Time.frameCount%n)代替Update

2、SetParent、Instantiate、Find、IO操作、SetActive、GetComponent等耗时较长的接口应在loading的时候做

3、Update尽量减少代码逻辑、减少临时变量、减少对其他函数的调用

4、Dictionary使用TryGet代替ContainsKey

5、用移出屏幕(例如一些UI控件)代替SetActive(false)

6、Transform的子类型过多时避免频繁地进行Transform操作,大量的子物体会带来大量的操作

7、自己用来查错的Log打印尽量不要上传SVN

9、空的Update应该删掉

10、尽量减少物理组件的使用

11、用stringbuilder代替string,减少gc

12、用for循环代替foreach

13、使用对象池

14、尽量使用异步资源加载方式,减少卡顿

15、尽量减少函数中的临时对象的创建,尽可能的把这些对象转化为类的成员,较少gc

16、尽量减少装箱拆箱操作,包括使用装箱拆箱操作的容器,例如ArrayList ,Hashtable,减少gc

17、在不影响游戏体验的时候(例如Loading、设置界面)主动通过System.GC.Collect()调用垃圾回收

设定方面

1、减少drawcall,设置静态批次,将场景中不移动的的地图元素勾选 static选项

2、减少光照,尤其是点光源,降低像素级光源数量,最好不要使用动态光源

3、降低阴影质量及产生阴影距离

5、使用lightmap

6、shader尽量设定为 Mobile下的,这些shader在手机上表现更好

7、关闭纹理资源的“Read & Write”功能

美术方面

1、使用LOD(Level of Detail)

2、合并网格,减少calldraw,尽量少于200

3、剔除场景模型中看不到的面

4、优化模型,做到同屏面数少于10w

5、当某特效有非常多的可能重叠的透明粒子,且有可能近距离观察这个特效的时候(例如近距离观察一个龙卷风特效),可能会造成渲染用时过多,游戏就会比较卡,因为渲染的时候叠加的透明面片会让渲染次数提高很多,可以使用透明的模型代替特效

6、半透明物体开销比较大,尽量不要使用

Unity客户端开发优化要点相关推荐

  1. Unity客户端开发面试题记录

    Unity客户端开发面试题记录 1.如何理解面向对象思想 A:面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节.面向对象的特征是:封装,继承,多态.多态就是接口的多种不同 ...

  2. 基于Dotnetty和Protobuf的Unity客户端开发(一)

    目录 前言 链接 环境配置 安装NuGetForUnity 安装Protobuf 安装Dotnetty包 手动安装其他依赖包 前言 公司的前辈基于Netty开发了一个服务器,推荐我在前端也使用Nett ...

  3. unity 移动开发优化二 图形优化,脚本优化概述

    手机优化实用指南 本指南是为刚接触手机游戏开发的开发者准备的,他们可能会感到不知所措,他们要么正在计划并制作一款新的手机游戏原型,要么正在将一个现有的项目移植到移动设备上以使其顺利运行. 本指南对于任 ...

  4. Android:Socket客户端开发,Android 的Socket客户端优化,Android非UI线程修改控件程序崩溃的问题

    一.Android:Socket客户端开发 创建一个工程 我们要做的是按下按键之后,去往服务器 (服务器) 或者我们自己写的服务器 ,给他发送一些预定好的东西 然后打开操作界面 然后修改一下 你要发送 ...

  5. 【游戏开发实战】用Go语言写一个服务器,实现与Unity客户端通信(Golang | Unity | Socket | 通信 | 教程 | 附工程源码)

    文章目录 一.前言 二.Go开发环境搭建(Windows系统) 1.安装Go命令行工具 2.创建GoWorkspace目录 3.配置GOPATH环境变量 4.配置GOPROXY代理 5.安装VSCod ...

  6. unity webgl开发踩坑——从开发、发布到优化

    目录 前言 环境 unity webgl的一些注意点 videoplayer修改-->Video Player WebGL插件 text修改--解决不能显示汉字问题 制作.读取ab包 unity ...

  7. 客户端性能优化实战经验分享

    合理的架构设计,对客户端后期优化至关重要 暴风影音播放器一直因为"慢",而引发用户诸多抱怨.新发布的暴风影音5在启动速度上较暴风影音3提升了3倍.暴风影音播放研发总监黄森堂以暴风影 ...

  8. 手游客户端开发招聘要求

    以下内容整理自网络,仅供参考学习 1 职位描述: 说明: 1. 负责手游前端的设计及开发 2. 根据需求实现游戏的战斗/场景/系统/界面等效果 3. 良好的理解策划需求,与策划人员进行良好的沟通 4. ...

  9. Android客户端性能优化(魅族资深工程师毫无保留奉献)

    Android客户端性能优化(魅族资深工程师毫无保留奉献) 转载学习:http://blog.tingyun.com/web/article/detail/155?from=groupmessage& ...

最新文章

  1. 设计模式 2014-12-19
  2. 深入理解C程序内存布局
  3. 《数据结构与抽象:Java语言描述(原书第4版)》一2.1.4 让实现安全
  4. 【AI视野·今日Robot 机器人论文速览 第五期】Thu, 10 Jun 2021
  5. 苏宁易购回应破产传闻:系谣言 已报案
  6. 弄了一个数学论坛,感觉不错,欢迎加入讨论
  7. 一篇不错的讲解Java异常的文章
  8. 利用jquery实现数字千分位排版显示,使用0动态补全8位数
  9. 二叉树的前序中序后序 递归与非递归解法
  10. vue for 初始值_vue全套教程(实操)就在这里
  11. python 生成testbench_(Testbench用法总结)1. Testbench中文本数据的存储读取操作对比
  12. html 狗头小游戏祝大家情人节快乐
  13. Python数据分析报告
  14. photoshop cc 2017 mac 破解版
  15. 交互设计的职能:交互设计师具体做什么
  16. 校园招聘 - 面试指南
  17. linux floppy 虚拟,Floppylinux
  18. PAT乙级刷题心得和常用函数总结 (c++实现)
  19. UVALive - LED Circuit(Spfa)
  20. javascript 编码转换

热门文章

  1. java gc回收算法_Java GC回收算法-判定一个对象是否可以回收
  2. Ubuntu10.10的网络配置
  3. Linux内核的Makefile和kconfig解读
  4. Session、Dialog和Transaction的区别
  5. C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
  6. mysql三大范式_MySQL学习笔记
  7. 敏捷开发流程的8个步骤_敏捷开发——个体和互动高于流程和工具
  8. .NET三种异步模式(APM、EAP、TAP)
  9. sharepoint服务器安装已安装netframework4.5,仍提示未安装
  10. php网站评论模块怎么写,模块内容评论循环