Camera.main.cullingMask的简单使用

个人笔记:

 IEnumerator SetCullMask()
    {
        //正数的反码补码都是原码,负数的反码是符号位不变,补码为反码+1
        //因此0(32位Int)的补码是 0000 0000 0000 0000 0000 0000 0000 0000
        //-1:1111 1111 1111 1111 1111 1111 1111 1111 
        Debug.Log("渲染所有层");
       Camera.main.cullingMask = -1;   //渲染所有层
        yield return new WaitForSeconds(1);

        Debug.Log("不渲染");
        Camera.main.cullingMask = 0;   //不渲染
        yield return new WaitForSeconds(1);

        Debug.Log("渲染layer0层");
        Camera.main.cullingMask = 1<<0;   //渲染layer0层
        yield return new WaitForSeconds(1);

        Debug.Log("渲染layer8层");
        Camera.main.cullingMask = 1 << 8;   //渲染layer8层
        yield return new WaitForSeconds(1);

        Debug.Log("渲染layer8层 layer0层");
        Camera.main.cullingMask =1+256;//256=1*2^8 //等同于Camera.main.cullingMask =1+(1<<8)
        yield return new WaitForSeconds(1);

        Debug.Log("渲染layer8层 layer9层");
        Camera.main.cullingMask = (1<<9)+ 256;
        yield return new WaitForSeconds(1);

    }

猜你喜欢

转载自blog.csdn.net/qq_38806355/article/details/83587675