首先,你可以在unity3d官网下载新版本的软件,本文中使用的是unity3d 4.0.标准版是不支持阴影的,只有专业版才支持,所以对于效果要求较高的读者,可以选择购买正版,不要使用盗版或者破解版,不但会损失某些原有功能,是软件稳定性下降,而且不利于开发者。

其次,你将会看到一个灰色的主界面,显得非常简洁。主界面上方一排是和其他软件一样的标准菜单栏,不过多出了Assets(资源)、GameObject(游戏对象)、Component(组件),Assets中包含一些基本的导入导出功能,GameObject中主要是一些创建类的功能,比如创建一个Cube(正方体)、Empty(空对象)、以及一些更重要的东西:光源、主相机、粒子系统。接着呢,就是Component菜单,里面包括Mesh、Effects、Physics、Physics2D、Navigation、Audio、Rendering、Miscellaneous、Scripts、Image Effects、Fingergestures、Camera Control。

Mesh中包括一些基本的过滤功能,比如Mesh Filter等;Effects是比较常用的,其中包括很重要的也很常用的粒子系统(ParticleSystem)以及光晕效果等;Physics中主要是一些物理特效,如刚体(rigidbady)以及一系列碰撞效果。(当然这一切都是用C#或者Javascript写的Script文件);Physics 2D顾名思义就是2D下的物理特效;Navigation是一个mesh相关的导航作用,不常用;Audio就是声效组件;Rendering主要包括光源、相机等资源,还有天空盒子以及蔽塞区域;Miscellaneous中主要要说到一个animator(animation),主要是是画面变得活泼,有生气;Scripts中存放着大多数可能用到的脚本;Images Effects中主要包含一些图片的特效;Fingergestures定义了一些如前文已经叙述过的手势,属于在手势识别的软件基础上,更接近开发者的外层脚本,易于掌握;Camera Control,提到三个相机效果,较常用的是Smooth follow,就是使得相机能够随着被绑定GameObject的运动而随之平滑的移动。

然后说到主界面左上角四个按钮,分别是平移、坐标系、旋转和缩放,是四种视图方式,依据条件选择(按下space键和鼠标左键也能实现旋转,较常用,这四个键也能用Q、W、E、R来控制和选择)。最左边(因个人习惯不同,可以将控件拖放至不同位置)是重要的视窗界面,上面的和工作界面(scene),下面是运行界面(Game)。在每个界面上方还有几个按钮,例如Textured控制材质显示;“scene”界面上有RGB来控制颜色,“2D”来控制显示的是2D视角还是3D视角;控制主光源;右边是声效开关以及特效开关(迷雾和天空盒子等);Gizmos为我们提供了快速开关script的方法。

在Game视图中,Free Aspect(这里是选择性开关)出来控制显示视角等;Maximize on Play则控制了发布后游戏的显示尺寸,是否铺满屏幕;Stats当然是当前整个Scene的状态。

再然后,我们看第二列,hierarchy字面意思是“领导层”,显然这是仅次于主视窗界面的,所有所创建的GameObject都在这里显示,你可以将创建的GameObject直接拖放到Scene界面中,直接使用,更为方便的是,你可以将写好的脚本直接拖放到相应的GameObject上,直接实现。如果我们想新建一个GameObject,可以通过上边的菜单栏,也可以直接在Hierarchy里面的Create里面创建,非常方面。当然,地形(terrain)、主相机(Main Camera)、直射光(Directional Light)都是放在Hierarchy里面的,便于修改。

接着第三列,就是Project栏,顾名思义就是存放项目的地方,其实基本上就是存放资源的地方,右边显示左边选择目录的内容,可以直接拖动prifabs(预设)到Scene中,同时脚本文件、插件、图片等资源都可以在这儿整理、调用。

最右边一栏Inspector,字面意思“监察员”,意思就是你可以在这里查看GameObject的属性,例如是否是Rigidbody,是否对摄像机加载了smooth follow脚本,某个cube加载了那些脚本,以及一些坐标等信息,当然一些规范化的脚本参数也可以在这里直接改。(如果不能,则可以在unity3d自带脚本编辑器mono develop中编辑)

最后,界面就是我们都熟悉的,在任何IDE中都有的控制台,发现错误和调试程序。

无论是学习unity3d,还是开发项目,基本上一个unity3dScene都有以下几步构成:

① 确定坐标系。一般地,坐标系都是已经设置好的,属于标准右手坐标系,又是为了场景设置方便也可以自己设置。

② 创建GameObject。设置好坐标系之后,就需要创建游戏对象进行项目的核心了。初学时我们可以创建Cube,对其熟悉,当然很多情况下Cube都是GameObject的核心,因为很多时候我们都是将已经创建好的模型(可以在3dsmax中创建)放在一个Cube中,这样,我们只需要将脚本赋给Cube便可以在不改变模型的情况下对其进行操作,非常方便,且不易出错。在这里有个很重要的概念就是prifabs(预设),我们可以把那些要在场景中重复使用的GameObject设置为prifabs,方法是在Project中右键或者直接点击Create创建prifabs文件夹,再把已经创建好的某个Cube或者或者其他GameObject拖入prifabs文件夹下,便可以在使用时直接拖放到场景中去,省去了重复创建的麻烦,并且最重要的是便于修改,修改prifabs便可以修改场景中所有引用了的prifabs,很简洁。

③ 创建地形、摄像机和灯光。在有了GameObject以后我们需要“盛放”的容器,便是地形(terrain)。地形是否美观直接影响一个应用的第一印象。在terrain的inspector中有这几个选项:,从图标便可以看出第一个是地形拉伸,第二个是压缩(山体原型都是直接从平地上拉伸压缩实现的),第三个是拉伸或压缩出其他形状,接下来的三个依次是绘制草、树和花,最后一个是设置(不太常用)。摄像机对整个场景运行后的即视感非常重要。很多情况下,我们可能创建的场景非常漂亮,但是运行在平台上以后发现视角非常别扭,就是因为主摄像头没放置好的原因。还要说明的一点是,如果我们想要场景视角随着GameObject的转动而随之转动的话,可以为之添加Smooth Follow脚本,在Component的Camera Control中可以找到。

④ 脚本。如果说形状是GameObject的血肉,那么脚本就是它的灵魂。绚丽的场景变换和多样的操作展示,都需要脚本的支持。Unity3d支持Javascript和C#(本文将采取混合使用的方法,不会影响程序运行,反而会有很多方便)。一个脚本,至少含有Start()和Update()两个方法,前者是实现初始化,后者则是为了实现GameObject的行为,就是说我们要这个GameObject在执行脚本是有哪些作为,是点击移动,还是按W、S、A、D来控制方向,都是在脚本中实现的。前面也有讲到,加载脚本,只需将脚本直接拖放给GameObject就行了。关于跟多脚本内容,将在后面应用实现部分具体探讨。

⑤ 网格,材质,贴图,动画等。网格可以让我们很好的布局场景,材质和贴图则是使GameObject更加现实化,也就是说看上去更像真的或者更像自己想要的,动画则是unity3d比较好的一个功能,能使你的场景和GameObject更加生动。

粒子系统、物理系统。由于unity3d在多数情况下是为了增强现实或者开发游戏,所以为了看上去更加有现实感,这两个系统是必须的。粒子系统让GameObject更加有流畅感,如水滴模拟等;物理系统则赋予GameObject现实意义,例如碰撞、重力作用等等。

⑥ 向量的加减法点乘差乘,光照法线贴图,内存管理,图形优化等等。

⑦ 发布。完成的项目后者场景就可以发布了,选择平台,然后配置,点击发布(相关平台的发布可能需要相应的环境,如android发布需要需要JDK和androidSDK)。