一:使用Unity自带的回调函数
当物体身上的Render组件是否被渲染时调用OnBecameVisible和OnBecameInVisible,类似于OnTriggerEnter和OnTriggerExit
- 物体自身上必须有相关Render组件
- 它所谓的渲染与不渲染包括Game视图和Scene视图两个,在电脑上测试会出现Game视图中已经不显示物体但是Scene视图中物体还被显示出来的问题,移动端不用考虑这个问题
- 下面的脚本挂载到被检测的物体身上
using UnityEngine;
public class Test : MonoBehaviour
{
private bool isInView; //是否在视线范围内
private void Update()
{
if (isInView)
{
print("yes");
}
else
{
print("no");
}
}
private void OnBecameVisible()
{
isInView = true;
}
private void OnBecameInvisible()
{
isInView = false;
}
}