Unity如何使摄像机视锥体外的物体不被剔除

在默认情况下,Unity在渲染场景时会剔除掉摄像机视椎体以外的所有物体,这就会导致某些特殊情况下,我们希望显示在场景中的物体反而被剔除了,比如用Shader制作顶点动画时,如果物体本身的位置在摄像机以外,而顶点变换后的位置在摄像机内,那我们是希望该物体不被剔除的。然而,Unity并没有为某个物体或者摄像机提供禁止视椎体剔除的功能,所以我们就要自己想办法了!!!

研究Unity的官方文档发现,视椎体剔除是通过检测视椎体或与物体渲染器的Bounds是否包含或相交来决定是否剔除的,所以我们只要把渲染器的Bounds设置为一定与视椎体包含或相交即可。我这里的就设置为:

csharp 复制代码
Vector3 pos = Camera.main.transform.position + Camera.main.transform.forward * Camera.main.nearClipPlane;
renderer.bounds = new Bounds(pos, Vector3.one);

至于是否要在Update中更新就取决你是否会移动、旋转、缩放该物体以及摄像机是否移动,因为这些操作会使渲染器更新他的Bounds或摄像机重新计算剔除

相关推荐
tealcwu3 小时前
【Unity资源】Unity MCP 介绍
unity·游戏引擎
晚霞的不甘5 小时前
Flutter for OpenHarmony 引力弹球游戏开发全解析:从零构建一个交互式物理小游戏
前端·flutter·云原生·前端框架·游戏引擎·harmonyos·骨骼绑定
Thomas_YXQ7 小时前
Unity3D中提升AssetBundle加载速度的详细指南
java·spring boot·spring·unity·性能优化·游戏引擎·游戏开发
Miss_SQ8 小时前
Unity接入AI—Deepseek,数据流式传输
unity·ai
chillxiaohan9 小时前
unity 批量修改场景内字体工具
unity
晚霞的不甘10 小时前
Flutter 方块迷阵游戏开发全解析:构建可扩展的关卡式益智游戏
前端·flutter·游戏·游戏引擎·游戏程序·harmonyos
ellis19701 天前
Unity中ScriptableObject用法整理
unity
玉梅小洋1 天前
Unity Muse 完整使用文档:Sprite+Texture专项
unity·ai·游戏引擎
能源革命1 天前
Three.js、Unity、Cesium对比分析
开发语言·javascript·unity
timathy332 天前
Unity Addressable 实现Build时自定义剔除资源组
unity·游戏引擎