关于Unity3D的PC游戏窗口化时的分辨率解决方案

 void Start()
    {
        //16:9任意拉伸
        aspect16_9 = 1.777777778f;
        Camera.main.aspect = aspect16_9;
    }

  private void OnPreRender()
    {
        //窗口化中拉伸窗口时等比例缩放以保持16:9
        float currentAspect = System.Convert.ToSingle((double)Screen.width / Screen.height);
        if (currentAspect > Camera.main.aspect)
        {
            Camera.main.pixelRect = new Rect(0, 0, Screen.height * 16 / 9.0f, Screen.height);
            Camera.main.pixelRect = new Rect(Screen.width / 2 - Camera.main.pixelWidth / 2, Screen.height / 2 - Camera.main.pixelHeight / 2, Camera.main.pixelWidth, Camera.main.pixelHeight);
        }
        else if (currentAspect < Camera.main.aspect)
        {
            Camera.main.pixelRect = new Rect(0, 0, Screen.width, Screen.width / 16.0f * 9);
            Camera.main.pixelRect = new Rect(Screen.width / 2 - Camera.main.pixelWidth / 2, Screen.height / 2 - Camera.main.pixelHeight / 2, Camera.main.pixelWidth, Camera.main.pixelHeight);
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值