如何在百分比或局部点上点击对撞机相对

时间:2016-08-30 13:52:49

标签: unity3d unity5

我有一架带有MeshCollider的飞机,当我点击该飞机在该位置创建一个带有代码的新框时我管理了:

    bool hit = GetComponent<MeshCollider> ().Raycast (Camera.main.ScreenPointToRay (Input.mousePosition), out hitInfo, 1000.0f);
    if (hit) {
        GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube.transform.position = hitInfo.point;
    }

那架飞机代表一个足球场(在现实生活中它将是100 x 50米)。如何点击飞机的相对位置? 整个图像代表平面(足球场100米x 50米)和P区,当我点击时我玩Penal。 (我想知道是否在一些区域内点击我会打刑,例如:如果我在0到16米之间或84到100米之间触摸)

enter image description here

1 个答案:

答案 0 :(得分:1)

简单一点,添加两个游戏对象,没有渲染器但是有对撞机。将它们放置在主平面上方,以便捕捉光线投射。然后检查你正在击中哪一个。

bool hit = GetComponent<MeshCollider> ().Raycast (Camera.main.ScreenPointToRay (Input.mousePosition), out hitInfo, 1000.0f);
if (hit.gameObject.CompareTag("Field")) {
    GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
    cube.transform.position = hitInfo.point;
} else if(hit.gameObject.CompareTag("PenaltyZone")){}