Unity 判断物体是否在摄像机视角内

 

 

2D物体和3D物体的渲染是不一样的 ,3D物体依靠MeshRender,而2D靠的是Canvas统一渲染

判断3D物体

内置的API: OnBecameVisible     当脚本挂载的物体呈现在任何相机时调用一次

     OnBecameInvisible  当脚本挂载的物体离开任何相机时调用一次

原理:相机进行渲染物体上的MeshRender,时会被检测,调用;

 

判断 2DUGUI (需要在Update当中调)

  Vector3 pos = Camera.main.WorldToScreenPoint(transform.position); //取得当前UI在屏幕当中的位置

  //判断当前的位置 与屏幕坐标的关系

if ((pos.z < 0) || (pos.x < 0) || (pos.x > Screen.width) || (pos.y < 0) || (pos.y > Screen.height))
  Debug.Log("消失在屏幕中");
else
  Debug.Log("显示在屏幕中");

 

  如有更好的办法,望可以留言讨论。

posted @ 2022-02-08 14:07  H❥嘉  阅读(892)  评论(0)    收藏  举报