Image Unity-3d-5 16:9至其他分辨率的缩放图像

Image Unity-3d-5 16:9至其他分辨率的缩放图像,image,unity3d,sprite,scaling,Image,Unity3d,Sprite,Scaling,所以我创建了一个蛇游戏,用2d精灵创建了一个边界。我的游戏窗口设置为16:9,在这个分辨率下,图像看起来很好。然而,扩展到其他任何东西都会让游戏看起来很奇怪。我希望游戏窗口重新调整大小。如何根据当前分辨率使精灵拉伸和收缩 我已经尝试过创建一个宽度为120、高度为1的精灵,然后使用x、y、z比例将比例更改为16。这产生了一个巨大的精灵 我正在尝试使用画布缩放器,但没有成功 我的最终目标不是让我的游戏符合预定义的分辨率,如16:9,而是根据当前窗口大小进行缩放。因此,如果他们使窗口非常薄,游戏将只

所以我创建了一个蛇游戏,用2d精灵创建了一个边界。我的游戏窗口设置为16:9,在这个分辨率下,图像看起来很好。然而,扩展到其他任何东西都会让游戏看起来很奇怪。我希望游戏窗口重新调整大小。如何根据当前分辨率使精灵拉伸和收缩

  • 我已经尝试过创建一个宽度为120、高度为1的精灵,然后使用x、y、z比例将比例更改为16。这产生了一个巨大的精灵
  • 我正在尝试使用画布缩放器,但没有成功
  • 我的最终目标不是让我的游戏符合预定义的分辨率,如16:9,而是根据当前窗口大小进行缩放。因此,如果他们使窗口非常薄,游戏将只使顶部和底部边界非常薄,同时仍将游戏限制在边界中
下面我发布了我的精灵是如何设置的截图。以及如何将它们放入层次结构中

  • 边框精灵-这个精灵的宽度现在是70像素,因为这是如何给我的

  • 层次、位置、比例和旋转中的边框是默认值。然后,例如,沿y轴移动BorderTop 25以将其移动到屏幕顶部

  • 摄像机设置
示例分辨率和当前输出

  • 16:9
  • 5:4

为每个边框添加一个简单的脚本:

public class Border : MonoBehaviour {

    enum BorderTypes
    {
        bottom, top, left, right
    }

    [SerializeField] float borderOffset = 0.1f;
    [SerializeField] BorderTypes type = BorderTypes.top;

    // Use this for initialization
    void Start () {
        switch (type)
        {
            case BorderTypes.bottom:
                transform.position = Camera.main.ViewportToWorldPoint(new Vector3(0.5f, borderOffset, 10));
                break;
            case BorderTypes.top:
                transform.position = Camera.main.ViewportToWorldPoint(new Vector3(0.5f, 1 - borderOffset, 10));
                break;
            case BorderTypes.left:
                transform.position = Camera.main.ViewportToWorldPoint(new Vector3(borderOffset, 0.5f, 10));
                break;
            case BorderTypes.right:
                transform.position = Camera.main.ViewportToWorldPoint(new Vector3(1 - borderOffset, 0.5f, 10));
                break;
            default:
                break;
        }
    }
}

您可以使用一种简单的方法:

  • 首先,创建画布
  • 在Inspector的画布组件中,将
    渲染模式
    设置为
    屏幕空间-摄影机
    ,并将主摄影机拖动到
    渲染摄影机
    字段

  • 然后,在Inspector窗口中的Canvas Scaler组件中,将
    UI缩放模式
    设置为
    Scale Width Screen Size
    以及类似此图像的其他设置

  • 现在将游戏对象拖到画布上


首先,您不应该更改精灵。您的问题是一个游戏视口。在“全屏”中,每个设备上都不能有16:9的固定纵横比。这里有两个选项:

  • 不要在意纵横比,调整你的游戏性,让你的画布缩放模式为“随屏幕大小缩放”,参考分辨率为1920x1080或1600:900或800:450。你的游戏逻辑必须考虑到你可能有不同大小的屏幕。您可以通过在游戏视图中切换不同的纵横比在编辑器中进行实验
  • 保持16:9,因此当游戏初始化时,计算在哪里添加“条”(边或上下)