Image Unity-3d-5 16:9至其他分辨率的缩放图像
所以我创建了一个蛇游戏,用2d精灵创建了一个边界。我的游戏窗口设置为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,而是根据当前窗口大小进行缩放。因此,如果他们使窗口非常薄,游戏将只
- 我已经尝试过创建一个宽度为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
- 现在将游戏对象拖到画布上