我知道的解决方案有两种:
第一种
1.给摄像机加代码
void Update ()
{
RaycastHit hit = new RaycastHit();
for (int i = 0; i < Input.touchCount; ++i)
{
if (Input.GetTouch(i).phase.Equals(TouchPhase.Began))
{
Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(i).position);
if (Physics.Raycast(ray, out hit))
{
hit.transform.gameObject.SendMessage("OnMouseDown");
}
}
}
}
2.然后给要点击的物体加个脚本并添加OnMouse函数;
void OnMouseDown(){
DoSomething();
}
第二种
这种算是我知道最简单的方法了。
直接给摄像机添加 Physics Raycaster 组件,然后点击3D物体,此时3D物体的Button点击事件就有响应了。
我的Unity版本是2017,其他版本的我不知道有没有这个组件。