假设我有以下游戏对象层次结构:
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
那样做一些并获得精确的中心坐标?
答案 0 :(得分:2)
是的。你可以创建一个棋盘游戏对象,将其作为 tile 游戏对象的父级,这些游戏对象又是 subtile 对象的父级对象:
董事会,父母 瓷砖,父母 微妙
好消息是你可以使用他们的
来使用tile和subtile的相对坐标transform.localPosition