C# Culling Mask

Culling Mask

在这里插入图片描述

实现

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraCullingMaskTest : MonoBehaviour {
Camera _camera;
// Use this for initialization
void Start ()
{
_camera = Camera.main;
}
//unity中的层前7个被unity锁定,由低到高分别是nothing/everything/default/transparentFX/ignore raycast/water/UI
//从第8个到第31个可以自己设置
//在本示例中,第八层为cube层;第九层为sphere层;第十层为capsule层
//第十一层为tree层,圆柱体设置为default层
void Update ()
{
if (Input.GetKeyDown(KeyCode.A))
{
_camera.cullingMask = 1<<8; //cube 只渲染第八层
}
if (Input.GetKeyDown(KeyCode.B))
{
_camera.cullingMask = 1<<9; //sphere 只渲染第九层
}
if (Input.GetKeyDown(KeyCode.S))
{
_camera.cullingMask = 1<<10; //capsule 只渲染第十层
}
if (Input.GetKeyDown(KeyCode.F))
{
_camera.cullingMask = (1 << 10) + (1<<9) +(1<<8); //只渲染第8、9、10层
}
if (Input.GetKeyDown(KeyCode.G))
{
_camera.cullingMask = -1; //渲染所有层 everything
}
if (Input.GetKeyDown(KeyCode.H))
{
_camera.cullingMask = 0; //capsule 什么层都不渲染 nothing
}
if (Input.GetKeyDown(KeyCode.T))
{
_camera.cullingMask |= (1 << 11); //tree 在原来的基础上增加第11层
}
if (Input.GetKeyDown(KeyCode.Y))
{
_camera.cullingMask &= ~(1 << 11); //tree 在原来的基础上减掉第11层
}
if (Input.GetKeyDown(KeyCode.K))
{
_camera.cullingMask = ~(1 << 11); //tree 渲染除第11层之外的其他所有层
}
}
}

发布了16 篇原创文章 · 获赞 0 · 访问量 137
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览