我有一架带有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米之间触摸)
答案 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")){}