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("显示在屏幕中");

 

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM