Unity 2D背景实现

时间:2014-08-18 11:51:11

标签: background camera unity3d

我试图使用固定的背景。我作为相机的孩子添加了图像,并将其调整大小以填充相机视图。在团结播放器中似乎很好但是当我在我的Android设备上运行它时,背景似乎很短。我在屏幕的左右两侧看到一些空白区域。 正交尺寸为6。

1 个答案:

答案 0 :(得分:2)

这将定位一个平面或四边形并缩放它以便它将填满屏幕。它在正交和透视中都有效。 Orthegrphic大小无关紧要。

步骤1 - 在场景中创建一个Plane对象。

第2步 - 将此脚本添加到创建的对象中。

第3步 - 脚本将自动调整大小并定位在近剪辑

using UnityEngine;

public class FillScreenPlane:MonoBehaviour
{
    public float lUnityPlaneSize = 10.0f; // 10 for a Unity3d plane
    void Update()
    {
        Camera lCamera = Camera.main;

        if(lCamera.isOrthoGraphic)
        {
            float lSizeY = lCamera.orthographicSize * 2.0f;
            float lSizeX = lSizeY *lCamera.aspect;
            transform.localScale = new Vector3(lSizeX/lUnityPlaneSize, 1,lSizeY/lUnityPlaneSize);
        }
        else
        {
            float lPosition = (lCamera.nearClipPlane + 0.01f);
            transform.position = lCamera.transform.position + lCamera.transform.forward * lPosition;
            transform.LookAt (lCamera.transform);
            transform.Rotate (90.0f, 0.0f, 0.0f);

            float h = (Mathf.Tan(lCamera.fov*Mathf.Deg2Rad*0.5f)*lPosition*2f) /lUnityPlaneSize;
            transform.localScale = new Vector3(h*lCamera.aspect,1.0f, h);
        }
    }
}