Unity3D的优化性能


游戏引擎想必大家都有所耳闻吧,比如当你在喝着可乐,盯着电脑屏幕,看到游戏场景内的角色在自己键盘鼠标的控制之下,享受着这种游戏的操作感,这种感觉之所以爽快,是因为他满足了你自己的思维(我想干什么就可以干什么),慢着,今天我们不谈论游戏心理,我们今天谈的是到底是什么让我们如此吸引而引人入胜呢?——游戏引擎


众所周知,游戏引擎对于游戏来说,那真的像跑车的引擎一样,是游戏表现的核心,现在为止,一些大型的游戏公司都有自己开发或收购的游戏引擎,比如Unreal(虚幻),暴雪自家的魔兽引擎,还有保守争议的显卡危机(呵呵,是孤岛危机)的CryEngine,当然不同的引擎会有不同的性能表现和画面风格,比如写实的Unreal(如图左),和漫画田园风格的魔兽(如图右).


虚幻3引擎                                        魔兽世界


OK,那么今天我就来推荐一下我所熟知的一款游戏引擎——Unity3D


Unity3D URL:http://unity3d.com/unity/engine/



作为Unity的使用者,开发者,我对Unity3D引擎的优异性能表现和高度跨平台性给予神一般的敬仰,他集成了MonoDeveloper的编译平台,以C#和javascript为主要的编码语言,貌似还有一个boo(鬼才知道这个语言),为了实现简单代码间类的互相操作,我们都选用C#作为统一的开发语言,而且Unity还对代码的运行效率,资源的开销提供了一个很好的分析工具(如图)



而对于场景的编辑和代码的编写,我会在以后博客陆续放出,下面给大家展示一个例子,相信你会对它有兴趣的.


我在Unity3D里写出一些代码,实现监听鼠标滑轮的事件,继而使得场景内的一个方块的大小也随之改变.


列出代码:  Move.cs


using UnityEngine;
using System.Collections;

public class Move : MonoBehaviour {
    private float changSize = 0;
    
    void Update() {
        changSize += Input.GetAxis("Mouse ScrollWheel");
        transform.localScale = new Vector3(1 + changSize, 1 + changSize,1 + changSize);
    }
}

初始的方块的大小是(1, 1, 1)(如图)


我对Unity3D的介绍 - aiguo77 - ..Bettyˇ     


运行结果:


   我对Unity3D的介绍 - aiguo77 - ..Bettyˇ


我们看到,方块的大小被滑轮调整到了5倍左右.


下面是资源消耗:



相信大家都已经看到了我的Move.Update()方法占到了总资源的10%左右,这是个不小的开销哦,我们的目的是让Camera.Render获得最大的资源比例,使得它渲染的帧数达到最大.


因此我们做一个优化,代码更改如下:


 1 using UnityEngine;
 2 using System.Collections;
 3 
 4 public class Move : MonoBehaviour {
 5     private float changSize = 0;
 6     
 7     void Update() {
 8         if(Input.GetAxis("Mouse ScrollWheel") != 0)
 9         {
10             changSize += Input.GetAxis("Mouse ScrollWheel");
11             transform.localScale = new Vector3(1 + changSize, 1 + changSize,1 + changSize);
12         }
13     }
14 }

OK,我们这次再来看一下运行结果及资源耗费状况


    我对Unity3D的介绍 - aiguo77 - ..Bettyˇ


运行资源消耗结果:



立竿见影,我们看到Move.Update()已经控制在了1%左右,而Camera.Render也有所回升,说明我们的代码确实在这样的运行环境下起了意料中的优化作用。


左边的观众,右边的观众,前面的观众,你们是否感受到Unity3D的魅力,而它的魅力还不仅仅是这些,后面你们还会看到更加惊喜的内容,希望你们能够喜欢上这个精致而灵巧强大的游戏引擎.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值