C# Unity5中的摄像机单元

C# Unity5中的摄像机单元,c#,unity3d,camera,unity5,C#,Unity3d,Camera,Unity5,我目前正在编写一个2D topview unity游戏。我想设置相机,比如,只有一个特定的区域是可见的。这意味着我知道我所在区域的大小,当跟随玩家的相机当前到达该区域的边界时,我希望看到停止 所以我的问题是:我知道摄像机在哪里,它如何跟随球员,但我不知道如何计算场地边界和摄像机看到的东西边界之间的距离。我该怎么做呢?基本上,将可玩区域视为矩形。然后,在该矩形内制作一个较小的矩形,用于计算相机的水平边界。计算水平边界时,不要忘记包括相机的边界 Rect myArea; /

我目前正在编写一个2D topview unity游戏。我想设置相机,比如,只有一个特定的区域是可见的。这意味着我知道我所在区域的大小,当跟随玩家的相机当前到达该区域的边界时,我希望看到停止


所以我的问题是:我知道摄像机在哪里,它如何跟随球员,但我不知道如何计算场地边界和摄像机看到的东西边界之间的距离。我该怎么做呢?

基本上,将可玩区域视为矩形。然后,在该矩形内制作一个较小的矩形,用于计算相机的水平边界。计算水平边界时,不要忘记包括相机的边界

Rect myArea;              // this stores the bounds of your playable area
Camera cam;               // this is your orthographic camera, probably Camera.main
GameObject playerObject;  // this is your player

float newX = Mathf.Clamp(
   playerObject.transform.position.x,
   myArea.xMin + cam.orthographicSize * cam.aspect,
   myArea.xMax - cam.orthographicSize * cam.aspect
);
float newY = Mathf.Clamp(
   playerObject.transform.position.y,
   myArea.yMin + cam.orthographicSize,
   myArea.yMax - cam.orthographicSize
);

cam.transform.position = new Vector3(newX,newY,cam.transform.position.z);
如果您使用的是另一个平面(例如xz而不是xy),只需在所有计算中交换相应的尺寸