2.6 禁用未使用的脚本和对象

1.禁用未使用的脚本和对象


1.禁用未使用的脚本和对象

禁用未使用的脚本和对象是指在特定游戏类型中, 对那些不在玩家视野内采用不处理他们的优化方案
1).Unity的视锥剔除和遮挡剔除

a.视锥剔除: 自动剔除相机之外的游戏对象, 只影响渲染系统, 不会绘制被剔除的对象

b.遮挡剔除: 剔除虽然在相机视野内, 但被其他物体挡住的对象; 同样是只影响渲染系统, 防止浪费GPU绘制不可见的物体

Unity中的视锥剔除和遮挡剔除其实只会优化GPU渲染层面的性能, 对象身上依附的各种组件还是会照常执行, 并不能起到禁

用未使用的脚本和对象, 优化CPU性能的目的
2).OnBecameVisible和OnBecameInvisible函数

a.OnBecameVisible

在渲染器(Renderer)对任何摄像机(主摄像机、UI摄像机、小地图摄像机、Scene视图摄像机

等)可见时调用

b.OnBecameInvisible

在渲染器(Renderer)对任何摄像机(主摄像机、UI摄像机、小地图摄像机、Scene视图摄像机

等)都不可见时调用

注:

a.Scene图摄像机也会导致调用该函数

b.所依附的对象上必须有Renderer渲染器相关组件

c.对象失活后, 由于渲染器也会失活, 这两个函数不再响应

d.即使这两个函数所在的组件失活, 只要渲染器存在, 就会响应
3).利用距离禁用对象

过判断需要禁用的对象和玩家或摄像机距离过远时主动禁用对象

if( (this.transform.position - otherTrans.position).sqrMagnitude >= 2500 )
{

}
4).主动判断视锥范围

a.GeometryUtility.CalculateFrustumPlanes

用于获取摄像机视锥体六个平面

b.GeometryUtility.TestPlanesAABB

用于判断一个AABB包围盒是否与一组平面(如视锥体)相交或包含, 返回值: 如果包围盒在平面组

的内部(或相交)返回true, 否则返回false(即完全在外面)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值