有3种方法,OnWillRenderObject(),MeshRenderer.isVisible,OnBecameVisible()
都可以实现 如题所示的功能,前提是这个 空物体必须含有3个组件MeshRenderer、MeshFilter、MeshCollider(可有可无)。
MeshFilter的Mesh为Plane或者是其他大小的平面的模型
为了使得这个空物体看起来 像是空的,可以不挂载MeshCollider,并且其材质为透明的白色的材质。

...
//第1种方法
public bool isRendering=false;
private float lastTime =0;
private float curtTime =0;
//第2种方法
public MeshRenderer mesh;
// Start is called before the first frame update
void Start()
{
curtTime = Time.time;
mesh = this.GetComponent<MeshRenderer>();
}
...
void Update()
{
//第1种方法
isRendering = (curtTime != lastTime )? true : false;
print("isRendering:"+ isRendering);
lastTime = curtTime;
//第2种方法
if (mesh != null)
{
print(

本文介绍了三种方法在Unity中判断空物体是否位于摄像机的可视范围:OnWillRenderObject()、MeshRenderer.isVisible和OnBecameVisible()。这些方法要求物体包含MeshRenderer、MeshFilter组件,Mesh通常是透明白色平面。不使用MeshCollider可保持物体看似无形。参考了两篇相关文章。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



