赞
踩
思路:从通过jslib插件从浏览器中获取屏幕分辨率数据,然后将数据传回Unity通过Screen.SetResolution()函数设置画布大小。
1.编写jslib插件中获取分辨率大小代码(jslib插件编写方法具体可以去看官方文档,里面描写比较细致),分别获取高和宽:
GetWindowWidth:function()
{
//屏幕宽度 var width = window.screen.width;
var width = window.screen.availWidth
return width;
},
GetWindowHeight:function()
{
// 屏幕高度 var height = window.screen.height;
var height = window.screen.availHeight;//浏览器可用高度,减去工具栏、地址输入框等
return height;
},
因为window.screen.height是获取整个屏幕的高度不太符合我们的需求,所以没用这个方法;
window.screen.availHeight //浏览器可用高度,减去工具栏、地址输入框等
window.screen.availWidth//浏览器可用宽度,减去工具栏、地址输入框等
2.Unity项目中C#编写调用GetWindowWidth、GetWindowHeight的方法获取分辨率数据。
[DllImport("__Internal")]
private static extern int GetWindowWidth();
[DllImport("__Internal")]
private static extern int GetWindowHeight();
//获取到窗口可用大小
public static Vector2 GetWindowSize()
{
int w = GetWindowWidth();
int h = GetWindowHeight();
return new Vector2(w, h);
}
3.继续再jslib插件中添加修改画布大小的代码。因为如果没有在html页面修改画布大小的话直接在Unity中调用Screen.SetResolution()函数并不会有效果。在jslib文件中添加代码设置页面大小:
ResetCanvasSize:function(width,height)
{
//修改画布大小
document.getElementById("unityContainer").style.width = width + "px";
document.getElementById("unityContainer").style.height = height + "px";
},
getElementById(“unityContainer”)这段代码在不同版本的Unity中getElementById()函数使用的参数是不同的,我的版本是2019.3.14,所以使用"unityContainer"。具体的传参值可以打开你安装相应版本的unity打包webgl项目出来的index.html中id对应的字符串:
4.Unity项目中添加调用设置画布大小代码:
[DllImport("__Internal")] private static extern void ResetCanvasSize(int width, int height); //设置自定义分辨率 public static void SetCustonCanvasSize(int width, int height) { ResetCanvasSize(width, height); Screen.SetResolution(width, height, false); } //设置最大屏幕适配分辨率 public static void SetCanvasMaxSize() { Vector2 vector2 = GetWindowSize(); int width, height; if (vector2.x / vector2.y > 1.77) //1.77 = 16/9;//16:9画布比例 { width = (int)(vector2.y * 1.77); height = (int)vector2.y; ResetCanvasSize(width, height); } else { width = (int)(vector2.x); height = (int)(vector2.x / 1.77); ResetCanvasSize(width, height); } Screen.SetResolution(width, height, false); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。