很难解释我的问题。我有16个瓷砖,中间有9个按钮:

每个按钮后面都是一个白色的gameObject,它位于四个瓷砖的中间。如果你按下一个按钮,这4个瓷砖应该围绕白色gameObject旋转。我认为最好的方法是,当你点击一个按钮时,按钮周围的4个瓷砖应该变成那个按钮后面的白色gameObject的子块,这样他们就可以用4旋转。我怎么做呢?当你按下一个按钮时,按钮周围的瓷砖就会变成按钮后面的白色gameObject的子块。
发布于 2017-09-08 19:31:02
有几种方法可以实现这一点,但它或多或少可以细分为您提到的几个步骤。此方法假定您有一个附加到每个白色对象的脚本。
您首先需要生成白色对象所接触的对象列表。这可以使用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);
}
}https://stackoverflow.com/questions/46123020
复制相似问题