我正在用 unity3D 制作一个魔方生成器。我的生成器不仅生成立方体,还为立方体的每一侧生成“侧面对象”,如下所示:
这些边对象只是带有碰撞器的空对象。这些碰撞器可以用来转动立方体的侧面,当用户点击碰撞器时,将除了其他侧面之外的所有东西都设置为它们的子对象,然后只旋转空的,如下所示:
Collider[] collides;
void OnMouseDown()
{
collides = Physics.OverlapBox(transform.position, transform.localScale / 2, transform.rotation);
foreach (Collider col in collides)
{
if (!col.CompareTag("Side"))
{
col.gameObject.transform.parent = this.transform;
Debug.Log(col.gameObject.transform.name);
}
}
}
这就是我的问题所在:我无法弄清楚父母一方的逻辑。
让我们想象这样一个事件:
用户点击红色标记的区域。哪一方有反应?我已经尝试过计算用户光标自第一次单击到当前位置后所经过的路径并将其与对撞机的方向进行比较,但我没有让它工作。
此外,当我将立方体块作为对撞机的子对象时,它们会变小。
我应该如何实现这个?