Unity WebGL 关于构建webgl应用模板设置

这篇具有很好参考价值的文章主要介绍了Unity WebGL 关于构建webgl应用模板设置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如果你想要修改unity 自带的webgl 启动样式,那么你需要在unity Assets 文件夹目录下添加如下目录

 webgl builds are not supported on mobile devices,Unity,unity

WebGLTemplates 目录是 unity 指定名称的目录,你可以在这个目录下新建你自己的模板目录 名字随意,然后在你需要找一下 你unity 的Default模板文件 ,在你unity 安装目录的  Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\WebGLTemplates\Default

webgl builds are not supported on mobile devices,Unity,unity

 其中 TemplateData 中放置的是WebGL 使用的图片 和 html 使用的样式文件

webgl builds are not supported on mobile devices,Unity,unity

webgl builds are not supported on mobile devices,Unity,unity

index.html 就是网页模板文件 修改网页模板样式 主要是修改这个文件

thumbnail.png 是在unity 模板选择 显示得缩略图,没有也不要紧,把 Default 文件夹里面的文件都复制到你自己的模板文件夹

webgl builds are not supported on mobile devices,Unity,unity

接下来 主要说一下 index 文件

<!DOCTYPE html>
<html lang="en-us">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<!--选项卡标题  可以随意修改  <title>xxxxxxxxxxxx</title> 这样都是可以的  -->
    <title>Unity WebGL Player | {{{ PRODUCT_NAME }}}</title>
	<!--选项卡icon  一般替换TemplateData 里面的 favicon.ico 图片就可以了-->
    <link rel="shortcut icon" href="TemplateData/favicon.ico">
	<!--这个不懂前段开发一般不建议修改-->
    <link rel="stylesheet" href="TemplateData/style.css">
  </head>
  <body>
    <div id="unity-container" class="unity-desktop">
      <canvas id="unity-canvas" width={{{ WIDTH }}} height={{{ HEIGHT }}}></canvas>
	  <!--这个是进度条和大logo部分-->
      <div id="unity-loading-bar">
		<!-- 这个是大logo 他的图片在TemplateData文件夹中 样式 在Style.css 中  下方所有的图片和这个同理  如果不想要logo 可以直接注释掉-->
        <div id="unity-logo"></div>
		<!--进度条-->
        <div id="unity-progress-bar-empty">
          <div id="unity-progress-bar-full"></div>
        </div>
      </div>
	  <!--警告的显示区域-->
      <div id="unity-warning"> </div>
	  <!--这个是页面下方的logo和全屏显示的按钮 不想要可以全部注释-->
      <div id="unity-footer">
        <div id="unity-webgl-logo"></div>
        <div id="unity-fullscreen-button"></div>
        <div id="unity-build-title">{{{ PRODUCT_NAME }}}</div>
      </div>
    </div>
    <script>
      var container = document.querySelector("#unity-container");
      var canvas = document.querySelector("#unity-canvas");
      var loadingBar = document.querySelector("#unity-loading-bar");
      var progressBarFull = document.querySelector("#unity-progress-bar-full");
	  //上面4条一般不做修改,下面这2条是处理全屏按钮事件和警告信息显示的  不想要可以删除  但是注意 下方代码中有引用 要一并都去掉
      var fullscreenButton = document.querySelector("#unity-fullscreen-button");
      var warningBanner = document.querySelector("#unity-warning");

      // Shows a temporary message banner/ribbon for a few seconds, or
      // a permanent error message on top of the canvas if type=='error'.
      // If type=='warning', a yellow highlight color is used.
      // Modify or remove this function to customize the visually presented
      // way that non-critical warnings and error messages are presented to the
      // user.
	  
	  //显示一个临时的消息窗口几秒钟,如果type=='error'显示一个永久的错误消息在画布顶部。
	  //如果type=='warning',则使用黄色高亮显示。
	  //修改或删除此功能,以自定义向用户显示非关键警告和错误消息的可视化显示方式。
	  // 这个方法可以删除 ,删掉后就不会再有讨厌的报错弹窗的 如果删除的话下方方法调用也一并删除
      function unityShowBanner(msg, type) {
        function updateBannerVisibility() {
          warningBanner.style.display = warningBanner.children.length ? 'block' : 'none';
        }
        var div = document.createElement('div');
        div.innerHTML = msg;
        warningBanner.appendChild(div);
        if (type == 'error') div.style = 'background: red; padding: 10px;';
        else {
          if (type == 'warning') div.style = 'background: yellow; padding: 10px;';
          setTimeout(function() {
            warningBanner.removeChild(div);
            updateBannerVisibility();
          }, 5000);
        }
        updateBannerVisibility();
      }

      var buildUrl = "Build";
      var loaderUrl = buildUrl + "/{{{ LOADER_FILENAME }}}";
      var config = {
        dataUrl: buildUrl + "/{{{ DATA_FILENAME }}}",
        frameworkUrl: buildUrl + "/{{{ FRAMEWORK_FILENAME }}}",
#if USE_WASM
        codeUrl: buildUrl + "/{{{ CODE_FILENAME }}}",
#endif
#if MEMORY_FILENAME
        memoryUrl: buildUrl + "/{{{ MEMORY_FILENAME }}}",
#endif
#if SYMBOLS_FILENAME
        symbolsUrl: buildUrl + "/{{{ SYMBOLS_FILENAME }}}",
#endif
        streamingAssetsUrl: "StreamingAssets",
        companyName: "{{{ COMPANY_NAME }}}",
        productName: "{{{ PRODUCT_NAME }}}",
        productVersion: "{{{ PRODUCT_VERSION }}}",
        showBanner: unityShowBanner,
      };

      // By default Unity keeps WebGL canvas render target size matched with
      // the DOM size of the canvas element (scaled by window.devicePixelRatio)
      // Set this to false if you want to decouple this synchronization from
      // happening inside the engine, and you would instead like to size up
      // the canvas DOM size and WebGL render target sizes yourself.
	  //默认情况下,Unity保持WebGL画布渲染目标大小与画布元素的DOM大小相匹配(由window.devicePixelRatio缩放),如果你想从引擎内部分离这种同步
	  //要自己调整画布DOM大小和WebGL渲染目标大小,将此设置为false。
      // config.matchWebGLToCanvasSize = false;

      if (/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)) {
        // Mobile device style: fill the whole browser client area with the game canvas:

        var meta = document.createElement('meta');
        meta.name = 'viewport';
        meta.content = 'width=device-width, height=device-height, initial-scale=1.0, user-scalable=no, shrink-to-fit=yes';
        document.getElementsByTagName('head')[0].appendChild(meta);
        container.className = "unity-mobile";

        // To lower canvas resolution on mobile devices to gain some
        // performance, uncomment the following line:
        // config.devicePixelRatio = 1;

        canvas.style.width = window.innerWidth + 'px';
        canvas.style.height = window.innerHeight + 'px';
		//如果想要在手机上运行要删除掉下面这条报错的调用 其实这个放在这就是为了不让手机用户使用
        //unityShowBanner('WebGL builds are not supported on mobile devices.');
      } else {
        // Desktop style: Render the game canvas in a window that can be maximized to fullscreen:
		
		//这个是unity里设置的宽高
        //canvas.style.width = "{{{ WIDTH }}}px";
        //canvas.style.height = "{{{ HEIGHT }}}px";
		//这样写可实现窗口自适应浏览器大小,不需要再关注unity设置的宽高
		canvas.style.width = "99vw";
		canvas.style.height = "99vh";
      }

#if BACKGROUND_FILENAME
      canvas.style.background = "url('" + buildUrl + "/{{{ BACKGROUND_FILENAME.replace(/'/g, '%27') }}}') center / cover";
#endif
      loadingBar.style.display = "block";

	//在这可以声明一个GameInstance变量来留作unity和js交互
	  var GameInstance = null;
      var script = document.createElement("script");
      script.src = loaderUrl;
      script.onload = () => {
        createUnityInstance(canvas, config, (progress) => {
          progressBarFull.style.width = 100 * progress + "%";
        }).then((unityInstance) => {
          loadingBar.style.display = "none";
		  GameInstance = unityInstance;
		  //绑定全屏按钮的事件
          fullscreenButton.onclick = () => {
            unityInstance.SetFullscreen(1);
          };
        }).catch((message) => {
          alert(message);
        });
      };
      document.body.appendChild(script);
    </script>
  </body>
</html>

最后看一下style.css文件 

body { padding: 0; margin: 0 }
#unity-container { position: absolute }
#unity-container.unity-desktop { left: 50%; top: 50%; transform: translate(-50%, -50%) }
#unity-container.unity-mobile { width: 100%; height: 100% }
#unity-canvas { background: {{{ BACKGROUND_COLOR }}} }
.unity-mobile #unity-canvas { width: 100%; height: 100% }
#unity-loading-bar { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: none }
#unity-logo { width: 154px; height: 130px; background: url('unity-logo-{{{ SPLASH_SCREEN_STYLE.toLowerCase() }}}.png') no-repeat center }
#unity-progress-bar-empty { width: 141px; height: 18px; margin-top: 10px; margin-left: 6.5px; background: url('progress-bar-empty-{{{ SPLASH_SCREEN_STYLE.toLowerCase() }}}.png') no-repeat center }
#unity-progress-bar-full { width: 0%; height: 18px; margin-top: 10px; background: url('progress-bar-full-{{{ SPLASH_SCREEN_STYLE.toLowerCase() }}}.png') no-repeat center }
#unity-footer { position: relative }
.unity-mobile #unity-footer { display: none }
#unity-webgl-logo { float:left; width: 204px; height: 38px; background: url('webgl-logo.png') no-repeat center }
#unity-build-title { float: right; margin-right: 10px; line-height: 38px; font-family: arial; font-size: 18px }
#unity-fullscreen-button { float: right; width: 38px; height: 38px; background: url('fullscreen-button.png') no-repeat center }
#unity-warning { position: absolute; left: 50%; top: 5%; transform: translate(-50%); background: white; padding: 10px; display: none }

里面都是每块布局的位置 和图片引用信息文章来源地址https://www.toymoban.com/news/detail-522335.html

到了这里,关于Unity WebGL 关于构建webgl应用模板设置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • unity webgl 系列(2):从webgl内存中下载文件到本地硬盘

    前面是将文件上传到webgl进程,本篇是将文件从webgl进程中下载文件到浏览器的下载目录中。 通用,只需要 二进制数组和文件名。 添加一段代码 解释:接收三个字符串:由文件二进制转换出来的二进制字符串、xxx.yy文件名、文件类型。 统一经过Pointer_stringify转化为js字符串,

    2024年04月17日
    浏览(38)
  • Unity WebGL实战笔记

    笔者版本为:Unity2021.3.8f1 Unity提供了WebGL平台来,支持在浏览器中实时对3D图形应用交互。 模版 Player-Resolution and Presentation-WebGL Template 默认是Default,这个模版有加载进度条,且在程序出错会弹出提示框。还有一个Minimal模版,没有进度条加载等流程,且程序出错无提示信息。

    2024年02月02日
    浏览(51)
  • Unity WebGL三维地球

    1.支持arcgis,天地图,bingmap,谷歌地图,高德地图等影像加载 2.支持高程三维地形加载 3.支持在线,离线数据加载 4.支持unity坐标和经纬度坐标互相转换 5.支持fbx模型放置在地球上 6.支持倾斜摄影数据放置在地球上 7.支持pc,webgl平台发布 weixin:huazaikv 相关视频: unity三维地球_W

    2024年02月12日
    浏览(33)
  • Unity WebGL发布页面报错

    1、报错内容 Unable to parse Build/test.framework.js.gz! This can happen if build compression was enabled but web server hosting the content was misconfigured to not serve the file with HTTP Response Header \\\"Content-Encoding: gzip\\\" present. Check browser Console and Devtools Network tab to debug. 2、报错页面 解决方案,在Unity的WebGL Player S

    2024年02月16日
    浏览(39)
  • Unity WebGL获取地址栏参数

    1、在Assets/Plugins/WebGL文件夹下创建MyPlugin.jslib文件 文件内容: 2、创建脚本显示地址 3、BuildAndRun或者打包后用IIS部署一个服务器运行就行了

    2024年02月15日
    浏览(44)
  • Unity打包WebGL: 导入Vue

    1.1 任务 记录将 Unity 项目打包成 WebGL ,并集成到 Vue 项目中的过程。 1.2 环境 Unity : 2021.3 Vue : 2 2.1 UI 界面 2.2 添加插件 构建 WebGL 项目需要添加一个 .jslib 文件,用于 Unity 脚本函数与 JavaScript 函数交互 详细内容参考:Unity(WebGL)与JS通讯2022最新姿势 web.jslib 文件内容 2.3 添加脚

    2024年02月11日
    浏览(37)
  • unity WebGL 发布服务后出错

    解决办法:需要在IIS中添加unity3d和unityweb两个mime 1、电脑怎么添加mime 2、UNITY3D WEBGL IIS发布添加MIME类型 我在添加unity3d和unityweb两个mime后 已经解决此问题

    2024年02月11日
    浏览(47)
  • unity发布WebGl在手机上的横屏适配,webgl横版游戏在手机上直接转横屏

    unity版本2020.1 问题:webgl的横版游戏 1920*1080,在手机上适配的不好,还是竖屏显示, 使用官方的说明,说是只在全屏模式下能旋转,也不好用,可能直接旋转也不会达到理想的效果 解决方案: 1.我这边使用的方案是UI的适配,UGUI,采用的是两套UI,根据不同平台加载不同的资源

    2024年02月02日
    浏览(47)
  • 基于 HTML5 WebGL 构建智能数字化城市 3D 全景

    前言 自 2011 年我国城镇化率首次突破 50% 以来,《新型城镇化发展规划》将智慧城市列为我国城市发展的三大目标之一,并提出到 2020 年,建成一批特色鲜明的智慧城市。截至现今,全国 95% 的副省级以上城市、76% 的地级以上城市,总计约 500 多个城市提出或在建智慧城市。

    2024年02月21日
    浏览(62)
  • Unity在网页上运行WebGL问题

    项目要开发B/S模式,需要使用WebGL,目前还是前期阶段,遇到了几个问题,在此记录一下。 Unity版本:2019.4 浏览器:谷歌浏览器 目前按照Unity默认设置打包。 如果是BuildAndRun可以直接运行,但是如果是Build显示下面错误: It seems your browser does not support running Unity WebGL content from

    2023年04月08日
    浏览(84)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包