2021-11-05 11:11:06 +00:00
|
|
|
|
# 1. godot的界面介绍
|
2021-11-01 09:53:51 +00:00
|
|
|
|
|
|
|
|
|
![Image text](image/godot-editor.PNG)
|
|
|
|
|
|
|
|
|
|
### 侧面分栏(Dock)
|
|
|
|
|
|
|
|
|
|
- 点击侧面分栏的右上角可以调整分栏的位置
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 左侧面分栏具体包括:
|
2021-11-23 08:06:29 +00:00
|
|
|
|
1. 文件系统(FileSystem),显示了当前项目中所有的资源文件
|
|
|
|
|
2. 导入(Import),显示了文件系统分栏中所选资源文件的导入设置。
|
|
|
|
|
3. 场景(Scene),按照层级结构显示当前场景中的所有节点,可以简单的理解为一个游戏里的场景/关卡
|
2021-11-01 09:53:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 右侧面分栏具体包括:
|
2021-11-23 08:06:29 +00:00
|
|
|
|
1. 属性(Inspector),显示了场景分栏中所选节点的属性。
|
|
|
|
|
2. 节点(Node),显示了与当前场景分栏中所选节点对应的一些“信息”。
|
2021-11-01 09:53:51 +00:00
|
|
|
|
|
2021-11-21 09:40:38 +00:00
|
|
|
|
### 中间面板:
|
2021-11-01 09:53:51 +00:00
|
|
|
|
|
2021-11-21 09:40:38 +00:00
|
|
|
|
- 主工作区(Workspace)
|
2021-11-23 08:06:29 +00:00
|
|
|
|
- 2D,当在场景分栏中所选节点为2D类型时,会自动进入此工作区。
|
|
|
|
|
- 3D,当在场景分栏中所选节点为3D类型时,会自动进入此工作区。
|
|
|
|
|
- 脚本(Script),此工作区可以对当前项目中的脚本进行编辑。
|
|
|
|
|
- 资源库(AssetLib),可以搜索并浏览网站上的资源
|
2021-11-01 09:53:51 +00:00
|
|
|
|
|
2021-11-21 09:40:38 +00:00
|
|
|
|
- 底部面板(Bottom Panel)
|
2021-11-23 08:06:29 +00:00
|
|
|
|
- 隐藏
|
2021-11-01 09:53:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 与Unity和UE4不同的是:Godot这种布局关系当前是相对固定的,即它不能随意调整任意一个面板的位置或脱离成独立的窗口。虽然这看似是一个缺点,不过从某种程度上讲也让引擎变得更简单了。
|
|
|
|
|
|
2021-11-21 09:33:36 +00:00
|
|
|
|
- 如果布局乱了,恢复一下就可以了,Editor | Editor Layout | Default
|
|
|
|
|
|
|
|
|
|
# 2. 场景和资源
|
|
|
|
|
|
|
|
|
|
- 场景 Scene ,就是一个游戏里的场景 / 关卡
|
|
|
|
|
- 创建场景,在res面板的文件夹下右键,New Scene创建场景
|
|
|
|
|
- 资源 Asset,指游戏里用到的素材、脚本等数据文件
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
比如,常用的几种类型:
|
|
|
|
|
Texture 图片素材 ( *.jpg / *.png)
|
2021-11-21 12:34:07 +00:00
|
|
|
|
Audio音频素材 ( *.mp3)
|
|
|
|
|
程序脚本GdScript ( *.gd)
|
2021-11-21 09:33:36 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- 可以对素材执行删除 Delete 、重命名 Rename 等操作
|
|
|
|
|
|
2021-11-21 13:27:16 +00:00
|
|
|
|
# 3. 场景视图和游戏视图
|
|
|
|
|
|
|
|
|
|
- 场景视图Scene ,即场景编辑器窗口,默认地,创建了一个场景empty
|
|
|
|
|
|
|
|
|
|
- 鼠标滚轮 :放大/缩小视图
|
|
|
|
|
- 鼠标右键拖拽:平移视图
|
|
|
|
|
|
|
|
|
|
- 网格,每一个大网格包括8*8的小网格,每个小网格8个像素
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
每一个小格子为:8像素 x 8像素
|
|
|
|
|
每一个大格子为:64像素 x 64像素
|
|
|
|
|
```
|
|
|
|
|
|
2021-11-28 08:56:51 +00:00
|
|
|
|
- 场景视图中的蓝色框区域是可见的范围,对应的就是运行游戏的时候的游戏视图
|
|
|
|
|
|
2021-11-27 05:19:15 +00:00
|
|
|
|
- 本教程所有的每节课都很简单,这是因为对godot的知识做了拆解,把复杂的知识拆解为一个一个简单的知识点
|
|
|
|
|
- 然后把每个简单的知识点单独作为一节课,所以整个课程的难度是一种渐进式的
|
|
|
|
|
- 复杂的东西都是由一个一个简单的知识构成的,不要觉得课程简单,如果简单的东西不熟练不练习,后面的课程很可能会更不上
|
|
|
|
|
|
2021-11-23 10:28:40 +00:00
|
|
|
|
# 4. 游戏对象(节点)
|
2021-11-23 08:06:29 +00:00
|
|
|
|
|
|
|
|
|
- 游戏对象 Node,就是场景中包含的内容,godot所有操作都是基于节点Node
|
|
|
|
|
|
|
|
|
|
- 演示:向Scene窗口里添加几个图片
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
1 准备图片素材
|
2021-11-28 09:57:17 +00:00
|
|
|
|
2 把图片拖到2D游戏场景中
|
|
|
|
|
3 在Scene窗口中,观察新加的游戏对象
|
2021-11-23 08:06:29 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- 游戏对象的简单操作:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
1 选中游戏对象
|
2021-11-28 09:57:17 +00:00
|
|
|
|
从左侧的层次管理器(Scene窗口)中选中游戏对象
|
2021-11-23 08:06:29 +00:00
|
|
|
|
2 移动游戏对象
|
|
|
|
|
选用移动工具,拖动小方块
|
|
|
|
|
3 修改对象名字
|
2021-11-28 09:57:17 +00:00
|
|
|
|
在Scene窗口中,可以修改名字、删除对象等操作
|
2021-11-23 08:06:29 +00:00
|
|
|
|
```
|
|
|
|
|
|
2021-11-23 10:28:40 +00:00
|
|
|
|
# 5. 坐标系
|
|
|
|
|
|
|
|
|
|
![Image text](../demo05_scene_node/image/坐标系-godot-1.png)
|
2021-11-21 13:27:16 +00:00
|
|
|
|
|
|
|
|
|
- 选择移动工具,移动一个对象
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
在 Inspector 属性面板:
|
|
|
|
|
观察对象的坐标 Position: x, y
|
|
|
|
|
可以发现,对象的坐标会随之变化
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- 世界坐标系
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
y轴向下为正
|
|
|
|
|
x轴向右为正
|
|
|
|
|
|
|
|
|
|
一个像素在真实世界中,可以自行约定,比如约定1像素=1米
|
|
|
|
|
```
|
|
|
|
|
|
2021-11-21 13:34:36 +00:00
|
|
|
|
- 相对坐标系,相对于父节点的坐标,godot的坐标都是相对坐标
|
2021-11-21 13:27:16 +00:00
|
|
|
|
|
2021-11-25 10:37:28 +00:00
|
|
|
|
- 全局坐标和局部坐标可以相互转化
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
Node2D及其子节点的位置可以使用position和gloabl_position来控制,其中,前者是该节点相对于父节点的相对位置,后者是全局位置。
|
|
|
|
|
简而言之,position的坐标系是以父节点的位置坐标为原点的坐标系,方向,还是水平向右为x轴正方向,竖直向下为y轴正方向。
|
|
|
|
|
需要注意的是,全局位置是以场景的左上角为原点的,并不是以根结点的位置作为原点的
|
|
|
|
|
```
|
|
|
|
|
|
2021-11-23 10:28:40 +00:00
|
|
|
|
# 6. 对象的基础操作
|
2021-11-01 09:53:51 +00:00
|
|
|
|
|
2021-11-21 12:20:29 +00:00
|
|
|
|
- Q,选择
|
2021-11-21 13:27:16 +00:00
|
|
|
|
- W,移动,改变 Position
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
Move Mode 对象的移动:
|
|
|
|
|
单独改变X坐标
|
|
|
|
|
单独改变Y坐标
|
|
|
|
|
拖拽中间的方块,可以任意拖动
|
|
|
|
|
也可以直接在 Inspector 中输入坐标,会更精确一些
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- R,旋转,改变 Rotation
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
Rotate Mode 对象的旋转
|
2021-11-23 10:28:40 +00:00
|
|
|
|
沿轴心点旋转
|
2021-11-21 13:27:16 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- S,缩放,改变 Scale
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
Scale Mode 对象的缩放
|
|
|
|
|
沿 X 轴缩放
|
|
|
|
|
沿 Y 轴缩放
|
|
|
|
|
拖拽中间的小方块,X 和 Y 等比例缩放
|
|
|
|
|
```
|
|
|
|
|
|
2021-11-21 12:20:29 +00:00
|
|
|
|
- F,居中选取对象
|
|
|
|
|
- V,移动锚点,Shift + V 拖拽锚点
|
|
|
|
|
- Ctrl + 鼠标拖曳,以pivot为中心旋转当前对象
|
|
|
|
|
- Alt + 拖曳边框缩放点,保持选中目标中心位置不变进行缩放
|
2021-11-05 11:11:06 +00:00
|
|
|
|
|
2021-11-23 10:28:40 +00:00
|
|
|
|
### anchor,锚点
|
|
|
|
|
|
|
|
|
|
- 是一个点,锚点描述的是一个对象的Margin,相对于锚点的坐标
|
|
|
|
|
- 锚点的left,top,right,bottom是相对于父节点的值
|
|
|
|
|
- 主要是用于描述节点的位置
|
|
|
|
|
- 当对一个节点的子节点进行设置锚点时,子节点的锚点范围只能够是父节点的控件区域内。
|
|
|
|
|
- 注意任何布局也都是相对于父窗口矩形的
|
|
|
|
|
- **主要用于描述子节点相对于父节点的位置**
|
|
|
|
|
|
2021-11-05 11:11:06 +00:00
|
|
|
|
### pivot,轴心点
|
|
|
|
|
|
2021-11-23 10:28:40 +00:00
|
|
|
|
- 中心点是一个物体的中心,当我们对物体进行操作的时候,都是以中心点为中心进行对物体的操作
|
2021-11-05 11:11:06 +00:00
|
|
|
|
- 轴心点可以理解为把物体抽象成一个点,物体的位置就是指其轴心点的位置,就是该物体坐标系的原点
|
2021-11-23 10:28:40 +00:00
|
|
|
|
- **主要用于旋转**
|
2021-11-25 10:37:28 +00:00
|
|
|
|
- 后面的课程会继续介绍轴心点
|
2021-11-05 11:11:06 +00:00
|
|
|
|
|
2021-11-23 10:28:40 +00:00
|
|
|
|
# 7. 对象操作的工具,多节点选择,轴心点,平滑,尺子
|
|
|
|
|
|
|
|
|
|
- 多节点选择工具,show a list
|
|
|
|
|
- 轴心点工具
|
|
|
|
|
- 平滑工具
|
|
|
|
|
- 尺子工具
|
2021-11-05 11:11:06 +00:00
|
|
|
|
|
2021-11-23 10:28:40 +00:00
|
|
|
|
# 8. 智能对齐Snap和锁定节点
|
2021-11-09 13:39:18 +00:00
|
|
|
|
|
2021-11-23 10:28:40 +00:00
|
|
|
|
- 智能对齐,Smart Snap
|
|
|
|
|
- 网格对齐,Grid Snap
|
|
|
|
|
- 锁定节点,使其不能移动
|
2021-11-27 05:19:15 +00:00
|
|
|
|
- 子节点不可选中
|