Unity 判断UI在不在摄像机视口里面,也就是摄像机前面
1.直接上代码 根据自己需要修改
wut.position 表示3d物体
jiantou.position 表示UI
效果是UI跟随物体显示
当物体在摄像机视口里面,能看到UI在物体上面,相反就不显示,
如果不判断 物体不在摄像机视口里面 UI错误显示在屏幕上,位置不对
Vector3 vector = Camera.main.WorldToScreenPoint(wut.position);
世界坐标转UI坐标
Vector3 vector = Camera.main.WorldToScreenPoint(wut.position); //判断在不在摄像机前面 x z 大于等于0说明在摄像机前面 小于说明在摄像机后面 if (vector.x >= 0 && vector.z >= 0) { jiantou.position = new Vector3(vector.x, vector.y + 50, vector.z); jiantou.gameObject.SetActive(true); } else { jiantou.gameObject.SetActive(false); }