摄像机按层响应事件Camera.eventMask

来源:互联网 发布:java集合类编程题 编辑:程序博客网 时间:2024/05/14 05:03

Camera.eventMask属性可以设置哪个层的物体响应鼠标事件

如果使物体响应鼠标有三个条件

1.物体在摄像机的视野范围内

2.eventMask与物体的layer进行与运算&后结果仍为物体的layer值,比如现在有两个物体,他们的layer值分别为1和3,

则当eventMask与9(因为2^0+2^3=9)进行与运算后若结果仍为9,则这两个物体都会响应鼠标事件。

3.物体的IgnoreRaycast没有被选上。


我们同样是在layer中加两个层Cube和Sphere层,分别属于第8层和第9层



创建一个立方体和一个球体,并把立方体的Layer设置为Cube,球体的设置为Sphere


我们创建CameraEventMask.cs脚本,枫别挂在球体和立方体上

脚本内容

public class CameraEventMask : MonoBehaviour {    private int cubeLayer = 8;    private int sphereLayer = 9;    /// <summary>    /// 紧立方体响应鼠标消息    /// </summary>    public void SetCameraEventMaskCubeLayer() {        Camera.main.eventMask = 1 << cubeLayer;    }    /// <summary>    /// 紧球体响应鼠标消息    /// </summary>    public void SetCameraEventMaskSphereLayer()    {        Camera.main.eventMask = 1 << sphereLayer;    }    void OnMouseDown()    {        Debug.Log(gameObject.name);    }}

效果如下


0 0
原创粉丝点击