假设我有以下游戏对象层次结构:
-
Board
-游戏棋盘的整个视图,由瓷砖组成。 -
Tile
-板内的矩形边界,由分块组成。 -
Subtile
-在瓷砖内的矩形边界。
一个Board
需要相对于所有包含的Tile
对象的维度。
Tile
需要相对于Board
的相对坐标。
Subtile
需要相对于Tile
的相对坐标。
我当前的过程是定义n
Tile
对象。将x
和y
分开,这样x
表示一行中Subtile
对象的个数,y
表示一列中Subtile
对象的个数。然后,当我放置Subtile
对象时,我只需将x
或y
乘以包含Tile
对象的起始坐标。
到目前为止,这个过程运行得很好。然而,为了避免复杂性和错误,我希望能够简单地布局一个Subtile
对象,其中(0,0)将是Tile
对象的左上角。
不只是抽象我的定位和添加类,说,SubtileVector
或其他东西,这将保持一个额外的变量相对偏移瓷砖,有没有一个更简单的方法来做到这一点?
同样地,当我想看看我的板有多大并将相机放在中间时,我只是最终计算到那个位置。是否有任何方法可以让我的板始终充当这些瓷砖的包含框,并且能够做一些像Board.Position.Center
这样的事情并获得确切的中心坐标?
有。你可以创建一个board游戏对象,将它父化为tile游戏对象,而这些对象又是subtile对象的父对象:
董事会,家长到Tile, parent to微妙的
好消息是你可以使用tile和subtile的相对坐标使用它们的transform.localPosition