Unity3D ugui摄像机AABB动态剔除不可见UI

通过AABB碰撞检测,可以剔除Unity3D UGUI中相机视锥体外的UI元素,降低drawcall消耗。文章介绍了如何使用GeometryUtility.CalculateFrustumPlanes获取相机平面,结合TestPlanesAABB进行碰撞检测,并在有PolygonCollider2D的UI元素上应用,实现动态检测和调整UI对象的活性。
摘要由CSDN通过智能技术生成

     UI 相机的可见区域之外,虽然会被显卡绘制剪裁掉,但是会消耗drawcall。我们可以利用AABB碰撞检测剔除掉,相机之外的ui元素,就是active false掉。效果如下:

     

      










this.planes = GeometryUtility.CalculateFrustumPlanes(this.uiCamera);

using System;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System.Collections;


namespace Framework
{
	public class RenderTestVisible : MonoBehaviour
	{
		private PolygonCollider2D box;

		public GameObject firstChild;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值