3D基础场景的搭建

在3D场景中,比较常用到的是RigidBody3D
以及CollisionShape3D
、Mesh
节点,作用如下
RigidBody3D节点
- 它是一种3D物理体,用于模拟刚体物体在物理世界中的行为。
- 可以对其应用力、阻力、冲量等,使其受到重力、碰撞等物理效果的影响。
- 通常用于模拟掉落、弹跳、滚动等情况,为游戏增加真实感。
StaticBody3D节点
- StaticBody3D可以与其他刚体(RigidBody)或运动体(CharacterBody)进行碰撞检测和响应。
- 自身不会受到物理作用力的影响,保持静止状态。其他物体在与它碰撞时,会产生相应的物理反应,如弹rebond和滚动等。
- 通常用于表示地形、建筑物、障碍物等静态元素。
- 由于StaticBody3D不需要计算运动学方程,所以相比RigidBody更高效,在需要大量静态物体的场景中,使用StaticBody3D可以减少CPU计算开销。
CollisionShape3D节点
- 它定义了一个3D碰撞体的形状,通常附加在RigidBody3D等物理对象上。
- 可以设置为各种形状,如球体、盒体、胶囊体等,用于检测碰撞。
- 确保物体在物理模拟中正确地相互作用和响应碰撞。
Mesh节点
- 它用于渲染3D模型网格,决定了3D对象在场景中的可视外观。
- 可以加载各种3D模型文件(.obj、.fbx等),也可以通过代码程序动态生成。
- 通过设置材质、纹理等,可以控制Mesh的渲染效果。
场景搭建

基础场景
这里的地板使用的是staticbody3D节点,用于设置与球体的碰撞
在Physics Material Override
属性中新建一个tres文件,并且设置弹力为0.7(值越大弹力越大)
创建好地板与灯光,然后创建球体,运行就能发现所有的物理属性都存在了,重力,碰撞,弹力等
球体创建

设置MeshInstance3D
的Mesh属性为sphereshape3D,并且在下方的Surface Material Override
中新建StandardMaterial3D
tres, 并且在对应的Albedo中设置物体颜色
设置CollisionShape3D
的Shape属性,为sphereshape属性,为节点添加碰撞体