首页 > 代码库 > unity3d游戏开发之我见
unity3d游戏开发之我见
游戏引擎想必大家都有所耳闻吧,比如当你在喝着可乐,盯着电脑屏幕,看到游戏场景内的角色在自己键盘鼠标的控制之下,享受着这种游戏的操作感,这种感觉之所以爽快,是因为他满足了你自己的思维(我想干什么就可以干什么),慢着,今天我们不谈论游戏心理,我们今天谈的是到底是什么让我们如此吸引而引人入胜呢?——游戏引擎 众所周知,游戏引擎对于游戏来说,那真的像跑车的引擎一样,是游戏表现的核心,现在为止,一些大型的游戏公司都有自己开发或收购的游戏引擎,比如Unreal(虚幻),暴雪自家的魔兽引擎,还有保守争议的显卡危机(呵呵,是孤岛危机)的CryEngine,当然不同的引擎会有不同的性能表现和画面风格,比如写实的Unreal(如图左),和漫画田园风格的魔兽(如图右). OK,那么今天我就来推荐一下我所熟知的一款游戏引擎——Unity3D 作为Unity的使用者,开发者,我对Unity3D引擎的优异性能表现和高度跨平台性给予神一般的敬仰,他集成了MonoDeveloper的编译平台,以C#和javascript为主要的编码语言,貌似还有一个boo(鬼才知道这个语言),为了实现简单代码间类的互相操作,我们都选用C#作为统一的开发语言,而且Unity还对代码的运行效率,资源的开销提供了一个很好的分析工具(如图) 而对于场景的编辑和代码的编写,我会在以后博客陆续放出,下面给大家展示一个例子,相信你会对它有兴趣的.来自【狗刨学习网】 我在Unity3D里写出一些代码,实现监听鼠标滑轮的事件,继而使得场景内的一个方块的大小也随之改变. 列出代码: Move.cs 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)(如图) 运行结果:来自【狗刨学习网】 我们看到,方块的大小被滑轮调整到了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,我们这次再来看一下运行结果及资源耗费状况 运行资源消耗结果: 立竿见影,我们看到Move.Update()已经控制在了1%左右,而Camera.Render也有所回升,说明我们的代码确实在这样的运行环境下起了意料中的优化作用。 左边的观众,右边的观众,前面的观众,你们是否感受到Unity3D的魅力,而它的魅力还不仅仅是这些,后面你们还会看到更加惊喜的内容,希望你们能够喜欢上这个精致而灵巧强大的游戏引擎.来自【狗刨学习网】 |
unity3d游戏开发之我见
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。