对于C#程序员而言,Visual Studio这个宇宙最牛的IDE肯定非常熟悉,编码、设计、代码着色等常用功能,用的还是很不错的,效率不是一般的高。本文就以VS IED作为参照物,进行和Unity IDE对比。
Unity IDE |
VS IDE |
|
生产商 |
Unity科技(美国) |
微软 (美国) |
用户群体 |
游戏从业者 跨平台App开发者 |
.NET从业者(俗称微软阵营) 少数Web开发者 |
定价 |
Basic版本免费 Pro版本1500美金/平台 |
VS Express 免费 VS 2013 社区版免费 VS 旗舰版 3000美金 |
设计视图 |
有,且非常强大 |
有 |
代码视图 |
无 |
有 |
大纲视图 |
有 (视觉可见物体) |
WinForm下无 Web开发有 |
属性视图 |
有 |
有 |
解决方案 |
独立文件夹(类似Eclipse) |
*.sln |
独立插件 |
场景 *.unity |
程序集 *.exe、*.dll |
亮点优势 |
游戏设计 跨平台 |
代码调试 UI控件 |
其中,在接触Unity 这个IDE后才知道,程序员仅仅编程是不够的,需要对各种模型(Model)、材质(Matrail)、纹理(Texture)要熟练掌握(导入、修改属性、3D空间内布局),同时还硬要了解一些物理学知识,如刚体、重力、碰撞。在Unity里面资源不叫Resource,而是叫Asset (好像任何东西在Unity都是这个称呼)。
GameObject和Component,GameObject是游戏对象,可独立操作的一个物体–一棵树或者一个人。 Componet是不见的,它类似GameObject的成员变量,游戏中90%的操作是控制GameObect的Component来完成的。
UI控件:Unity中的UI是我用过最难用的UI了,使用Winform开发的人可以很容易摆放UI控件、布局;但是在Unity中,只能代码控制。甚至难度超过Web中UI的布局,简直是毫无章法可依!呵呵,一下子UI回到解放前了。慢慢的,发现Unity中UI类似Web的流式渲染结构,从上往下、相对定位。
对Unity阵营而言,正在慢慢往C#方向迁移,如在Unity 5.0中,官方宣布要对默认的demo、文档用C#来写,要知道以前是JavaScript写的. (据不完全调查统计,Unity下C#脚本使用者占了7成比例)。同时,微软也在积极和Untiy靠近中,如今年年初收购了一家UnityVS插件欧洲公司,并免费对VS用户提供这个插件—有了这个插件用VS调试Unity 非常爽、非常爽。
VS开发的程序,无论是Winform还是Web,都有一定的规律可循,如通过事件响应触发函数。C#封装的几乎不用知道太多的细节—这个也是C#在VS下开发效率高的原因了。 而Unity下,采用的是游戏引擎驱动几个固定格式的函数按照游戏引擎一定的规律调用,函数之间,几乎完全靠全局变量来传递了–这个对OO编程而言比较不适应。我忙乎了1个月,Unity的Window UI还是没有能够掌握。 Start、Update等函数有起自身的规律,其内部的事件响应和注册有一些特殊的规律。
Unity里面有一个很酷的概念:时间。
Unity IDE |
VS Winform |
|
构造函数 |
Start |
Construct |
重绘函数 |
OnGUI |
OnPaint (GUI+) |
数学函数 |
Mathf |
Math |
驱动内核 |
时间驱动 |
事件驱动 |
Unity下之所以可以使用C#,一个很核心的原因是因为其内核在使用Mono.NET,一个不同于VS .NetFramework的C#。Mono是Linux下的,可移植的C#(截止本文写作,微软开源了其自己的.NET,貌似未来不久可使用.NEtFramework作为Unity的核心喽)
游戏开发有意思的地方是:其拟人化、寄托梦想的一个创新农场,容易上手、理解。
在多年开发中编码过的软件项目有3、5个,单个售价少的几万,多得上百万元人民币;但是,户数少的可怜,大多在几十个~几百之间,这个着实让我很不爽。啥时候可以开发上千人、上万人同时使用的软件系统,这个对我非常有意义。