Godot4.3游戏引擎节点简介
Node节点以及一级子节点
- Node:节点是所有对象的基类,就像是一个“万能容器”,其他节点都继承自它,可以用来组织和管理游戏中的各种元素。
- Viewport:视口,决定游戏画面显示区域和方式,比如可以设置游戏画面的分辨率、显示范围等。
- CanvasItem:用于2D图形绘制和用户界面元素的基础节点,像按钮、图片这些2D元素都基于它。
- Node3D:和CanvasItem相对,是3D场景中所有对象的基础节点,比如3D模型、灯光等3D元素都从它派生。
- AnimationMixer:动画混合器,用来管理和混合多个动画,比如角色同时做走路和挥手动作,就靠它来协调。
- AudioStreamPlayer:音频流播放器,用来播放音频文件,像背景音乐、音效等。
- CanvasLayer:画布层,用于管理2D界面元素的层级关系,方便控制哪些元素显示在前面或后面。
- HTTPRequest:用于发送HTTP请求,比如游戏中需要从服务器获取数据或者上传玩家信息时会用到。
- MultiplayerSpawner:多人游戏生成器,在多人游戏里,用来生成玩家角色或者其他网络同步对象。
- MultiplayerSynchronizer:多人游戏同步器,确保在多人游戏中,各个玩家端的游戏状态保持一致。
- NavigationAgent2D:2D导航代理,帮助2D角色在场景中自动寻路,找到从一个点到另一个点的路径。
- NavigationAgent3D:和2D的类似,不过是用于3D场景中的角色自动寻路。
- ResourcePreloader:资源预加载器,提前加载游戏中需要用到的资源,避免游戏运行时出现加载延迟。
- ShaderGlobalsOverride:着色器全局覆盖,用来修改场景中所有使用特定着色器的对象的全局属性。
- StatusIndicator:状态指示器,用于显示游戏中的各种状态信息,比如生命值、能量值等。
- Timer:定时器,用于在指定的时间间隔后触发某个事件,比如倒计时、定时刷新游戏内容。
- WorldEnvironment:世界环境,用来设置整个游戏场景的环境属性,比如天空盒、环境光等。
简单分类:
- 基础节点类:Node、Node3D、CanvasItem,是其他具体功能节点的基础。
- 图形与界面相关:Viewport、CanvasLayer、CanvasItem,用于处理游戏画面显示和2D界面元素。
- 多媒体相关:AnimationMixer、AudioStreamPlayer,负责动画和音频播放。
- 网络相关:HTTPRequest、MultiplayerSpawner、MultiplayerSynchronizer,用于网络功能实现。
- 导航相关:NavigationAgent2D、NavigationAgent3D,处理角色寻路。
- 资源与状态相关:ResourcePreloader、StatusIndicator,管理资源加载和游戏状态显示。
- 其他功能:ShaderGlobalsOverride、Timer、WorldEnvironment,提供全局属性修改、定时和环境设置功能 。
CanvasItem—>Node2D/Control
Node2D
- Node2D:2D场景中所有节点的基类,是创建2D游戏元素的基础,就像一个“2D对象大本营”,其他2D节点都从它派生。
- CollisionObject2D:2D碰撞对象,用于处理游戏中的碰撞检测,比如角色与墙壁、敌人之间的碰撞判断。
- AnimatedSprite2D:2D动画精灵,用来展示有动画效果的2D图片,像角色的行走、攻击动画。
- AudioListener2D:2D音频监听器,确定在2D空间中从哪里收听音频,影响声音的方向和距离感。
- AudioStreamPlayer2D:2D音频流播放器,播放2D音频文件,比如2D游戏中的背景音乐、音效。
- BackBufferCopy:用于将渲染目标的内容复制到另一个缓冲区,常用于后处理效果。
- Bone2D:2D骨骼,用于实现2D角色的骨骼动画,方便对角色进行变形和动画控制。
- CPUParticles2D:基于CPU计算的2D粒子系统,用来创建像烟雾、火焰等粒子效果。
- Camera2D:2D相机,决定游戏中2D画面的视角和显示范围。
- CanvasGroup:画布组,用于管理一组2D界面元素,可以统一控制它们的属性,比如透明度、缩放等。
- CanvasModulate:用于调整2D界面元素的颜色和透明度等视觉属性。
- CollisionPolygon2D:2D碰撞多边形,自定义不规则的碰撞形状,用于更精确的碰撞检测。
- CollisionShape2D:2D碰撞形状,定义基本的碰撞区域,比如矩形、圆形等。
- Joint2D:2D关节,连接两个2D物理对象,模拟物体之间的连接和互动,如铰链、绳索连接。
- Light2D:2D灯光,为2D场景添加光照效果,影响场景的明暗和氛围。
- GPUParticles2D:基于GPU计算的2D粒子系统,相比CPUParticles2D能更高效地处理大量粒子,实现更复杂的粒子效果。
- LightOccluder2D:2D光遮挡物,阻挡2D灯光,产生阴影效果。
- Line2D:绘制2D线条,可以用来绘制路径、连线等。
- Marker2D:2D标记点,在场景中标记特定位置,常用于辅助定位或计算。
- MeshInstance2D:2D网格实例,用于显示复杂的2D网格模型。
- MultiMeshInstance2D:多个2D网格实例,用于高效渲染大量相似的2D网格对象。
- NavigationLink2D:2D导航链接,定义2D导航区域之间的连接路径。
- NavigationObstacle2D:2D导航障碍物,标记在2D场景中角色不能通过的区域。
- NavigationRegion2D:2D导航区域,定义角色可以在其中自由移动的2D空间。
- Parallax2D:2D视差效果节点,用于创建具有视差效果的背景,使游戏画面更具层次感。
- ParallaxLayer:2D视差层,是Parallax2D的子节点,用于管理不同的视差背景层。
- Path2D:2D路径,定义一条路径曲线,可用于对象的移动轨迹等。
- PathFollow2D:使对象沿着2D路径移动,常用于制作物体沿特定轨迹运动的效果。
- Polygon2D:绘制2D多边形,可自定义形状,用于创建各种图形。
- RayCast2D:2D射线检测,发射一条射线,用于检测与其他对象的碰撞,比如检测鼠标点击到的物体。
- RemoteTransform2D:用于在网络同步中远程传输2D对象的变换信息。
- ShapeCast2D:根据指定形状进行碰撞检测,比RayCast2D更灵活。
- Skeleton2D:2D骨骼系统,与Bone2D配合,管理角色的骨骼结构和动画。
- Sprite2D:2D精灵,用于显示静态的2D图片。
- TileMap:瓦片地图,用于创建由重复瓦片组成的2D地图,像很多横版游戏的背景地图。
- TileMapLayer:瓦片地图层,管理瓦片地图中的不同图层。
- TouchScreenButton:触摸屏按钮,用于创建适用于触摸屏操作的按钮。
- VisibleOnScreenNotifier2D:当2D对象进入或离开屏幕可见区域时发出通知,常用于优化性能或触发特定事件。
简单分类:
- 基础节点类:Node2D,是其他2D节点的根基。
- 图形与显示相关:AnimatedSprite2D、Sprite2D、MeshInstance2D、MultiMeshInstance2D、TileMap、TileMapLayer、Line2D、Polygon2D,用于展示各种2D图形和地图。
- 碰撞与物理相关:CollisionObject2D、CollisionPolygon2D、CollisionShape2D、Joint2D、NavigationLink2D、NavigationObstacle2D、NavigationRegion2D、RayCast2D、ShapeCast2D,处理碰撞检测和物理交互。
- 音频相关:AudioListener2D、AudioStreamPlayer2D,负责音频的播放和监听。
- 动画相关:Bone2D、Skeleton2D,实现2D角色的骨骼动画。
- 粒子系统相关:CPUParticles2D、GPUParticles2D,创建粒子效果。
- 相机与视角相关:Camera2D,控制2D游戏画面视角。
- 界面与控制相关:CanvasGroup、CanvasModulate、TouchScreenButton,管理2D界面元素和用户交互。
- 光照与阴影相关:Light2D、LightOccluder2D,处理2D场景中的光照和阴影。
- 辅助与特效相关:BackBufferCopy、Marker2D、Parallax2D、ParallaxLayer、Path2D、PathFollow2D、RemoteTransform2D、VisibleOnScreenNotifier2D,提供辅助功能和特殊效果 。
CollisionObject2D Godot引擎中用于2D物理相关的节点
- Node2D:2D场景中所有节点的基类,是创建2D游戏元素的基础。
- CollisionObject2D:2D碰撞对象,用于处理游戏中的碰撞检测,是所有参与碰撞检测对象的基类,比如角色与墙壁、敌人之间的碰撞判断都靠它的派生类来实现。
- PhysicsBody2D:2D物理体,用于模拟物理效果的对象,具有质量、速度等物理属性。
- StaticBody2D:静态2D物理体,固定在场景中,不会因物理作用而移动,比如场景中的建筑物、墙壁等。
- AnimatableBody2D:可动画的2D身体,在静态物体基础上,可以添加动画效果,像有开关门动作的建筑门。
- CharacterBody2D:角色2D身体,专门用于处理角色的物理行为,比如角色的移动、跳跃,它提供了一些方便角色控制的属性和方法。
- RigidBody2D:刚体2D物理体,具有完整的物理模拟特性,会受到力和碰撞的影响而产生移动、旋转等效果,例如游戏中的可移动箱子、掉落的物品。
- PhysicalBone2D:物理骨骼2D,可用于实现带有物理效果的骨骼动画,比如角色的头发、尾巴等在物理作用下摆动。
- StaticBody2D:静态2D物理体,固定在场景中,不会因物理作用而移动,比如场景中的建筑物、墙壁等。
- Area2D:2D区域,用于检测进入或离开该区域的对象,比如角色进入一个触发区域会触发特定事件,不参与常规的碰撞响应,主要用于区域检测 。
- PhysicsBody2D:2D物理体,用于模拟物理效果的对象,具有质量、速度等物理属性。
- CollisionObject2D:2D碰撞对象,用于处理游戏中的碰撞检测,是所有参与碰撞检测对象的基类,比如角色与墙壁、敌人之间的碰撞判断都靠它的派生类来实现。
简单分类(树状结构):
- 基础类
- Node2D
- 碰撞相关基类
- CollisionObject2D
- PhysicsBody2D
- StaticBody2D
- AnimatableBody2D
- CharacterBody2D
- RigidBody2D
- PhysicalBone2D
- StaticBody2D
- Area2D
- PhysicsBody2D
- CollisionObject2D
Control
- Control:所有UI控件的基类,为UI元素提供基本的属性和功能,如位置、大小、可见性等。
- Container:容器节点,用于容纳其他UI控件,方便对一组相关控件进行统一管理和布局,就像一个装东西的盒子。
- BaseButton:基础按钮节点,是所有按钮类的基类,用于创建可交互的按钮,点击后可以触发相应的事件。
- TextEdit:文本编辑框,允许用户输入和编辑文本,比如在游戏中输入用户名、聊天信息等。
- ColorRect:颜色矩形,用于显示纯色的矩形区域,可用于设置背景颜色或作为其他UI元素的底色。
- GraphEdit:图形编辑节点,用于创建和编辑图形化的界面,比如流程图、状态机等。
- Range:范围控件,通常用于创建滑块、进度条等,允许用户在一定范围内选择数值。
- Separator:分隔线,用于在UI中分隔不同的区域或控件,使界面布局更清晰。
- ItemList:列表控件,用于显示一系列的项目,比如物品列表、任务列表等。
- Label:标签,用于显示文本信息,如游戏中的提示文字、标题等。
- LineEdit:单行文本输入框,用户可以输入一行文本,常用于密码输入、搜索框等。
- MenuBar:菜单栏,用于创建应用程序或游戏中的菜单栏,包含多个菜单选项。
- NinePatchRect:九切片矩形,一种特殊的矩形,在拉伸时可以保持边缘的样式不变,常用于制作可缩放的UI元素,如按钮背景。
- Panel:面板,也是一种容器,通常用于创建具有边框和背景的区域,用来分组和展示相关的UI元素。
- ReferenceRect:参考矩形,用于在UI布局中作为参考,比如确定其他元素的位置和大小。
- RichTextLabel:富文本标签,除了显示普通文本外,还支持一些简单的文本格式设置,如加粗、斜体、颜色等。
- TabBar:选项卡栏,用于创建带有多个选项卡的界面,用户可以通过切换选项卡来查看不同的内容。
- TextureRect:纹理矩形,用于显示纹理图片,比如在UI中显示图标、背景图片等。
- Tree:树状视图,用于显示具有层级结构的数据,比如文件目录、角色技能树等。
- VideoStreamPlayer:视频流播放器,用于在UI中播放视频。
简单分类:
- 基础类:Control,是其他UI控件的根基。
- 容器类:Container、Panel,用于组织和管理其他UI元素。
- 按钮类:BaseButton,用于创建交互按钮。
- 文本类:TextEdit、LineEdit、Label、RichTextLabel,用于文本的显示和输入。
- 图形与图像类:ColorRect、NinePatchRect、TextureRect,用于显示颜色、特殊图形和图片。
- 功能类:GraphEdit、Range、Separator、ItemList、MenuBar、TabBar、Tree、VideoStreamPlayer,提供不同的功能和交互方式。
- 辅助类:ReferenceRect,用于辅助UI布局。
Container
- Container:所有容器节点的基类,用于容纳和管理其他UI元素,为其子节点提供基本的布局和管理功能。
- AspectRatioContainer: 纵横比容器,可保持内部子节点按照指定的纵横比进行缩放和显示,比如确保图片或视频不会变形。
- BoxContainer: 盒子容器,是VBoxContainer和HBoxContainer的基类,用于按一定方向排列子节点。
- VBoxContainer:垂直盒子容器,将子节点垂直排列,像把东西竖着放在一个盒子里。
- ColorPicker:颜色选择器,允许用户选择颜色,通常嵌入在其他容器中使用。
- HBoxContainer:水平盒子容器,将子节点水平排列,类似把东西横着放在盒子里。
- VBoxContainer:垂直盒子容器,将子节点垂直排列,像把东西竖着放在一个盒子里。
- CenterContainer: 居中容器,将内部的子节点在容器内居中显示,不管容器大小如何变化。
- FlowContainer: 流式容器,是HFlowContainer和VFlowContainer的基类,子节点会像水流一样依次排列。
- HFlowContainer:水平流式容器,子节点从左到右依次排列,排满一行后自动换行。
- VFlowContainer:垂直流式容器,子节点从上到下依次排列,排满一列后自动换列。
- GraphElement: 图形元素容器,是GraphFrame和GraphNode的基类,用于构建图形化界面元素。
- GraphFrame:图形框架,用于定义图形化界面的框架区域。
- GraphNode:图形节点,在图形化界面中代表一个节点元素。
- GridContainer: 网格容器,将子节点按照网格形式排列,可以指定行数和列数。
- SplitContainer: 分割容器,是HSplitContainer和VSplitContainer的基类,用于创建可分割区域的容器。
- HSplitContainer:水平分割容器,内部区域可以通过分割条水平分割,用户可以调整分割区域的大小。
- VSplitContainer:垂直分割容器,内部区域可以通过分割条垂直分割,用户可以调整分割区域的大小。
- MarginContainer: 边距容器,可以为内部子节点设置边距,调整子节点与容器边界的距离。
- PanelContainer: 面板容器,用于创建带有面板样式的容器,可用于分组和展示相关UI元素,通常有边框和背景。
- ScrollContainer: 滚动容器,当内部子节点内容超出容器大小时,会自动出现滚动条,用户可以滚动查看内容。
- SubViewportContainer: 子视口容器,用于在主视口中嵌入一个子视口,可用于显示独立的场景或界面内容。
- TabContainer: 选项卡容器,用于创建带有选项卡的界面,用户可以通过切换选项卡来显示不同的内容区域。
简单分类(树状结构):
- 基类容器
- Container
- 按比例布局容器
- AspectRatioContainer
- 方向排列容器
- BoxContainer
- VBoxContainer
- HBoxContainer
- FlowContainer
- HFlowContainer
- VFlowContainer
- BoxContainer
- 特殊布局容器
- CenterContainer
- GridContainer
- SplitContainer
- HSplitContainer
- VSplitContainer
- 功能型容器
- MarginContainer
- PanelContainer
- ScrollContainer
- SubViewportContainer
- TabContainer
- 图形化容器
- GraphElement
- GraphFrame
- GraphNode
- GraphElement
BaseButton
- BaseButton:所有按钮类节点的基类,为各种按钮提供基本的属性和功能,比如点击事件的处理、按钮的状态管理等。
- Button:普通按钮,最常见的按钮类型,点击后可以触发特定的操作,比如确认、取消等。
- CheckBox:复选框按钮,用户可以勾选或取消勾选,用于选择多个选项的场景,比如在设置中选择多个偏好选项。
- CheckButton:检查按钮,和复选框类似,不过样式上可能有所不同,用于标记某个状态的开启或关闭。
- ColorPickerButton:颜色选择按钮,点击后会弹出颜色选择器,方便用户选择颜色。
- MenuButton:菜单按钮,点击后会弹出一个菜单列表,提供多个选项供用户选择,像应用程序中的功能菜单。
- OptionButton:选项按钮,点击后会显示一个下拉列表,用户可以从列表中选择一个选项,常用于选择单一的设置项。
- LinkButton:链接按钮,通常用于显示类似网页链接的样式,点击后可以跳转到指定的页面或执行相应的操作,比如游戏中的帮助链接。
- TextureButton:纹理按钮,使用纹理图片作为按钮的外观,可以自定义按钮的样式,让按钮看起来更美观或符合游戏风格。
- Button:普通按钮,最常见的按钮类型,点击后可以触发特定的操作,比如确认、取消等。
简单分类(树状结构):
- 基类按钮
- BaseButton
- 常规操作按钮
- Button
- CheckBox
- CheckButton
- ColorPickerButton
- MenuButton
- OptionButton
- Button
- 特殊功能按钮
- LinkButton
- 自定义样式按钮
- TextureButton