Unity发布WebGL动态改变分辨率大小

本文介绍如何在HTML中使用JavaScript修改画布大小,并同步调整Unity游戏引擎中的分辨率,确保两者尺寸一致,实现跨平台尺寸同步。通过具体代码示例,展示了修改HTML画布尺寸的方法以及如何在Unity中接收并应用这些尺寸变更。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

修改画布大小
在html中修改画布大小

      function resetSize1() {
		  //修改画布大小
          document.getElementById("#canvas").style.width = "100px";
          document.getElementById("#canvas").style.height = "100px";
          document.getElementById("gameContainer").style.width = "100px";
          document.getElementById("gameContainer").style.height = "100px";
          //发送指令修改Unity中分辨率的大小
          gameInstance.SendMessage("GameObject","ResetSolution",100 + ":" + 100);
      }

在Unity中修改分辨率大小

public void ResetSolution(string size)
    {
        int width = 0;
        int height = 0;
        string[] widthAndHeight = size.Split(':');
        if (widthAndHeight.Length == 2)
        {
            width = int.Parse(widthAndHeight[0]);
            height = int.Parse(widthAndHeight[1]);
            Screen.SetResolution(width, height, false);
        }
    }

必须做到在修改画布大小的同时修改Unity中分辨率的大小才能实现同步操作。

使用2021版本unity发布webgl,下面代码怎么修改<!DOCTYPE html> <html lang="en-us"> <head> <meta charset="utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title> Unity WebGL </title> <link rel="shortcut icon" href="TemplateData/favicon.ico"> <link rel="stylesheet" href="TemplateData/style.css"> <script src="TemplateData/UnityProgress.js"></script> <script src="Build/UnityLoader.js"></script> <!-- 在这里加入CSS规则 --> <style> body, html { margin: 0; padding: 0; height: 100%; width: 100%; /* 保证占满整个屏幕宽度 */ overflow: hidden; /* 防止出现滚动条 */ display: flex; justify-content: center; align-items: center; } #unityContainer { width: 100% !important; height: 100% !important; background-color: black; /* 可选,设置背景颜色 */ } canvas { width: 100%; height: 100%; } </style> <script> var unityInstance = UnityLoader.instantiate("unityContainer", "Build/githubstone_new.json", { onProgress: UnityProgress }); window.addEventListener("resize", OnResize); // 拆分参数处理逻辑为独立函数 function OnResize() { unityInstance.SendMessage("DebugText", "SetWidth", window.innerWidth); unityInstance.SendMessage("DebugText", "SetHeight", window.innerHeight); unityInstance.SendMessage("DebugText", "OnResize"); // 触发Unity中的分辨率更新 unityInstance.SendMessage('DebugText', 'ForceRefresh'); } </script> </head> <body style="margin:0; overflow:hidden;"> <div id="unityContainer"></div> </body> </html>
最新发布
07-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值