博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity3d iOS基本优化和高级优化
阅读量:6644 次
发布时间:2019-06-25

本文共 1337 字,大约阅读时间需要 4 分钟。

原地址:http://www.cocoachina.com/bbs/read.php?tid=70395&page=1

分享看见的2篇好文.

简单翻译了一下并且放出原文
1.做减法
大量代码在Update()或FixedUpdate()中做处理,
意味着无论代码的执行速度如何,都将在每次帧刷新的时候调用到,

 
复制代码
  1. public class MyHoming : MonoBehaviour {  
  2.   
  3.     public void Update() {  
  4.         // expensive targetting and not so expensive trajectory calculations in here  
  5.         // currently called every frame  
  6.     }  
  7. }

但是大多数时候我们并不用这样做,考虑使用下面的方法

 
复制代码
  1. public class MyHoming : MonoBehaviour {  
  2.   
  3.     public void Update() {  
  4.         // expensive targetting and not so expensive trajectory calculations in here  
  5.         // currently called every frame  
  6.     }  
  7. }  

它看上去更复杂一些,其实不然.只有在必要的时候才会执行代码.
2.强制指定垃圾回收的频率

 
复制代码
  1. using UnityEngine;  
  2.   
  3. class GarbageCollectManager : MonoBehaviour {  
  4.     public int frameFreq = 30;  
  5.     void Update()   {  
  6.         if (Time.frameCount % frameFreq == 0)  
  7.             System.GC.Collect();  
  8.     }  
  9. }  

这个操作不会改进你的fps,但是会降低内存的使用量.
3.三角形和绘图函数的调用计数
保持三角形低于7500
保持Draw Call 低于20000
可能的话使用XCODE中的工具instruments来调试图形性能.
另外一篇:
使用Strict
在你所有脚本的顶部使用 #pragma ,脚本将是强类型的,避免写代码的时候错误的类型赋值.
避免Object.Instantiate() 和 Object.Destroy()
Instantiating 和 Destroying 都不好,因为他们需要在创建和销毁对象的时候动态的分配内存,这样会短暂的影响到性能.
考虑的代替方案是使用他写的SpawnManager类.它在游戏一开始就初始化所有的对象,这样能在游戏载入的时候一同载入对象,从而让人感觉不到影响.
禁用对象的时候也保持在内存中,当需要他们的时候只需要在启用就行.
还有几点分别是
Cache Component Lookups
Use iTween Sparingly
Avoid SetActiveRecursively()
Use Builtin Arrays
Avoid String Comparison
Avoid Vector3.magnitude & Vector3.Distance()
可以在引用来源看到详细说明 

转载地址:http://btevo.baihongyu.com/

你可能感兴趣的文章
Codeforces Round 449 Div1
查看>>
找到你的幸福
查看>>
致联系报考我免试研究生的同学们-山世光 研究员-中科院计算所
查看>>
android菜单详解三:上下文菜单
查看>>
迷你MVVM框架 avalonjs 0.83发布
查看>>
UE4 限定使用条件
查看>>
JVM内存模型 小小结
查看>>
centos6.x下手工安装二进制Docker v1.1x
查看>>
python random模块
查看>>
mysql 处理查询请求过程
查看>>
javascript基础拾遗(一)
查看>>
基于Opencv的MeanShift跟踪算法实现
查看>>
120个非常优秀的CSS水平导航菜单
查看>>
HubbleDotNet 基本语法
查看>>
android 源码
查看>>
AutoCompleteTextView的使用
查看>>
很奇怪的一个问题,是关于sql参数化和传where in 参数的迷惑.请大伙给讲讲吧...小弟很迷糊现在.各位园友,拉兄弟一把!!...
查看>>
linux 下 apache启动、停止、重启命令
查看>>
【转载】大整数乘法计算
查看>>
Android获取屏幕分辨率及DisplayMetrics简介(轉)
查看>>