Unity判断物体是否在视野内
Posted DaLiangChen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity判断物体是否在视野内相关的知识,希望对你有一定的参考价值。
方法1:
public bool isplay;
void OnBecameVisible() //当物体进入相机视野
{
isplay = true;
}
void OnBecameInvisible() //当物体离开相机视野
{
isplay = false;
}
方法2:
/// <summary>
/// 判断位置是否在相机视野内
/// </summary>
/// <param name="worldPos"></param>
/// <returns></returns>
private bool isInView(Vector3 worldPos)
{
Transform camTransform = Camera.main.transform;
Vector2 viewPos = Camera.main.WorldToViewportPoint(worldPos);
Vector3 dir = (worldPos - camTransform.position).normalized;
float dot = Vector3.Dot(camTransform.forward, dir);//判断物体是否在相机前面
if (dot > 0 && viewPos.x >= 0 && viewPos.x <= 1 && viewPos.y >= 0 && viewPos.y <= 1) return true;
else return false;
}
以上是关于Unity判断物体是否在视野内的主要内容,如果未能解决你的问题,请参考以下文章
小松教你手游开发unity实用技能计算目标物体是否在自己的扇形视野范围