1.unity项目的各个文件夹
文件夹名称 | Name | 作用 |
---|---|---|
Assets | 资源文件夹 | 保存游戏中所有的资源。 |
Library | 库文件夹 | 保存当前项目需要的库文件。 |
Logs | 日志文件夹 | Unity工作过程中的日志文件 |
Packages | 包管理文件夹 | 存放工程的包配置文件和development状态具体包 |
ProjectSettings | 项目设置文件夹 | 保存项目的设置信息。 |
Temp | 临时文件夹 | 保存项目的临时数据。 |
UPM用的,类似于隔壁nuget、npm、pip一样类型的东西,包管理工具。这个目录用来存放工程的包配置文件。和development状态具体包。(对于不知道这玩意干嘛的情况来说,只要知道它会存放当前工程的包配置信息就行了,可以粗略的理解为这是另一种projectsetting目录)
2.Unity的六个面板
面板 | Name | 作用 |
---|---|---|
Scence | 场景面板 | 用于预览当前的场景 |
Game | 游戏面板 | 游戏的预览(运行)窗口 |
Project | 项目面板 | 用于管理当前项目中所有的资源 |
Console | 控制台面板 | 用于输出显示游戏运行过程中的调试信息 |
Inspector | 检视(属性)面板 | 用于查看和编辑游戏物体和项目资源的具体信息 |
Hierarchy | 层级面板 | 用于显示当前场景中的所有资源,在这个面板中可以往场景中添加资源 |
注:
1.可以通过 Project 面板的右上角的三条杠,选中 owe column layout / two column layout 来相应的改变 单 / 双 列的显示
2.可以通过 Unity 软件最右上角的选项 layout 来改变当前的各个面板的布局,里面有系统定义的几个布局,或者可以自己直接拖动面板来进行修改。
3.其中 Project 面板内的 Assets:对应该项目文件夹中的 Assets 文件夹。所以 Project 面板相当于在 unity 中打开的项目文件夹。
4.Assets 中创建文件夹步骤:光标移至 Assets 上单击右键,会弹出菜单-->Create-->Folder,然后改名。
4.游戏在运行状态时,做过的任何操作都不会被保留。
3.Scene面板与场景
3.1.场景
3.1.1简介
场景:是有多个游戏物体组合后的一个整体。
3.1.2创建与保存场景
①File菜单-->New Scene或(Ctrl + N):新建场景
②File菜单-->Save Scene或(Ctrl + S):保存场景
场景的后缀为 “.unity”
3.1.3管理场景
在 Assets 文件夹中创建 Scene 文件夹用于管理场景文件。
3.2.Scene面板的基础操作
3.2.1工具栏
界面左上角的工具栏,分别对应键盘上的 Q、W、E、R、T、Y。
工具栏功能如下:
手型:平移场景的观察角度,左右上下
十字箭头:可以按某一轴或某一平面,移动物体的位置(箭头:固定方向移动; 面:于该面移动)
旋转:可以旋转物体
缩放:可以缩放物体(箭头:按某一轴缩放; 面:等比例缩放)
3.2.2 Alt 操作
Alt + 鼠标左键:按照某一中心点,旋转观察角度
Alt + 鼠标右键:拉远拉近
3.2.3 鼠标功能
鼠标左键:选中场景中的物体
鼠标中键:按下-->平移场景的观察角度;滚动-->拉远拉近
鼠标右键:旋转场景的观察角度
3.2.4 飞行模式
按下鼠标右键不松开后,可以使用 w、s、a、d 进行移动
3.2.5 Scene的观察模式
在 Scene 面板的右上角的世界坐标轴的下面:
Persp:透视模式,近大远小。
ISO:正交模式,远近一样大,2.5D的感觉。
4.Scene中物体的基础操作
4.1.创建
在 Hierarchy 面板中右键 -->3D Object -->选中物体
4.2.聚焦
①在 Hierarchy 面板中左键单击物体 + F
②在 Hierarchy 面板中双击物体
4.3.自身坐标系与世界坐标系
对于任意坐标系,颜色与轴向的对应关系一致:X(红色)、Y(绿色)、Z(蓝色),有颜色的均为正方向
①自身坐标系:是以物体自身为参照的坐标系。
②世界坐标系:是游戏场景中的方向。在游戏场景中世界坐标系是不会随物体的改变而改变的。
注意:可以通过工具栏旁的“Local”、“Global”来切换物体身上的坐标系显示效果。其中 Local 是切换成自身坐标系,Global 则是切换成世界坐标系。
4.4.Pivot与Center 中心点工具
Center: Unity自己根据模型的mesh来计算的中心位置,与模型真实中心点没关系。
Pivot: 该物体的真正中心点。
注意:
①当要改变的是模型的坐标、角度、大小,指的是相对于 Pivot 进行的操作,(选择 Pivot 工具)
②若操作的是多个物体。选择 Center 工具后旋转,全部所选物体hi围绕着 Center 中心点旋转。而旋转 Pivot 工具后旋转,每一个所选物体会围绕着自己的真正中心点旋转。
③Transform 组件的 position 属性指的就是 Pivot 中心点。
4.5.等距移动、缩放、旋转
按下 CTRL 不放,使用移动工具,不论是上下还是左右,都是以默认一米为单位移动的。
按下 CTRL 不放,使用缩放工具,都是以默认0.1倍为单位移动的。
按下 CTRL 不放,使用旋转工具,不论是上下还是左右,都是以默认15°为单位旋转的。
如果要修改默认值也可以,在 Edit 菜单--> Snap setting
注意:unity中的 Cube 物体的边长为1米。
4.6.顶点吸附功能
①选中物体后,在工具栏选择移动工具
②按下键盘 V 键不放
③鼠标移到该物体所要吸附的顶点后,按下左键不放
④移动鼠标,将物体移动到所要吸附物体的顶点
5.3D物体
5.1.材质球与贴图
5.1.1.介绍
材质球:Material ,物体的质地,物体看起来是什么做的。
贴图:Texture,用于材质球的显示,相当于给物体套层皮。
5.1.2. 管理材质球与贴图
在Assets 中创建 “Materials” 文件夹,用于管理材质球。
在Assets 中创建 “Textures” 文件夹,用于管理贴图。
材质球文件的后缀是“.mat”。
5.1.3.创建与使用
①创建
在 Hierarchy面板里的 Assets 文件夹中的 Materials 文件夹上,右键弹出菜单->Create->Material 。
②编辑
①在 Hierarchy 面板中鼠标选中需要编辑的材质球;
②点击“Albedo”前的圆点,在弹出的“贴图选择界面”选择需要的材质;
Albedo: 纹理贴图(漫反射贴图)
③使用
①将材质球拖拽到 Hierarchy 面板上相应的物体上;
②将材质球拖拽到 Scene 面板上相应的物体上。
④Shader
Shader:着色器。
通过着色器来编辑材质球的效果。
5.2.父子关系
5.2.1.原则
- 移动父亲,儿子会跟着移动,就像移动电脑上的一个文件夹,文件夹中的资源会跟着一块移动一样。
- 在 Hierarchy 面板中,任意两个物体都可以建立父子关系。
5.2.2.如何建立父子关系?
①在 Hierarchy 面板中,将选中的(子)物体拖到(父)物体中。
②在 Hierarchy 面板中,选中(父)物体后,右键create一个新(子)物体,将自动建立父子关系
5.3.预制体
5.3.1简介
预制体(Perfabs):预先准备好的物体,可以拿来重复利用。
5.3.2.管理
在 Assets 文件夹中建立 "Perfabs"文件夹用于管理。
5.3.3.创建
直接从 Hierarchy 面板里将要创建成预制体的物体拖拽到 Project 面板的 Perfabs 文件夹里。
预制体的后缀为 “.prefab”。
5.3.4.使用
①将预制体直接拖拽到 Hierarchy 面板;
②将预制体直接拖拽到 Scene 面板;
都可以在场景中创建一个相应的物体。
5.3.5.预制体与非预制体的区别
①非预制体的名字是黑色,预制体名字是蓝色;
②在 Inspector 面板,非预制体是图标颜色是白色的,预制体的图标是蓝色的。
③在 Inspector 面板,预制体比非预制体多了一个 “Prefab 选项”。
5.3.5.预制体的好处
只要编辑其中的一个,然后在 Inspector 面板中的 Prefab 选项里点击 Overrides-->“Apply All”,所有的同类预制体都会改变。包括场景中的所有同类预制体和 Perfabs 文件夹内的同类预制体。
6.物体与Transform组件
6.1.物体与组件的关系
组件:Component,游戏物体的组成零件。
在 Inspector 面板中就有一部分组件。而每一个物体包括 Light 和 Camera 都是由一个个组件构成的。而这些组件就在 Compone 菜单内。
6.1.1.添加
1.在 Hierarchy 面板中选中物体后,点击 Component 菜单->选择组件
2.在 Hierarchy 面板中选中物体后,在 Inspector 面板中找到最下方的 Add Component 点击后搜索并添加。
6.1.2.移除
在 Hierarchy 面板中选中物体后,在 Inspector 面板中找到组件后,左键单击右侧的齿轮 或 右键弹出菜单 --> Remove Component
6.1.3.禁止与选用
点击在组件名字前的方框(复选项), 进行切换。
6.1.4重置
在 Hierarchy 面板中选中物体后,在 Inspector 面板中找到组件后,左键单击右侧的齿轮 或 右键弹出菜单 --> Reset
6.1.5使用组件方法
方法 | 作用 |
---|---|
gameObject.GetComponent < 组件 >(); | 获取相应组件的引用。并返回该组件类型的值 |
使用脚本所在物体身上的某一个组件方法的时候,要先查找该游戏物体身上该组件,然后返回该组件类型的字段,要用同类型的字段保存。
注意: 该字段要先被赋值,比如:
Transform字段 = gameObject.GetComponent<Transform>();
6.2.Transform组件
6.2.1.简介
6.2.2.属性
属性 | 作用 |
---|---|
Position | 位置 |
Rotation | 旋转 |
Scale | 缩放 |
6.2.3.基础的方法
1.方法
方法 | 作用 |
---|---|
Transform字段.Translate(Vector3, Space); | 按照某一坐标系沿着某一方向移动物体的位置。通过直接修改坐标,所以会发生穿模。 |
- 相关参数
Vector3(构造体):三维向量。
向量,可以表示一个方向,也可以表示一个位置。
比如 Vector3.forward
向前走,速度为每秒一米
如何调整速度:在方向后加上* 几倍
,不允许使用 double类型,因为double无法隐式转换成 float ,但是 int 可以,所以如果是0.5倍,就要写成 * 0.5f
,每秒半米。
Space[enum]:空间。是一个枚举类型。有以下两个枚举值。
Space.Self:表示物体自身的坐标系。
Space.World:表示物体所在的世界坐标系。
7.脚本
7.1. 是什么?
脚本:Scrpit,用于控制游戏的逻辑。
7.2. 管理
在Assets 文件夹中创建 “Scripts” 文件夹,管理脚本资源。
7.3. 创建
在Assets 文件夹上右键-->Create-->C# Script,马上改名。
C# 脚本文件的后缀是“.cs”。
7.4. 简介
Start()方法: 当游戏运行起来,就会马上执行,且只执行一次。
Update()方法: 循环调用,每帧调用一次。一秒钟大概执行60 次。
帧:我们的游戏画面是在不停的刷新的,每刷新一次,就是一帧。
输出调试的方法:Debug.Log ();
Start()和Update()方法都是Unity3D 内部的“事件方法”,不需要我们人工调用,系统会自动调用和管理这些“事件方法”。且这两个方法的返回值均为空(void)
7.5. 使用脚本
①直接将脚本拖拽到 Hierarchy 面板上物体身上;
②直接将脚本游戏物体的 Inspector 面板上;
只要运行游戏,脚本就会执行。
8.Console 面板
Console:控制台。用于输出显示游戏运行过程中的调试信息。
功能按钮:
Clear:清除功能,清除控制台中的全部信息;
Collapase:折叠功能,将相同的内容合并成一条显示,更新后面的数字;
Clear on Play:游戏每次运行时自动清除上一次运行的内容;
9. 鼠标键盘输入
9.1.获取键盘输入
- 相关方法
方法 | 作用 |
---|---|
Input.GetKey(KeyCode.索引码); | 按下某键后,持续返回true |
Input.GetKeyDown(KeyCode.索引码); | 按下某键的一瞬间,返回true |
Input.GetKeyUp(KeyCode.索引码); | 抬起某键的一瞬间,返回true |
返回值:bool 类型
参数:KeyCode.索引码 比如KeyCode.A
键盘上的A
KeyCode是一个枚举类型(Enum)
KeyCode:键码,保存了键盘按键“索引码”。
9.2.获取鼠标输入
- 相关方法
方法 | 作用 |
---|---|
Input.GetMouseButton(值); | 按下某键后,持续返回true |
Input.GetMouseButtonDown(值); | 按下某键的一瞬间,返回true |
Input.GetMouseButtonUp(值); | 抬起某键的一瞬间,返回true |
返回值:bool 类型
参数:鼠标按键索引值,0->左键, 1->右键, 2->中键。
比如Input.GetMouseButtonDown(0);
表示左键按下时一瞬间返回true