大家好。 我制作了一个酷的3D按钮,想分享一下制作过程的一部分。 有关更多信息,你可能想知道,但我觉得这些东西很酷。 DmrVBM 是一个非常有用的扩展,它使我将Blender模型转换为GameMaker变得更加容易。 有些小问题,它目前没有被原开发者维护,但我大部分是足够有能力的,能够充分利用它。 模型由两个部分组成:外环和盖子。 我没有给盖子添加纹理,因为盖子会被推入着色器,这样我就可以通过颜色编码来创建每个按钮。 外环纹理是在Aesprite中完成的,使用一个名为Prismbase的Blender同步扩展(原开发者已经不再维护了)。 实际按钮逻辑中使用了几种不同的PhysX功能。 外环网格顶点数据被发送到PhysX并被烘焙为一个三角形形状。 这意味着它是一个坚实的对象,玩家角色控制器和刚体无法穿过。 按钮盖子没有碰撞。 相反,它被赋予一个盒子形状(我应该改成球体哈)并设置为碰撞回调触发器。 当玩家角色控制器或刚体进入或退出该触发器时,它会设置按钮状态为“按下”或“释放”。 这会告诉GameMaker发射酷的按钮流体。 也就是说,推下盖子,添加外环的扁平变换,调整发送到盖子的颜色一致性等。 实际按钮触发逻辑很傻,但目前它工作得很好。 我使用Blender空白物体来告诉GameMaker在哪里生成按钮以及它们触发的“动作”。 当我按下这个按钮时,它会运行一个 add_actor 动作,生成刚体到另一个命名的Blender空白物体。 声音只是来自Freesound的CC0。 我可以尝试制作自定义声音,但在编程/艺术/音频任务之间切换会让我头痛,所以Freesound就足够了。 感谢回答问题或更深入地探讨任何您感兴趣的部分。 ~~我不知道什么是“Godot”或“Unity”。~~