我为一个角色设置了物理约束和边界框,但是当我移动该角色场景的根节点(SpineSprite)时,角色并没有产生物理约束效果,同时也不知道如何让该角色的边界框参与碰撞(伤害检测),这个怎么解决?
如何将Spine的物理约束整合到Godot中?
在Godot中整合Spine的物理约束和边界框,您可以使用SpineBoneNode
来驱动或跟随Spine骨骼的变换。SpineBoneNode
可以用于将Godot的物理节点(如CollisionShape2D
)附加到Spine骨骼上,从而实现物理交互。
使用
SpineBoneNode
:确保SpineBoneNode
是SpineSprite
的直接子节点。您可以在Godot编辑器中右键点击SpineSprite
,选择“添加子节点”,然后选择SpineBoneNode
。在SpineBoneNode
的属性中,选择要跟随或驱动的骨骼。附加物理节点:在
SpineBoneNode
下添加一个CollisionShape2D
节点,并设置其形状以匹配您在Spine中定义的边界框。这样,当SpineBoneNode
跟随Spine骨骼时,CollisionShape2D
也会随之移动,从而参与物理碰撞检测。更新模式:确保
SpineSprite
的更新模式设置为适合您的需求。如果需要与Godot的物理引擎同步,您可以将更新模式设置为Physics
,这样SpineSprite
会在固定的时间间隔内更新。
通过这些步骤,您可以在Godot中实现Spine角色的物理约束和边界框的碰撞检测。
Godot貌似不能直接读取边界框作为碰撞箱,并且没办法设置碰撞层和碰撞遮罩,这很麻烦的,我上午在B站上看到Unity运行时里面有布娃娃的特性,我很希望Godot能直接有这个特性,这样我就不用学习Unity然后从零开始自己的游戏项目了
Spinebot
除了骨架是SpineSprite节点,其余都是Spinebone节点,我不太确定子级要使用哪个物理体来参与物理碰撞
而且我还希望这些骨骼被炮弹打到时能有受力反馈