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

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);
    }
}

效果如下


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值