第1章 Unity的基本介绍

1.1 功能特点

1.1.1 Unity简介

Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director、Blender game engine、Virtools和Torque Game Builder等利用交互的图形化开发环境为首要方式的软件。其编辑器运行在Windows和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows Phone 8和Android平台,也可以利用Unity Web player插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Mac widgets所支持。

1.1.2 Unity的特点

1.基于Mono

Mono是一个由Xamarin公司(先前是Novell,最早为Ximian)所主持的自由开放源代码项目。与微软的.NET Framework不同,Mono项目不仅可以运行于Windows系统上,还可以运行于Linux、FreeBSD、UNIX、OS X和Solaris,甚至一些游戏平台,例如:Playstation 3、Wii或XBox 360。

简单地说,Mono是一个非微软提供的跨平台的开源的.NET。

Unity3D是基于Mono的,也就是说,Unity3D编程最好用C#。一方面,Unity3D的C#的资源最多;另外,一些程序上的问题,可以直接看C#的。从基本的数据结构、语句、方法、事件、代理等到不常用的网络通信、数据库访问,基本都和C#一样。

2.跨平台

Unity可以在Windows、Mac和Linux平台进行编辑,然后可以发表到20多个平台。

优点是,可以节省开发时间和学习成本;但是缺点也蛮多的,生成的应用的性能会低于源生的应用,另外,在写入文件的时候会受到限制。

例如,截图以后想把图片移动到设备的相册目录,这个仅靠Unity自身程序无法实现,必须依靠插件。

这里有个重要的提示,Unity对Web平台,特别是移动端的Web平台支持很差。

Unity可以导出两种Web平台,一种是导出Web Player,这需要浏览器安装特殊插件。另一种是导出WebGL,对浏览器有要求。在电脑的浏览器中,支持勉强可以,但是到了手机浏览器,基本可以视作无法支持。简单一句话,想用Unity开发一个从微信公众号打开的网页游戏现在暂时不可能。如果要做网页游戏的话,最好使用其他游戏引擎。

3.良好的生态系统

Unity有个不错的商城,不仅有各种资源,还有各种模板、例子、插件。这意味着不少开发可以通过直接购买成品或者半成品实现。这不仅可以提高开发效率和速度,同时对学习Unity有很大的帮助。

4.广泛的影响力

“凡是少的,就连他所有的,也要夺过来。凡是多的,还要给他,叫他多多益善。”马太效应就是这样的。Unity作为非常有影响力的一款引擎会引来更多的支持。比如近年热门起来的增强现实技术。很多增强现实的SDK提供方都提供了Unity插件的支持,提供虚幻插件支持的明显就少很多,支持cocos2dx的插件我还没见过呢。

另一方面,广泛的影响力意味着有更多的学习资源,更多的教程、实例,遇到问题以后,更容易搜索查找到解决方法。