private void Update()
{
corners = new Vector3[4];
gameObject.GetComponent<RectTransform>().GetWorldCorners(corners);
Debug.Log(IsVisible(Camera.main, corners));
}
bool IsVisible(Camera camera, Vector3[] worldPositions)
{
Matrix4x4 vp = camera.cullingMatrix;
foreach (var wp in worldPositions)
{
Vector4 v = wp;
v.w = 1;
Vector4 p = vp * v;
if (p.w > p.x && -p.w < p.x && p.w > p.y && (-p.w < p.y) && p.w > p.z && -p.w < p.z)
{
return true;
}
}
return false;
}
Unity 判断UI是否在摄像机范围内
最新推荐文章于 2022-04-25 20:45:00 发布