1. Unity基础知识概括
1)初识Unity 由Unity Technologies开发,创建三维视频游戏,建筑可视化及实时三维动画等互动内容的多平台的综合性开发工具。
编辑器运行平台:Windows 、 Mac OS X。
发布平台:Windows、Mac、Wii、iPhone、Android。
也可以利用Unity Web Player
插件发布网页游戏。
2)诞生与发展
部分
.06Unity 1.0
轻量级,可扩展的依赖注入容器,易于创建松散耦合系统,支持 构建子注入(Constructor Injection)、属性/设置方法注入(Property/Setter Injection)、方法调用注入(Method Call Injection)。.03Unity 2.5
几乎可以在所有平台上建立任何游戏,实现了真正的跨平台。.10Unity 2.6
与Visual Studio完整的一体化,增加了Unity自动同步VS项目的源代码,实现了所有脚本的解决方案和智能配置。.09Unity 3.0
.02Unity 3.5
.11Unity 4.0
新加入对DirectX 11的支持和全新的Mecanim动画工具、支持移动平台的动态阴影、减少了移动平台Mesh内存消耗、支持动态文字渲染,并为用户提供了Linux及Adobe Flash Player 的部署预览功能。.11Unity 4.3
同时Unity正式发布2D工具,这标志着Unity不再是单一的3D工具,而是真正的实现了同时支持二维和三维内容的开发和发布。.11Unity 4.6
加入了新的UI系统,可以使用基于UI框架和视图工具的Unity强大的新组件来设计游戏或应用程序。.03Unity 5.0
(在GDC上发布)
实现了实时全局光照,加入了对WebGL 的支持,实现了完全的多线程。.06Unity 5.1
加入了为VR和AR设备优化的渲染管道,可直接插入Oculus Rift开发机进行测试,头部追踪和景深FOV都会自动的应用到摄像头。 3)前景
Unity引擎为3D游戏研发提供强大的技术支持,对Direct X和Open GL 拥有高度优化的图形渲染管道,以其创造高质量的3D游戏和真实视觉效果的核心技术,为开发3D游戏提供了强大的源动力。
应用领域:游戏、3D虚拟仿真、大型产品3D展示、3D虚拟展会、3D场景导航、一些精密仪器使用方法的演示。
Web Player装机率快速上升,使Unity迅速爆发。
4)特色
a.Unity本身所具有的特点
综合编辑
用户界面简单、层级式的综合开发环境。具备视觉化编辑,详细的属性编辑器和动态的游戏预览特性。
图形引擎
使用的是Direct3D(Windows)、OpenGL(Mac,Windows)和自有的APIs(Wii)。
资源导入
项目中的资源会被自动导入,并根据资源的改动自动更新。
对于3dsMax、Maya、Blender、Cinema 4D 和 Cheetah3D等很多主流的三维建模软件支持效果比较好。
一键部署
Unity可开发微软Microsoft Windows、Mac OS X、Android和iOS 的可执行文件。
Unity Web Player插件开发网页游戏。
着色器
着色器编写使用SharderLab语言。同时支持自由工作流中的编程方式或Cg、GLSL语言编写的着色文件。
一个Sharder可以包含多个变量及一个参数接口,允许Unity去判定参数是否为当前所支持并适配最适合参数,并选择相应的Sharder类型以获得广大的兼容性。
因此,Unity的着色器系统具有易用、灵活和高性能的特点。
地形编辑器
Unity内建强大的地形编辑器,支持地形创建和树木与植被贴片。还支持自动的地形LOD(多层次细节),而且还支持水面特效,尤其是低端硬件亦可流畅运行广阔茂盛的植被景观。
物理特效
模拟牛顿力学模型的一个计算机程序,使用质量、速度、摩擦力和空气阻力等变量,来预测各种不同情况下的效果。Unity内置NVIDIA强大的PhysX物理引擎,可以方便、准确的开发出所需要的物理特效。
PhysX可以由CPU计算,但其程序本身在设计上还可用独立的浮点处理器(如GPU和PPU)来计算,也正因为如此,它可以轻松的完成像流体力学模型那样的大计算量的物理模拟计算。
并且PhysX的物理引擎还可以在包括Windows、Linux、xbox360、Mac、Android等在内的全平台上运行。
音频和视频
音频系统基于OpenAL程式库,可以播放Ogg Vorbis的压缩音效。视频播放采用Theora编码,并支持实时三维图形混合音频流和视频流。
OpenAL主要的功能是在来源物体上、音效缓冲和收听者中编码。
来源物体包含一个指向缓冲区的标志、声音的速度、位置和方向,以及声音的强度。
收听者物体包含收听者的速度、位置和方向,以及全部声音的整体增益。
缓冲里包含8或16单元、单声道或立体声PCM格式的音效资料,阴晴进行所有必要的计算,如距离衰减、多普勒效应等。
脚本
游戏脚本为基于Mono的Mono脚本,是一个基于.NET Framework的开源语言,因此,程序员可用JavaScript、C#加以编写。
Unity资源服务器
(类似于SVN)
Unity资源服务器具有一个支持各种游戏和脚本版本的控制方案,使用PostgreSql作为后端。
其可以保证在开发过程中的多人并发开发,使不同的开发人员在使用不同版本的开发工具时所编写的脚本能够顺利的集成。
真实的光影效果
Unity提供了具有柔和阴影与lightmaps的高度完善的光影渲染系统。
光照图(lightmaps)是包含了视频游戏中面的光照信息的一种三维引擎的光强数据。光照图是预先计算好的,而且要用在静态目标(static objects)上。
静态目标在三维引擎里是区别于动态目标(dynamic object)的一种分类。
Unity 5 融入了Geomerics行业领先的实时光照技术Enlighten。
Enlighten是目前仅有的,为实现PC、主机和移动游戏中的完全动态光照效果而进行了优化的实时全局光照技术。Enlighten的实时技术也极大的改善了工作流程,是美工和设计师能够直接在Unity 5编辑器中为所有游戏风格创建引人入胜的逼真视觉效果。
集成2D游戏开发工具
使用Unity 2D游戏开发工具集可以非常方便的开发2D游戏,利用工具集中的2D游戏换帧动画图片的制作工具可以快速的制作2D游戏换帧动画。
Unity为2D游戏开发集成了Box2D物理引擎并提供了一系列可以在2D游戏中实现物理特性的2D物理组件。
联网
b.Unity的跨平台特性
Unity类似于Director、Blendeer Game Engine、Virtools或Torque Game Builder等利用交互的图形化开发法环境为首要方式的软件。
其编辑器运行在Windows和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone和Android平台,也可以利用Unity Web Player插件发布网页游戏,支持Mac 和 Windows的网页游览。
基于Android平台的游戏
Rovio Entertainment《捣蛋猪》、天美艺游工作室《天天飞车》、GluMobile《血之荣耀》、蓝港在线《王者之剑》
基于iPhone平台的游戏
Imangi Studios《神庙逃亡2》、Defiant Development Pty.Ltd《滑雪大冒险》、YANSHU SUN《崩坏学园》、Crescent Moon Games LLC《Slingshot Racing》
基于Web的大型3D网页游戏
骏梦游戏《新仙剑奇侠传 online》、上海友齐《坦克英雄》、昆仑在线《绝代双骄》、厦门梦加网络科技《蒸汽之城》
2. Unity开发环境的搭建
1)Unity下载及安装Unity官网 : /cn
Unity API : /Manual/index.html
Script API : /ScriptReference/index.html
2)目标平台的SDK与Unity集成
JDK: /technetwork/java/index.html
Android SDK:
官网(可翻墙选择):/sdk/index.html
不可翻墙选择:/
配置环境变量:
JAVA_HOME -> jdk、Path -> jdk\bin、Path -> \sdk\tools
3)Unity集成开发环境
Edit -> Preferences -> External Tools