【问题标题】:Unity 2D Background ImplementationUnity 2D 后台实现
【发布时间】:2014-08-18 11:51:11
【问题描述】:

我正在尝试使用固定背景。我将图像添加为相机的子对象,并将其调整大小以填充相机视图。在统一播放器中看起来不错,但是当我在我的 android 设备上运行它时,背景似乎很短。我在屏幕的左右两侧看到一些空白区域。 正交大小为 6。

【问题讨论】:

  • 不包含问题及其离题。发生这种情况是因为您的计算机和 Android 设备具有不同的宽高比。
  • 它实际上包含一个问题。但不是每个人都能看到。

标签: background camera unity3d


【解决方案1】:

这将定位一个平面或四边形并对其进行缩放以填满屏幕。它适用于正交和透视。正交大小无关紧要。

第 1 步 - 在场景中创建一个平面对象。

第 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);
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多