Unity5 中的相机单元

Camera units in Unity5

我目前正在编写 2D topview unity 游戏。我想将相机设置为只显示特定区域。这意味着我知道我的区域的大小,并且当跟随玩家的相机当前到达该区域的边界时,我希望可见停止。

所以这是我的问题:我知道摄像机在哪里以及它如何跟随玩家,但我不知道如何计算场地边界与摄像机看到的边界之间的距离。我该怎么做?

基本上,将您的可玩区域视为一个矩形。然后,在该矩形内创建一个较小的矩形,该矩形在计算水平边界时占相机的 orthographic size. Don't forget to include the aspect ratio

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),只需换掉所有平面中的相应尺寸计算。