C#如何使边界适合旋转的摄影机
本文关键字:旋转 摄影机 何使 边界 | 更新日期: 2023-09-27 18:20:20
在Unity中,我有一个类正在创建一个新的边界,对于那些可能不知道Unity边界实际上只是一个立方体的人来说。然后我有一个像相机这样的对象,我想把这个边界添加到相机上,并缩放它以适应视图的截头体。如果它从不旋转,那就很容易了,但相机确实旋转了,而此刻我正在画一个空白。
这就是我现在所拥有的,当相机不旋转时,开关工作
float h = Mathf.Tan(cam.fov * Mathf.Deg2Rad * .5f) * cam.farClipPlane * 2;
Vector3 scale = new Vector3(h * cam.aspect, h, cam.farClipPlane);
newBounds.center = cam.transform.position + cam.transform.forward * (cam.farClipPlane/2);
newBounds.size = scale;
每当我们在BoxCollider上设置边界时,我们只设置边界的大小和中心,这些边界包含相对于局部位置和旋转的大小和圆心所以,你不需要为旋转编写代码,只需设置
transform.GetComponent<BoxCollider>().center
和transform.GetComponent<BoxCollider>().size
边界将根据游戏对象的变换自动旋转