很难解释我的问题。我有16个瓷砖,它们之间有9个按钮:
每个按钮后面都是一个白色游戏对象,位于4个图块的中心。如果按一个按钮,4个图块应围绕白色游戏对象旋转。 我认为最好的方法是当你点击一个按钮时,该按钮周围的4个图块应该成为该按钮后面的白色游戏对象的子图形,因此它们可以用4旋转。 我如何做到这一点,当你按下按钮时,该按钮周围的瓷砖将成为该按钮后面的白色游戏对象的孩子?
答案 0 :(得分:1)
有几种方法可以实现这一点,但它可以或多或少地分解为您提到的几个步骤。此方法假定您有一个脚本附加到每个白色对象。
首先需要生成白色物体正在触摸的对象列表。这可以使用OnCollisionEnter / OnTriggerEnter或执行距离检查来完成。下面是标记每个彩色方块后如何使用OnTriggerEnter的示例。然后,您可以简单地遍历列表中的4个对象,并将其父级分配给白色方块:
void SquareClicked()
{
foreach(GameObject square in NeighborList)
{
square.transform.parent = gameObject.Transform;
}
DoRotate(); //this is where you do the rotation of the parent object.
}
List<GameObject> NeighborList = new List<GameObject>();
void OnTriggerEnter2D(Collider2D col)
{
if (col.tag == "coloredsquare") //tag each square with this tag.
{
NeighborList.Add(col.gameObject);
}
}