我怎样才能让我的网格系统与负片一起工作?

问题描述 投票:0回答:1

所以我统一制作了一个2D网格系统,它可以检查图块地图以查看是否存在碰撞图块,但前提是我的图块位于一组正坐标上。我在论文上搜索了 2 个小时,似乎没有找到任何好的解决方案来解决我的问题。

PS:我的网格是一个 (int, int) 数组,但似乎我必须更改数据结构以支持我的负坐标。

所以我首先尝试通过左下角的图块位置来偏移网格 但它不起作用(我希望它能够抵消我的整个网格,而不仅仅是产生空指针错误)。

c# unity-game-engine math
1个回答
0
投票

数组只有正索引。

如果您有固定数量的图块,但希望您的原点位于角图块之外的其他点,您可以简单地使用

Vector2Int
来定义您的原点。将此偏移量添加到您的图块索引中以获得数组的相应索引。辅助类可能有助于确保在访问图块时完成此操作。

如果你想使用任意数量的图块,你应该切换到数组以外的东西。例如字典:

Dictionary<Vector2Int, MyTileClass>
。这使您可以存储具有任意坐标的图块,但您需要注意,因为无法保证具有任何特定索引的图块存在。

© www.soinside.com 2019 - 2024. All rights reserved.