Unity2D学习笔记——优化游戏的方法

“最优化”:尽可能地,让你的游戏在多个平台上都表现出好的运行效果。

推荐开发者最好在开始开发游戏的时候就把最优化的因素考虑在内,即使在编写代码前,导入资源前,甚至是制作资源,之前就考虑不为过。
  • 渐少顶点的数目
    在不影响效果的情况下尽量减少游戏场景中对象的顶点数。(游戏视图stats面板中可看到顶点数目的统计)

  • 减少材质
    减少绘制调用(draw call),因为一次绘制调用可以批量处理同材质的游戏对象,对于不同材质的对象,只能使用多次调用。

  • 减少UV接缝
    一个顶点会负责一个面的UV接缝,而这直接导致了网络对象顶点数的增加。

  • 不同平台下,纹理的设置不同
    在不同的游戏平台上可以设置不同的纹理大小和压缩格式:

平台格式
在Android平台建议选择RGB ETC格式
在iPhone平台建议选择RGB PVPTC格式
  • 对象缓存组件
    当使用Unity API时,最常用的C#语句是this.transform或transform。这条语句可以直接访问C#的属性,然后返回transform组件的应用。下面的代码,演示了对象缓存的生产和使用:
void Awake()
{
	//变量存储了transform组件的引用
	MyTransform = transform;
}
void Update()
{
	//通过变量改变对象的位置
	MyTransform.LocalPosition = MyPosition;
}
	
  • 避免频繁使用Update()函数
    Update()在每帧都会被多次调用,1111还有LateUpdate()和fixedUpate()。总之,尽可能编写事件驱动(Event-Driven)的代码,而不是帧驱动(Frame-Driven)。

  • 合理使用Collider组件
    许多游戏对象,在默认情况下被赋予了Collider组件,但有些游戏对象使用Collider组件完全没有必要。例如,GUI对象,粒子以及其他一些根本不会与游戏角色相交的游戏对象。

  • 避免使用OnGUI()和GUI类
    OnGUI()在每帧都会被多次调用,所以最好不要将游戏的逻辑和功能代码放在这个函数里,而只让函数唯一处理GUI绘制。

  • 使用静态批处理
    有些游戏对象在整个游戏过程中都不会发生移动,那么最好在查看器中将它们标记为静态的(static)。

  • 使用天空盒子
    天空盒子类似于模拟摄像机视图的远景,而摄像机本身处于天空盒子的内部的,而不使用网络对象以及其他的任何对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值