赞
踩
视频效果:
top left 无效,无法居中显示游戏内容
原因; position 不能是 static 改为absolute
- <canvas id="unity-canvas"
- style=" position: absolute; width: 1920px; height: 1080px;">
- </canvas>
留白改为黑色
-
- <style>
- html
- {
- background-color: black;
- }
- </style>
- <script>
- var unityContainer = document.getElementById('unity-canvas');
- function unityContainerResize()
- {
- var w = window.innerWidth || document.body.clientWidth,
- h = window.innerHeight || document.body.clientHeight,
- ratio = 16 / 9,
- r = w/h;
- var setW, setH, setTop, setLeft;
- if (r >= ratio) { // 高度撑满
- setW = h * ratio;
- setLeft = (w - setW) / 2;
- } else { // 宽度撑满
- setH = w / ratio;
- setTop = (h - setH) / 2;
- }
-
-
- unityContainer.style.width = (setW || w) + 'px';
- unityContainer.style.height = (setH || h) + 'px';
- unityContainer.style.top = (setTop || 0) + 'px';
- unityContainer.style.left = (setLeft || 0) + 'px';
-
- }
- window.addEventListener('resize', unityContainerResize)
- unityContainerResize()
- </script>
- <canvas id="unity-canvas"
- style=" position: absolute; width: 1920px; height: 1080px;">
- </canvas>
- <style>
- html
- {
- background-color: black;
- }
- </style>
在unity打包后的文件夹下面名字是index.html
按照上方修改步骤进行
- <!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 Player | TestWebGL</title>
- <link rel="shortcut icon" href="TemplateData/favicon.ico">
- <link rel="stylesheet" href="TemplateData/style.css">
- <link rel="manifest" href="manifest.webmanifest">
- </head>
- <body>
- <div id="unity-container">
- <canvas id="unity-canvas" style=" position: absolute; width: 1920px; height: 1080px;"></canvas>
- <div id="unity-loading-bar">
- <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>
- </div>
-
- <script>
-
- window.addEventListener("load", function () {
- if ("serviceWorker" in navigator) {
- navigator.serviceWorker.register("ServiceWorker.js");
- }
- });
-
- 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");
- 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.
- 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 + "/TestWebGL.loader.js";
- var config = {
- dataUrl: buildUrl + "/TestWebGL.data",
- frameworkUrl: buildUrl + "/TestWebGL.framework.js",
- codeUrl: buildUrl + "/TestWebGL.wasm",
- streamingAssetsUrl: "StreamingAssets",
- companyName: "DefaultCompany",
- productName: "TestWebGL",
- productVersion: "0.1",
- 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.
- // 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);
- }
-
- loadingBar.style.display = "block";
-
- 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";
- }).catch((message) => {
- alert(message);
- });
- };
- document.body.appendChild(script);
- </script>
-
-
- <script>
- // 自适应代码块
- var unityContainer = document.getElementById('unity-canvas');
- function unityContainerResize()
- {
- var w = window.innerWidth || document.body.clientWidth,
- h = window.innerHeight || document.body.clientHeight,
- ratio = 16 / 9,
- r = w/h;
- var setW, setH, setTop, setLeft;
- if (r >= ratio) { // 高度撑满
- setW = h * ratio;
- setLeft = (w - setW) / 2;
- } else { // 宽度撑满
- setH = w / ratio;
- setTop = (h - setH) / 2;
- }
-
-
- unityContainer.style.width = (setW || w) + 'px';
- unityContainer.style.height = (setH || h) + 'px';
- unityContainer.style.top = (setTop || 0) + 'px';
- unityContainer.style.left = (setLeft || 0) + 'px';
-
- }
- window.addEventListener('resize', unityContainerResize)
- unityContainerResize()
- </script>
-
- </body>
-
- <style>
- html
- {
- background-color: black;
- }
- </style>
- </html>
代码借鉴的不同帖子的代码非完全原创
仅仅作为记录!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。