如何防止dynamicGUI元素在Unity中重叠?

我正在为我们的Unity3D游戏世界进行鸟瞰,每个感兴趣的地方都有一个标签hover在上面。 问题是有时它们会重叠,尽管屏幕上有足够的空间让它们共存。

任何人都可以想出一个更好的方法来分离它们,而不是用每一个纹理来检查每一个纹理,并将它们彼此移开。

我设法这样做:

  • 把所有的gui元素放在一个列表中。
  • 在Y坐标上从下到上sorting
  • 按照这个顺序循环,如果碰到前一个,就把它往上移动,然后转到下一个。

这样你会得到一堆整齐的GUI标签(在我的例子中是游戏对象的名字),它们将永远不会重叠。