Unity 是什么
- Unity 平台提供一整套完善的软件解决方案(编辑器 + 引擎)做游戏
Unity 跨平台
- Unity 是一种跨平台的游戏引擎,它支持开发各种类型的游戏和应用程序,并且可以在多个平台上运行,包括【PC、移动设备、主机游戏机和虚拟现实设备】
- Unity 可以为多个平台生成不同的二进制文件,包括【Windows、macOS、Linux、iOS、Android、WebGL、Xbox、PlayStation 和 Nintendo Switch】等平台。Unity 还提供了对【各种 AR 和 VR 设备】的支持,例如【HoloLens、Oculus Rift 和 HTC Vive】等
Unity 主要特性
- 游戏脚本基于Mono,一个兼容于.NET Framework 2.0的跨平台开源包,因此程序员可用JavaScript、C#或Boo加以编写。
- 音效系统基于OpenAL程序库,可以播放Ogg Vorbis的压缩音效。
- 视频播放采用Theora编码。
- 内置地形编辑器,支持树木与植被贴片。
- 内置Lightmap ping 以及全局照明 (Global illumination)。
- 层级式的综合开发环境,可视化编辑 ,详细的属性编辑器和动态的游戏预览。Unity也被用来快速的制作游戏或者开发游戏原型。
- 可开发微软Microsoft Windows和Mac OS X的可执行文件,在线内容(通过Unity Web Player插件支持Internet Explorer、Firefox、Safari、Mozilla、Netscape、Opera和Camino),Mac OS X的Dashboard工具,Wii程序和iPhone应用程序(开发Wii和iPhone需要用户购买额外的授权,在价格上不同)。
- 自动资源导入:项目中的资源会被自动导入,并根据资源的改动自动更新。虽然很多主流的三维建模软件为Unity所支持,不过对于3ds Max、Maya、Blender、Cinema 4D和Cheetah3D的支持比较好,并支持一些其他的三维格式。
- 图形引擎使用的是Direct3D (Windows),OpenGL (Mac,Windows)和自有的APIs(Wii)。
- 支持凹凸贴图 (Bump mapping)、反射贴图 (Reflection mapping)、视差贴图 (Parallax Mapping)、屏幕空间环境光遮蔽 (Screen Space Ambient Occlusion,SSAO)、动态阴影使用的是阴影贴图(Shadow mapping)技术,并支持Render-to-texture和全屏Post Processing效果。
- Shaders编写使用ShaderLab语言,同时支持自有工作流中的编程方式或Cg、GLSL语言编写的Shader。一个Shader可以包含众多变量及一个参数接口,允许Unity去判定参数是否为当前所支持并适配最适合参数,并自己选择相应的Shader类型以获得广大的兼容性。
- 内置对Nvidia的PhysX物理引擎支持。
- The Unity Asset Server:一个支持各种游戏和脚本的版本控制方案,使用PostgreSQL作为后端。
- 多人网络联机功能由第三方包提供,有Raknet、Photon、SmartFoxServer等多种选择。
Unity 编译
- Android
在编译输出App安装用的apk档之前,需要先安装过Android SDK。
- iOS
输出成文件夹,一个Xcode项目,必须再到macOS环境下用Xcode输出。
- Windows
输出成文件夹,包含一个可执行的exe档与一个执行时所必需相关文件的文件夹。
- Web Player
输出成文件夹,包含一个html档与一个执行时所必需的unity3d档。客户端必须另外先安装Unity Web Player。2015年,Google Chrome已中止此Unity插件支持。Web Player已被弃用,取而代之的是编译到WebGL
- BlackBerry
输出成一个应用程序安装用的bar档
- Linux
输出成文件夹,包含一个x86档与一个执行时所必需相关文件的文件夹