【发布时间】:2021-01-26 10:43:23
【问题描述】:
我正在从游戏“Rimworld”中重建一个边缘链接系统。
紫色方块是需要形成“链接”的单个方块,在箭头绘制的方向上,具有精确的长度。
目前,我不知道如何比将所有这些方块放在字典中更好地做到这一点,我在字典中标记方块的位置和方向(可以是向上或向右),如下所示:
Dictionary<Vector3Int, bool> linkSquares;
我想对这个字典进行排序,以便首先出现的 KV 对是 Vector3Int.x 最低的那些,然后是 Vector3Int.y 最低的那些。
这样,我总是可以从这些方格(图中标有数字 1-4)开始,然后沿着适当的箭头方向前进,边走边移除这些方格,这样只会留下其他起始方格。
我读过字典无法排序,但我不知道在这种情况下如何使用 SortedDictionary。整个系统似乎过于肮脏,但我不知道我还能如何在这里实现我的目标,因此非常感谢任何设计更改建议。
【问题讨论】:
-
第一个键是vectorx,第二个键,当vectorx等于时,是vectory吗?
-
是的,我基本上总是希望最左下角的 Vector3Int 先出现,这样我就可以从它们开始向上或向右形成这些链接,如箭头所示。跨度>
标签: c# sorting dictionary unity3d game-development