我正在做一个魔方模拟器。为了让两边转动,我在每一边都有一个碰撞器,我让碰撞器在点击时成为它们内部的所有东西的父级,然后转动侧面。
为了得到碰撞器中的每个对象,我使用Physics.OverlapBox
,并将除其他边之外的每个对象放在这样的列表中:
public List<GameObject> children = new List<GameObject>();
private void Awake()
{
UpdateCubes();
}
void UpdateCubes()
{
Mesh mesh = GetComponent<MeshFilter>().mesh;
children.Clear();
foreach (Collider child in Physics.OverlapBox(transform.localPosition,
Vector3.Scale(mesh.bounds.size, transform.lossyScale) / 2, transform.rotation))
{
if (!child.transform.CompareTag("Side"))
{
children.Add(child.gameObject);
}
}
}
这就是问题所在:它似乎Physics.OverlapBox
太大了,因为它得到了立方体的每一块和一些奇怪的丢失的游戏对象,如下所示:
我试图改变transform.localScale / 2
,transform.lossy Scale / 2
但它不起作用。我该怎么办?