Unity3D WebGL开发踩坑

1.打包报错问题

转换个WebGL平台直接打包出错,最后发现是项目的存储路径存在中文,换成全英文的路径问题解决

2.使用UnityWebRequest方法问题

本地打包本地打开调用UnityWebRequest的Get和Post方法都出现Unknown Error报错。

最后发布到服务器上后问题解决。一定要发布到服务器测试,不然仅仅是打开打包出的Html文件,很多问题测不出来,也会误导自己。

3.新开窗口跳转对应url问题

unity的API仅仅支持 Application.OpenURL("http://www.baidu.com");这个方法,这个方法会直接再当前的页面跳转。

想另开一个页面跳转需要在Assets/Plugins文件夹下创建一个.jslib文件,文件内容为:

mergeInto(LibraryManager.library,
    {
        OpenPage: function (str) {
            window.open(Pointer_stringify(str));
        },
    });

文件的名字随意,如:aaa.jslib

在C#脚本中调用即可

    //加入以下声明
    [DllImport("__Internal")]
    private static extern void OpenPage(string str);

    /// <summary>
    /// 跳转到web
    /// </summary>
    public void ToWeb()
    {
        OpenPage("http://www.baidu.com");
    }

4.网页屏幕自适应

unity 打包好WebGL后,用文本编辑器编辑打包生成的 index.html 文件

在生成的html里面修改代码
    <script type="text/javascript">
      function Reset() {
       var canvas = document.getElementById("#canvas"); 
       canvas.height= document.documentElement.clientHeight;
       canvas.width = document.documentElement.clientWidth; 
       console.log(canvas.width );
     } 
    </script>
  </head>
  <body οnlοad="Reset()" οnresize="Reset()">
      <div class="webgl-content"style="width: 100%; height: 100%" >
      <div id="gameContainer" style="width: 100%; height: 100%"></div>
      </div>
  </body>
</html>
来实现网页版随浏览器自适应

猜你喜欢

转载自blog.csdn.net/weixin_41573444/article/details/115953428