首页 > 解决方案 > 如何在 Unity 中旋转等轴测图

问题描述

我计划开发一款可以称为等距的 Unity 游戏,只是玩家必须具备将屏幕旋转 90 度的能力。关键特征是旋转本身必须非常顺利地进行。

想象一下屏幕上显示的等距地图。玩家向右滑动,地图顺时针旋转 90 度。如果玩家慢慢滑动,他实际上可以看到地图如何旋转并享受游戏对象图形的细节。但是滑动只会将东西旋转 90 度。

我的关键问题是 - 在 2D 等距项目中可以实现这样的效果,还是我必须通过 3D 项目路线?我有一种直觉,2D 图形无法实现平滑旋转。但另一方面,除了旋转部件,我根本不需要 3D 功能。

那么,我应该在 Unity 中进行 2D 项目还是 3D 项目?

标签: unity3drotationisometric

解决方案


您绝对可以旋转 2D 等轴测图。作为一个很好的例子,看看要塞。

据点

让我们看看如何实现这种旋转。

等轴测投影是一种在技术和工程图纸中以二维形式直观地表示三维对象的方法。

瓦片存储在一个简单的二维数组中:

[[0,1,2],
[[3,4,5],
[[6,7,8]]

大多数旋转魔法发生在相机上。因此,无需修改原始 tilemap,您只需对其进行处理并返回一个新的 tilemap。

您可以通过遍历每个图块、翻转组件并否定其中一个值来旋转整个地图。

向左旋转:

(x, y) => (-y, x)

[[2,5,8],
[[1,4,7],
[[0,3,6]]

右旋:

(x, y) => (y, -x)

[[6,3,0],
[[7,4,1],
[[8,5,2]]

视觉上精灵保持不变。这适用于即时 90 度旋转。

添加过渡是可能的,但它不会很漂亮,因为您会看到瓷砖之间的间隙。


推荐阅读