物体是否在屏幕内"/>
unity 判断物体是否在屏幕内
方法一:使用unity系统函数 OnBecameVisible 和 OnBecameInVisible
//物体在屏幕内void OnBecameVisible(){Debug.Log(gameObject.name +"出现");}//物体在屏幕外void OnBecameInvisible(){Debug.Log(gameObject.name+"消失");}注意:物体只要有一部分在屏幕内OnBecameVisible都会执行,只有物体完全在屏幕外才会执行OnBecameInvisible.
方法二:使用GeometryUtility.CalculateFrustumPlanes,但物体必须有边界或带边界的碰撞检测
//Bounds 是物体的边界 使用renderer.bounds或使用带colider获取
//Camera 是场景的主摄像机
public bool IsVisibleFrom(Bounds bounds, Camera camera){try{//获取到摄像机视锥的几个面Plane[] planes = GeometryUtility.CalculateFrustumPlanes(camera);//检查视锥面和物体边界是否相交return GeometryUtility.TestPlanesAABB(planes, bounds);}
更多推荐
unity 判断物体是否在屏幕内
发布评论