在做的这个项目中,遇到的问题是:在做鼠标按下的时候,只是想做到再点击NGUI的UI界面的按钮是,只触发按钮事件,不会出现点击穿透现象而触发到Unity相机中的事件。
做法如下(2D游戏):
1、设置NGUI相机的depth要大于Unity相机的depth,单纯的渲染顺序,如果NGUI的depth小于Unity相机的时候,不会显示NGUI画面
2、设置Unity相机的Z轴大于NGUI相机的Z轴
3、在Unity脚本中做如下判断
void Update () {
if(Input.GetMouseButtonDown(0)){
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
//1、检测要碰到的NGUI按钮
//2、如果没有则执行脚本事件响应
if (Physics.Raycast(ray, out hit))
{
if (hit.collider.name == "Sprite")
{
Debug.Log(">>>>>>>>>打印从Unity相机发射出来的射线碰到的NGUI按钮 " + hit.collider.name);
}
}
else {
Debug.Log("执行Unity脚本中的相应时间,比如跳跃");
}
}
}