所以我创建了一个蛇游戏,其边框是用 2d 精灵创建的。我将游戏窗口设置为 16:9,在此分辨率下图像看起来不错。然而,扩展到其他任何东西开始让游戏看起来很奇怪。我想要调整游戏窗口的大小。如何让我的精灵根据当前分辨率拉伸和收缩?
- 我已经尝试创建一个宽度为 120、高度为 1 的精灵,然后使用 x、y、z 比例将比例更改为 16。这产生了一个巨大的精灵。
- 我正在尝试使用画布缩放器,但没有成功。
- 我的最终目标不是让我的游戏适合 16:9 等预定义的分辨率,而是根据当前窗口大小进行缩放。因此,如果他们使窗口变得非常薄,游戏只会使顶部和底部边框变得非常薄,同时仍然将游戏限制在边框内。
下面我发布了我的精灵如何设置的屏幕截图。以及如何将它们放入层次结构中。
- 边框精灵 - 这个精灵的宽度现在是 70 像素,因为这就是它给我的方式。
- 层次结构中的边框、位置、比例和旋转均为默认值。然后,例如将 BorderTop 在 y 轴上移动 25,将其移动到屏幕顶部。
- Camera setup
分辨率和电流输出示例
- 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;
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)