Unity客户端开发优化要点
脚本方面
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客户端开发优化要点相关推荐
- Unity客户端开发面试题记录
Unity客户端开发面试题记录 1.如何理解面向对象思想 A:面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节.面向对象的特征是:封装,继承,多态.多态就是接口的多种不同 ...
- 基于Dotnetty和Protobuf的Unity客户端开发(一)
目录 前言 链接 环境配置 安装NuGetForUnity 安装Protobuf 安装Dotnetty包 手动安装其他依赖包 前言 公司的前辈基于Netty开发了一个服务器,推荐我在前端也使用Nett ...
- unity 移动开发优化二 图形优化,脚本优化概述
手机优化实用指南 本指南是为刚接触手机游戏开发的开发者准备的,他们可能会感到不知所措,他们要么正在计划并制作一款新的手机游戏原型,要么正在将一个现有的项目移植到移动设备上以使其顺利运行. 本指南对于任 ...
- Android:Socket客户端开发,Android 的Socket客户端优化,Android非UI线程修改控件程序崩溃的问题
一.Android:Socket客户端开发 创建一个工程 我们要做的是按下按键之后,去往服务器 (服务器) 或者我们自己写的服务器 ,给他发送一些预定好的东西 然后打开操作界面 然后修改一下 你要发送 ...
- 【游戏开发实战】用Go语言写一个服务器,实现与Unity客户端通信(Golang | Unity | Socket | 通信 | 教程 | 附工程源码)
文章目录 一.前言 二.Go开发环境搭建(Windows系统) 1.安装Go命令行工具 2.创建GoWorkspace目录 3.配置GOPATH环境变量 4.配置GOPROXY代理 5.安装VSCod ...
- unity webgl开发踩坑——从开发、发布到优化
目录 前言 环境 unity webgl的一些注意点 videoplayer修改-->Video Player WebGL插件 text修改--解决不能显示汉字问题 制作.读取ab包 unity ...
- 客户端性能优化实战经验分享
合理的架构设计,对客户端后期优化至关重要 暴风影音播放器一直因为"慢",而引发用户诸多抱怨.新发布的暴风影音5在启动速度上较暴风影音3提升了3倍.暴风影音播放研发总监黄森堂以暴风影 ...
- 手游客户端开发招聘要求
以下内容整理自网络,仅供参考学习 1 职位描述: 说明: 1. 负责手游前端的设计及开发 2. 根据需求实现游戏的战斗/场景/系统/界面等效果 3. 良好的理解策划需求,与策划人员进行良好的沟通 4. ...
- Android客户端性能优化(魅族资深工程师毫无保留奉献)
Android客户端性能优化(魅族资深工程师毫无保留奉献) 转载学习:http://blog.tingyun.com/web/article/detail/155?from=groupmessage& ...
最新文章
- 设计模式 2014-12-19
- 深入理解C程序内存布局
- 《数据结构与抽象:Java语言描述(原书第4版)》一2.1.4 让实现安全
- 【AI视野·今日Robot 机器人论文速览 第五期】Thu, 10 Jun 2021
- 苏宁易购回应破产传闻:系谣言 已报案
- 弄了一个数学论坛,感觉不错,欢迎加入讨论
- 一篇不错的讲解Java异常的文章
- 利用jquery实现数字千分位排版显示,使用0动态补全8位数
- 二叉树的前序中序后序 递归与非递归解法
- vue for 初始值_vue全套教程(实操)就在这里
- python 生成testbench_(Testbench用法总结)1. Testbench中文本数据的存储读取操作对比
- html 狗头小游戏祝大家情人节快乐
- Python数据分析报告
- photoshop cc 2017 mac 破解版
- 交互设计的职能:交互设计师具体做什么
- 校园招聘 - 面试指南
- linux floppy 虚拟,Floppylinux
- PAT乙级刷题心得和常用函数总结 (c++实现)
- UVALive - LED Circuit(Spfa)
- javascript 编码转换
热门文章
- java gc回收算法_Java GC回收算法-判定一个对象是否可以回收
- Ubuntu10.10的网络配置
- Linux内核的Makefile和kconfig解读
- Session、Dialog和Transaction的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- mysql三大范式_MySQL学习笔记
- 敏捷开发流程的8个步骤_敏捷开发——个体和互动高于流程和工具
- .NET三种异步模式(APM、EAP、TAP)
- sharepoint服务器安装已安装netframework4.5,仍提示未安装
- php网站评论模块怎么写,模块内容评论循环