一直对游戏兴趣浓厚,在玩游戏的过程中萌生了自己设计开发游戏的想法,之前也收藏了不少教程,但都一直放在收藏夹吃灰。最近痛下决心,用爱发电,制作一款属于自己的游戏,一定是一件挺有意思的事。在B站上寻得一宝藏UP,简单入门了C#后,开始了我的Unity之旅。
Unity入门
B站宝藏UP:邵发
教程地址:https://www.bilibili.com/video/BV1TZ4y1o76s
Unity安装
选择LTS版本安装,先装Unity Hub,注册登录,然后装Editor
这里选择2020.3.25f1c1
创建项目
Unity Hub-项目-新建
注意登录状态,个人许可证是否到期
窗口布局
打开Editor,主要窗口如下:
- Hierarchy 层级:节点管理器
- Scene 场景:3D场景视图
- Game 游戏:运行游戏
- Inspector 检查器:展示选中节点详细属性
- Project 项目:展示项目目录结构
- Console 控制台:调试,debug
窗口布局可自定义,回到默认窗口布局:
Window-Layouts-default
界面字体大小调整:
Edit-Preferences-UI Scaling-取消勾选Use default desktop setting-调整Use custom scaling value
场景Scene
场景概述
定义:游戏中的场景,背景,关卡。
创建项目后,会自动创建默认场景:SampleScene
- Project窗口-Assets-Scenes-SampleScene
- Hierarchy窗口-SampleScene
- Scene窗口中,仅有主摄像机(Main Camera)和定向光源(Directional Light)
游戏物体
定义:游戏中的对象,如角色、道具、建筑物、动物植物等
添加立方体:GameObject-3D Object-Cube
基本操作:
- 选中物体:左键Object,呈橙色轮廓
- 放大/缩小:鼠标滚轮
- 移动Object:左上工具栏-Move Tool-拖动坐标轴
- 右键Rename,重命名Object
- 右键Duplicate,复制Object
- 右键Delete,删除Object
- 右侧Inspector-显示Object组件,如位置、转角、大小等属性
3D视图(Scene)
基本组件:
- 导航器 Gizmo:世界坐标方向
- 栅格 Grid:XZ坐标平面,表示地平面
- 天空盒 Skybox:世界背景,表示天空和大地
视角基本操作: - 旋转:Alt + LMB(Left Mouse Button)
- 缩放:鼠标滚轮或Alt + RMB(Right Mouse Button) 精细缩放
- 平移:MMB(Middle Mouse Button),效果同Hand Tool
导航器 Gizmo 操作: - 快速恢复y轴向上:Shift+LMB中间小方块
- 俯视图:LMB y轴
- 右视图:LMB x轴
- 前视图:LMB z轴
世界坐标系
3D世界坐标系(左手系)
物体的坐标,由(x, y, z)定义,可以在Inspector中设置
一般来说,y轴表示上下,x/z轴表示东西南北
视野中心
定义:当前3D视图中心点位置。旋转视图时,视图是围绕中心点旋转的。在Unity中,是不支持围绕自定义物体旋转视图的。
框显所选:选中Object,按F键,置于视图中心(或双击Hierarchy中的Object对象)。此时旋转视图时,是围绕Object旋转的。注意:选中Object后,鼠标焦点必须位于Scene窗口中,此时按F键才有效。
出生点:添加一个新Object,位于视图中心。注意:出生点不是在(0, 0, 0),而是在当前视图中心
透视与正交
透视视图 Perspective:近大远小
正交视图 Orthographic:又称等距视图 Isometric。点击Gizmo下面的Persp即可切换透视与正交视图。
透视视图下,物体近大远小。正交视图下,物体的显示与距离无关。
一般使用透视视图,正交视图常用于物体的布局、对齐等操作,如正交顶视图、正交右视图、正交前视图。
摄像机的广角 Field 默认60度。广角越大,位于边缘的Object透视畸变越厉害。可以设为30-40度。
3D原生物体Object
Unity自带的基本模型:
- Cube:立方体
- Sphere:球体
- Capsule:胶囊体
- Cylinder:圆柱体
- Plane:平面
Unity的尺寸单位,一般来说约定Grid中1格=1米
原生模型一般用于联系,真正的模型应在建模软件中制作,然后导出到Unity。CG建模软件有:3Dmax/Maya/Blender/Cinema4D/Zbrush 等等。
物体操作
- Move Tool:移动工具,快捷键W
- Rotate Tool:旋转工具,快捷键E
- Scale Tool:缩放工具,快捷键R
操作模式,保持默认,轴心模式和世界坐标系 - Pivot 轴心 / Center 中心点
- Global 世界坐标系 / Local 局部坐标系
物体的移动
选中Move Tool, - 沿坐标轴移动
- 沿坐标平面移动
- 可在Inspector中精确指定,使用Transform-Reset重置到世界中心
tips:当物体位置重叠时,最好在Hierarchy窗口中选中物体,即使物体被遮盖也可以操作
物体的旋转
选中Rotate Tool,
- 逆时针为正,顺时针为负
- 可在Inspector中精确指定
- 按住Ctrl键,角度增量为15度
- Edit-Grid and Snap Settings 栅格吸附设置
物体的缩放
选中Scale Tool,
- 轴向缩放:拖动坐标轴
- 整体缩放:拖动物体中心
进阶操作
- 多选
- 按Ctrl或Shift键,点选物体
- 在3D视图中,鼠标框选
- 复制
- 选中物体,Ctrl+D复制物体
- 右键选Duplicate
- 聚焦
- 选中物体,按F键,置于视图中心
- 或者Hierarchy中双击物体
- 激活Active
- 选中物体,在检查器中激活/禁用物体,取消勾选物体
- 对齐
- 目视对齐
- 进入正交视图操作
模型
网格
网格Mesh,存储了模型的形状数据
- 模型形状由若干个面围成
- 模型是空心的
- Mesh包含面、顶点坐标、面的法向等数据
- Unity中,所有物体的表面都是由若干三角面围成的,Mesh中记录了面和顶点数据
- 面数越多,物体表面越精细,GPU负担也越重,类似分辨率。如高模:面数极多、高精细度的模型
材质
材质Material,存储物体表面细节数据
- 颜色
- 金属/非金属
- 光滑/粗糙
- 透明/半透明/不透明
- 凹陷/凸起
添加材质: - 添加一个目录
- 添加一个材质:Project窗口-Assets-右键Create-Material
- Albedo,指定表面颜色
- 给材质命名
- 指定材质
- 选中材质,将材质拖到物体上
- 选中材质,直接拖到Inspector-Mesh Renderer-Materials中
纹理
纹理 Texture,也称为贴图,用一张图定义物体的表面颜色。
在 Unity 中,为材质添加贴图:
- 准备图片文件,添加一个 Textures 目录
- 添加一个贴图:将图片拖入 Textures 目录
添加贴图:Inspector-展开最下面-拖动图片到Albedo前面
删除贴图:选中Albedo前面的图片,按backspace
注意:建模师提供的模型,本身已包含了网格、材质、贴图
外部模型
Unity 标准模型格式:FBX
在建模软件中,将模型导出为 FBX 格式即可。
步骤:
- 添加 Models 目录
- 添加 模型 (*.fbx) 和 贴图 文件
- 观察:
- 在 fbx 文件中,包含了 Mesh 和 Material
- 独立在外的贴图文件
- 右下角的 Preview 预览窗口
- 在 Project 窗口中,调节显示
更多模型细节
在 Unity 中,
- 一个平面是没有厚度的
- 平面的正面可见、背面透明。或者说,平面的背面不会被渲染。(玩家不会从地下观察地面情况)
- 同样地,物体表面也是正面可见、背面透明的。
- 默认的,物体具有一个材质 Default-Material ( Unity自带)。如果把物体材质删除,选中Meterial按backspace,此时材质显示为None,则以紫色显示
模型文件的使用
在一个 FBX 模型文件中,一般包含:
- Mesh 网格 ,定义物体形状
- Material 材质 ,定义物体表面光学特性
- Texture 贴图 ,定义物体表面像素颜色
- FBX 文件第一种使用方式:
- 选择 *.fbx 文件,直接拖到层级窗口
- 观察节点图标
- 选中节点,观察 Inspector 中的操作按钮
贴图:
- 有的模型需要贴图文件
- 贴图文件的路径是约定好的。置于与 fbx 相同目录,或者置于同级 Textures 目录
材质:
- 模型可以定义多个材质
- 在 Materials 属性中定义了一个数组
- FBX 文件第二种使用方式,材质的重映射 Remap:
- 选中 *.fbx 资源文件
在 Inspector 中切到 Materials 属性
Use Embeded Materials
On Demand Remap : 映射新的材质
- 点 Apply 应用设置
或者,使用外部材质 Use External Materials:
- 选中 fbx 文件
- Location : Use External Materials 使用外部材质
- 点 Apply 应用,则将内嵌材质解压缩到 Materials 目录
- 直接修改 Materials 目录下的材质文件
- FBX 文件第三种使用方式:分解重组
- 选择 fbx 中的 网格,拖放到Hierarchy
- 选择 fbx 中的 材质,或者自定义一个材质,拖放到Inspector-Materials
- 如果存在贴图,则使用 fbx 配套的材质贴图