蓝牙鼠标与IOS装备不支持OnMouseDown()等方法,最好用射线实现点击
暂时的想法是提供一个射线管理类,如下:
public class RayButton : MonoBehaviour {
[System.Serializable]
public class RayCamera
{
public Camera camera;
public Transform plane;
public Ray ray;
public RaycastHit hit;
}
public List<RayCamera> rayCameras = new List<RayCamera>();
void Update ()
{
if (Input.GetMouseButtonUp(0))
{
for (int i = 0; i < rayCameras.Count; i++)
{
Vector3 _vec3TargetScreenSpace = rayCameras[i].camera.WorldToScreenPoint(rayCameras[i].plane.transform.position);
Vector3 _vec3MouseScreenSpace = new Vector3(Input.mousePosition.x, Input.mousePosition.y, _vec3TargetScreenSpace.z);
rayCameras[i].ray.origin = rayCameras[i].camera.transform.position;
rayCameras[i].ray.direction = rayCameras[i].camera.ScreenToWorldPoint(_vec3MouseScreenSpace) - rayCameras[i].ray.origin;
Debug.DrawLine(rayCameras[i].camera.transform.position, rayCameras[i].ray.origin + rayCameras[i].ray.direction * 10000, Color.red);
if (Physics.Raycast(rayCameras[i].ray, out rayCameras[i].hit, 10000))
{
}
}
}
}
}