Unity - 3D 环境中的 2D 角色

Unity - 2D Character in 3D Environment

我正在 Unity 中制作一款 3D 游戏,玩家角色必须是 2D 精灵。现在,我的问题是:在 3D 环境中实现 2D 对象的最佳方式是什么

角色将面向镜头并保持在镜头中央。我尝试只使用 2D 精灵,但由于 2D 对象有自己的 Rigidbody2D class 和类似的东西,所以它在游戏世界的其他部分效果不佳。

我是否应该使用面向相机的平面,将精灵渲染为 material?告诉我你的想法和建议。

谢谢。

[已解决]

我创建了一个带有 Box Collider 和 Rigidbody 的空游戏对象,然后将 Sprite 作为子对象。

精灵不限制使用 3D 刚体。唯一的限制是对撞机。你不能在一个物体上同时拥有 rigidbody 和 rigidbody2D,你不能在物体上同时拥有 colliders 和 colliders2D,你不能将 colliders2D 添加到 3D rigidbodies,反之亦然。但是您完全可以向 Sprite 添加任何类型的刚体或碰撞器。

你是做什么游戏的?它是什么流派?它只是一个使用 3D 对象的 2D 平台游戏吗?是3D动作游戏吗?因为它与你使用的一种物理有关。

首先为什么你首先需要一个刚体?仅当您需要在游戏中模拟物理时才需要它。如果没有——你可以为你的角色编写你自己的运动算法,这样会更简单。据我了解,它实际上是一款 3D 游戏,例如 3D 动作,相机可以四处移动,角色的精灵应该始终面向相机。然后只需将模拟物理的游戏对象与持有精灵的对象分开即可。这是一个对象结构:

CharacterBody(刚体、对撞机)
|
|_CharacterSprite (sprite, 使sprite始终面向相机的组件)

3D角色终极秘诀:使用胶囊对撞机!不要关心你使用什么样的视觉效果。不要在意它是一个精灵还是一个模型或者只是一个原始的 3D 对象——使用胶囊碰撞器!总是。

反之亦然。如果您制作 2​​D 游戏 - 仅使用 2D 碰撞器。即使您使用的是 3D 模型。因为当你制作游戏时,一切都与游戏玩法的一致性有关。图形类型没有任何意义。

您也可以使用四边形对象,将精灵作为其 material 的纹理,并采用抠图渲染模式。 如果您想要适当的阴影,您可能会从 sprite 生成网格。