Unity3d 如何在Unity中旋转等轴测贴图

Unity3d 如何在Unity中旋转等轴测贴图,unity3d,rotation,isometric,Unity3d,Rotation,Isometric,我计划开发一个统一的游戏,人们可以称之为等距,除了玩家必须有能力旋转屏幕90度。关键特征是旋转本身必须非常平稳 想象屏幕上显示的等轴测地图。玩家右击,地图顺时针旋转90度。如果玩家滑动缓慢,他实际上可以看到地图如何旋转,并享受游戏对象图形的细节。但一次轻击只能使物体旋转90度 我的关键问题是-这样的效果可以在二维等轴测项目中实现,还是我必须通过三维项目路线?我有一种直觉,平滑的旋转无法通过2D图形实现。但另一方面,除了旋转部件,我根本不需要3D功能 那么,我选择Unity中的2D项目还是3D项目

我计划开发一个统一的游戏,人们可以称之为等距,除了玩家必须有能力旋转屏幕90度。关键特征是旋转本身必须非常平稳

想象屏幕上显示的等轴测地图。玩家右击,地图顺时针旋转90度。如果玩家滑动缓慢,他实际上可以看到地图如何旋转,并享受游戏对象图形的细节。但一次轻击只能使物体旋转90度

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


那么,我选择Unity中的2D项目还是3D项目?

您完全可以旋转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度旋转很有效


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

您肯定可以旋转二维等轴测贴图。作为一个很好的例子,我们来看看堡垒

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

等轴测投影是一种可视化表示的方法 在技术和实践中,二维的三维物体 工程图纸

平铺存储在一个简单的二维阵列中:

[[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度旋转很有效


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

谢谢您的回答。然而,从我的理解来看,平稳的过渡不能像这样实现,对吗?我想,如果我在寻找平稳过渡,我真的应该做一个3D项目……是的,我会选择3D:)谢谢你的回答。然而,从我的理解来看,平稳的过渡不能像这样实现,对吗?我想,如果我在寻找平稳过渡,我真的应该做一个3D项目……是的,我会选择3D:)