遇到的问题:
在做一个Unity for Android项目时,使用NGUI,使用手势缩放和旋转模型,但希望在点击到UI时屏蔽这些操作。
分析:
尝试在发射拾取射线时屏蔽特点层的物体。
解决方法:
在NGUI的Camera下挂载如下脚本,注意Camera参数为NGUI的相机而非主相机。
var NGUICamera : Camera;
public var target: GameObject;
function Update ()
{
var ray = NGUICamera.ScreenPointToRay (Input.mousePosition);
var hit : RaycastHit;
var mask = 1 << LayerMask.NameToLayer("NGUI");
if (Physics.Raycast (ray, hit, 2000, mask))
{
target = hit.collider.gameObject; //获得点击的物体
hitUI = true;
}
else
{
hitUI = false;
}
}
注意:Physics.Raycast函数一定要加入距离参数(上文为2000),否则layer屏蔽将无效!