转载请注明出处: http://www.cnblogs.com/yuxiuyan/p/7535345.html
工欲善其事,必先利其器。
上回书说到,开发游戏用到unity和C#。本篇博客将从零开始做一个unity的基础入门。(^o^)/~
欢迎大家的斧正。一起学习一起交流(笑~)
(因为笔者也是心血来潮开这个专栏,所以和大家一样也是刚刚接触unity和C#。所以这个专栏还有记录学习历程和笔记的作用,确保大家少踩坑。haha)
下面多图预警。希望大家边看博客边动手实践一下。
目录结构
一.unity的安装
这次我使用的unity3D的版本为5.4.3f1,提供给大家一个下载器链接:链接:http://pan.baidu.com/s/1eSd9QNK 密码:hk8x
然后提供一个注册机:链接:http://pan.baidu.com/s/1o8hxp4A 密码:lxld
度娘上有很多具体的破解教程,在这里不再赘述。需要注意的是运行下载器时会让你选择需要下载的组件,可以看自己的需要。
二.unity的基础入门
在这里给大家推荐一个视频教程:www.mkcode.net,这里面的教程还是挺全的。
(一)游戏场景的基本操作
说几个概念:
场景:游戏中的一幕,举几个栗子。以下都属于场景。
关于一个游戏项目中各部分的关系:
每一个游戏都是一个独立的项目。创建步骤:
项目文件夹的存储目录结构:
Scene面板:场景面板,用于预览当前的场景。
Project面板:项目面板,用于管理当前项目中的所有资源。
Inspector面板:属性面板,用于查看和编辑游戏物体和资源的具体信息。
Assets:对应我们项目文件夹的Assets文件夹。
为了更好管理我们的游戏资源,我们会在Assets中建立不同的文件夹,用来存储不同的游戏资源,如建立Scenes文件夹存储游戏场景,Scripts文件夹存储游戏脚本,Textures文件夹存储贴图等。
1.Hierachy面板
Hierachy:层级面板,用于显示当前场景有哪些资源。在这个面板中可以往场景中添加删除资源。
2.创建3D物体
Hierachy面板右键–>3D Object–>Cube
(二)游戏场景制作3D模型
尺寸
以Cube作为参照物的话,Cube是长宽高都为1米的模型。
世界坐标系
X(红色):右边 Y(绿色):上边 Z(蓝色):前边
世界坐标系可以理解为现实生活中的方向,东南西北上下。在我们的场景中世界坐标系是不会变的。
自身坐标系
X(红色):右边 Y(绿色):上边 Z(蓝色):前边
物体自身的坐标系是以物体自身作为参照,确定自身的右边,上边,前边。自身坐标系是可以变化的。
可以通过工具栏上的“local”和“global”来切换物体身上的坐标系显示效果。
世界坐标的观察模式
Persp:透视模式,远大近小。
Iso:正交模式,远近一样大。
制作3D模型的桌椅
大家可以根据上面说的改变模型的位置,旋转,缩放,创造一些基础模型,如下:
这里的桌椅全部都是Cube的变化堆砌组成的。提示几个快捷键:
Ctrl+D:可以快速复制模型。 F:快速聚焦某个物体。 工具栏对于键盘的:Q W E R T
材质:物体的质地,物体看起来是什么做的。比如一件木质物品,它的材质就是木头。
材质球:英文是Material,在unity中,物体的材质通常使用一个球状来显示。如下图。
比如最右下角的那个材质球,一看就是某个绿草地的材质。
贴图:英文是Texture,暂时可以认为是代表某种材质的图片,用于材质球的显示。举几个栗子,
在上面提到的,Assets文件夹就是用来保存游戏资源的。
在Assets文件夹中建立“Material”文件夹,用于管理材质球。
在Assets文件夹中家里“Texture”文件夹,用于管理贴图。
大家可能会有疑问,上面的材质球和贴图是怎么创建的呢?
其实很简单,在Assets文件夹中的Material文件夹中,右键–>Create–>Material,就可以创建一个空白材质球。材质球文件的后缀是“.mat”。
这时候我们选中这个材质球,查看Inspector面板,就能看到这个材质球信息。
鼠标选中需要编辑的材质球,点击属性面板的“Albedo”前的圆点,在弹出的“贴图选择界面”选择需要的材质。比如选择了之前的木板贴图:
可以有两种使用方式:
将材质球拖拽到Hierarchy面板上相应的物体上
将材质球拖拽到Scene面板上相应的物体上
注:还可以通过着色器(shader)来编辑材质球的效果。据说会写shader的都是高手。
最后总结一张图:
空物体就好比是资源管理器的文件夹,可以用来管理资源。
创建空物体很简单,在Hierarchy面板右键–>Create Empty,就完成了一个空物体。空物体虽然也有自身坐标系,但是点击Scene面板是完全看不出来的。
移动父物体,子物体也会跟着移动, 就像我们移动电脑上的一个文件夹,里面的文件也会跟着移动。
在Hierarchy面板上,任意两个物体都可以建立父子关系。
预制体,英文是Prefab,顾名思义,是“预先准备好的物体”,可以重复使用和利用。
预制体有点像java中的类,通过这个类可以生成许多对象。就像鸣人的影分身,可以生成很多相同的分身。
那么在游戏中哪些地方用到了预制体呢?
比如游戏中的小(pao)兵(hui),他们长得都一样,都是使用了预制体复制出来的。
在Assets文件夹中建立“Prefabs”文件夹,用来存储管理预制体。
可以将Hierarchy面板中的游戏物体直接拖拽到Project面板的Prefabs文件夹中,就产生了一个预制体。预制体文件的后缀是“.prefab”。
比如我们要做一个教室模型,那么这些桌椅就可以做成预制体。需要时直接再拖拽到Hierarchy面板或者Scene面板,就产生了新的游戏物体。
为什么使用预制体呢?就跟java中为什么使用类是一样的。方便批量管理。
加入需要改变预制体,只需要在某一个预制体生成的游戏物体上做出改变,然后在Inspector面板点击“Apply”,就可以把改变传递到所有由预制体生成的游戏物体上。
Game视图是游戏视图,也是游戏的运行预览窗口。
点击“播放”按钮,属兔会自动切换到游戏视图进行预览;再点击一次“播放”按钮,就可以退出游戏的运行状态,回归到场景视图。
注意:游戏在运行状态时,做的任何操作都不会保留。
摄像机(Camera)就是我们的眼睛,用来观察游戏世界。眼睛的话会有一个观察的区间,就是上图的那个锥形,叫做“视锥体”。在视锥体范围内的物体,我们都可以看到。右下角 就是摄像机的预览窗口。
摄像机用于在合适的位置和角度观察游戏世界。电影中的画面是由摄像机的角度和位置来决定的;我们游戏中观看到的画面也是由摄像机的角度和位置来决定的。游戏运行时看到的 画面就是摄像机拍下的画面。
在Hierarchy面板选中Camera,Scene视图会出现预览窗口。
根据轴向移动摄像机的位置,旋转摄像机的角度。
菜单栏GameObject–>Align With View对齐视图。让摄像机对齐到当前视图,使得Scene与Game中观看角度和位置一致。
创建摄像机:Hierarchy面板右键–>Camera。
Clear Flags[清除标记],有两个值:Skybox,Solid Color。效果分别如下:
Background[背景颜色],当Clear Flags为Solid Color时,场景的背景颜色。
Projection[投影],有两个值:Perspective(透视模式),Orthographic(正交模式)。
Clipping Planes[切割面],Near:近平面,摄像机最近看到的东西。Far:远平面,摄像机最远能看到的东西。
简介
灯光(light),用于照亮我们的游戏世界。还可以烘托场景氛围;使场景产生阴影,增加真实感和立体感。
在我们创建一个新的Scene场景时,会默认带有两个游戏物体,Camera和Light。
选中物体,在Inspector面板上图标的右侧的复选框,可以选择隐藏还是显示物体。
方向光
方向光(Directional Light),用来模拟现实生活中的自然光。
方向光任何地方都能照射到,就和太阳一样,但是要注意照射方向。
有几个常用属性
Type:用于切换灯光类型,是自然光,还是点光源,聚光灯等类型
Color:灯光颜色,常常用于烘托气氛。
Intensity:灯光的照射强度。
Shadow Type:设置方向光照射到的物体的投影效果。有三个值,No Shadow(没有阴影),Hard Shadow(阴影边缘为锯齿状的硬阴影),Soft Shadow(阴影边缘比较平滑柔和的软阴影)。
在这篇博客,我们了解了unity的安装以及简单使用。涉及到了游戏场景,模型,材质球,预制体,摄像机,灯光。
这些都属于unity软件的简单使用,还没有涉及到组件和脚本,也没有开始写代码。在下一篇,我们会涉及到unity简单的组件和脚本。