HOME / 第 5 部分 · 3D 游戏开发 / 第 47 课
MODULE 5 · 3D 游戏开发

第 47 课 · 3D 节点类型详解

⏱ 预计时长 35 分钟📊 难度 入门📚 模块 第 5 部分 · 3D 游戏开发

🎯 本课学习目标

3D 世界里的积木更多样。本课认识常用 3D 节点,并用 CSG 快速搭建原型。

📖 详细教学步骤

常用 3D 节点一览概念

节点用途
Node3D所有 3D 节点基类(位置/旋转/缩放)
MeshInstance3D显示 3D 网格(物体本体)
Camera3D3D 相机(画面来源)
DirectionalLight3D太阳光(平行光)
OmniLight3D点光源(灯泡)
SpotLight3D聚光灯(手电筒)
CharacterBody3D3D 角色物理体
StaticBody3D3D 静态碰撞体
AudioStreamPlayer3D3D 音效(第 45 课)

Node3D 的变换属性概念

与 2D 类似,Node3D 有:

  • position:相对父节点位置(Vector3)
  • rotation:欧拉角旋转(radians)
  • rotation_degrees:以度为单位更方便
  • scale:缩放(Vector3)
GDSCRIPTextends Node3D

func _ready():
    position = Vector3(2, 1, 0)     # 2米右、1米上
    rotation_degrees = Vector3(0, 45, 0)  # Y 轴转 45°
    scale = Vector3(2, 1, 1)        # X 方向拉长 2 倍

CSG:快速建模原型实操

CSG(构造实体几何)用简单形状组合成复杂物体,做原型超快:

  1. 添加 CSGBox3D(长方体)
  2. 在它下面加 CSGCylinder3D(圆柱)当柱子
  3. 子 CSG 节点会自动「加减」组合(操作 Operation 属性:交集/差集)
  4. CSG 自带碰撞,运行时自动生成网格

💡 用 CSG 搭关卡原型,比建模软件快得多。

用 CSG 搭一座房子实操

  1. CSGBox3D:墙(长 4、高 3、宽 4)
  2. 子 CSGBox3D 移上去当屋顶(操作设为减法可掏空)
  3. 加一个 CSGCylinder3D 当烟囱
  4. 选中所有 CSG 节点,让它们组合成一个物体

💡 原型阶段先用默认灰色,后面换材质。

把 CSG 转成正式网格进阶

原型确定后,可以把 CSG 烘焙成正式网格:

  1. 选中 CSG 节点 → 顶部菜单 Mesh → 转换为 MeshInstance(或其他)
  2. 生成 MeshInstance3D + 碰撞体,之后可加正式材质
⚠️
3D 物体位置明明是 (0,0,0) 却在半空?

检查父节点是否有偏移,或自身 position 的 Y 值。3D 中 Y 是高度。

⚠️
CSG 组合不出来?

子 CSG 的操作属性(Operation)要与父不同才能加减;默认是「并集」。

🧪 动手试一试

🏋️ 课后练习

用 CSG 搭一个「桌子」原型:桌面 + 4 条腿,并练习用 rotation_degrees 把其中一条腿转 30 度。

CSGBox3D 桌面 (2,0.1,1),4 个 CSGBox3D 腿 (0.1,1,0.1)。

💡

3D 中 Y 是上,建房子时高度全在 Y 轴。

💡

CSG 是原型利器,正式版再换模型。

🎓 本课小结

常用 3D 节点:MeshInstance3D 显示、Camera3D 画面、三类灯光、三类物理体;CSG 快速建模原型并自动带碰撞。