微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在两个重叠的对撞机之间进行选择

如何解决如何在两个重叠的对撞机之间进行选择

我正在用unity3D制作一个rubiks立方体生成器。我的生成器不仅会生成多维数据集,还会为多维数据集的每一面生成“边对象” 如此处所示:

Cube side example

这些侧面对象仅仅是带有碰撞体的Empty对象。这些对撞机可用于通过在用户单击对撞机然后将其旋转时将立方体内除其他面以外的所有内容设置为其子元素来旋转立方体的侧面,如下所示:

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);
            }
        }
}

这就是我的问题所在:我无法弄清楚父母一方的逻辑。

让我们想象这样的事件:

enter image description here

用户单击标记为红色的区域。哪一侧有反应?我曾尝试做一些事情,例如计算自第一次单击当前位置以来用户光标所经过的路径,并将其与对撞机的方向进行比较,但我没有使它起作用。

另外,当我使立方体块成为对撞机的孩子时,它们会变小。

我应该如何实现呢?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。