123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- <!DOCTYPE html>
- <html lang="en-us">
- <head>
- <meta charset="utf-8">
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>无尽藏</title>
- <link rel="shortcut icon" href="TemplateData/favicon.ico">
- <link rel="stylesheet" href="TemplateData/style.css">
- <link rel="manifest" href="manifest.webmanifest">
- <link rel="stylesheet" href="./index.css">
- </head>
- <body>
- <div id="unity-container">
- <canvas id="unity-canvas" tabindex="-1"></canvas>
- <div id="unity-loading">
- <img id="unity-loading-bg" src="./TemplateData/bg_game.png" alt="" />
- <img id="unity-loading-paper" src="./TemplateData/img_paper.png" alt="" />
- <img id="unity-loading-brush" src="./TemplateData/img_brush.png" alt="" />
- <img id="unity-loading-progress" src="./TemplateData/progress.png" alt="" />
- <span id="unity-loading-progress-text"></span>
- </div>
-
- <div id="unity-warning"> </div>
- </div>
- <script>
- window.addEventListener("load", function () {
- if ("serviceWorker" in navigator) {
- navigator.serviceWorker.register("ServiceWorker.js");
- }
- });
- let container = document.querySelector("#unity-container");
- let canvas = document.querySelector("#unity-canvas");
- let 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';
- }
- let
- 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();
- }
- let buildUrl = "Build";
- let loaderUrl = buildUrl + "/Build.loader.js";
- let config = {
- dataUrl: buildUrl + "/Build.data.unityweb",
- frameworkUrl: buildUrl + "/Build.framework.js.unityweb",
- codeUrl: buildUrl + "/Build.wasm.unityweb",
- streamingAssetsUrl: "StreamingAssets",
- companyName: "4Dage",
- productName: "H5Game-NanjingMuseum",
- productVersion: "1.0.4",
- 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:
- let 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);
- }
- let isShowLoading = true;
- const loadingDom = document.querySelector('#unity-loading');
- const loadingPaperDom = document.querySelector('#unity-loading-paper');
- const loadingBrushDom = document.querySelector('#unity-loading-brush');
- const loadingBgDom = document.querySelector('#unity-loading-bg');
- const progressDom = document.querySelector('#unity-loading-progress');
- const progressText = document.querySelector('#unity-loading-progress-text');
- progressText.innerHTML = "0%";
- let opacity = 1;
- function fadeOutVideo(){
- if (opacity > 0) {
- setTimeout(function() {
- opacity = opacity - 0.05;
- progressDom.style.opacity = opacity;
- loadingPaperDom.style.opacity = opacity;
- loadingBrushDom.style.opacity = opacity;
- loadingBgDom.style.opacity = opacity;
- fadeOutVideo();
- }, 20)
- } else {
- window.removeEventListener('resize', refreshLoadingPaperBlockSize);
- loadingDom.remove();
- }
- }
- let script = document.createElement("script");
- script.src = loaderUrl;
- script.onload = () => {
- createUnityInstance(canvas, config, (progress) => {
- progressText.innerHTML = parseInt(progress * 100) + "%";
- }).then((unityInstance) => {
- window.unityInstance = unityInstance;
- fadeOutVideo();
- }).catch((message) => {
- alert(message);
- });
- };
- document.body.appendChild(script);
- function refreshLoadingPaperBlockSize() {
- // Unity画布宽高比
- const unityCanvasWidth = 1920;
- const unityCanvasHeight = 1080;
- const unityPanelWidth = 650;
- const unityPanelHeight = 1098;
- const unityPanelOffsetY = 35;
- const unityPanelOffsetX = 0;
- const unityPanelBrushWidth = 462;
- const unityPanelBrushHeight = 608;
- const unityPanelBrushOffsetY = -115;
- const unityPanelBrushOffsetX = 555;
-
- const innerWidth = window.innerWidth;
- const innerHeight = window.innerHeight;
- const scale = (unityCanvasWidth / unityPanelHeight) >
- (innerWidth / innerHeight) ? (innerWidth / unityCanvasWidth) : (innerHeight / unityCanvasHeight);
- loadingPaperDom.style.width = (unityPanelWidth * scale) + 'px';
- loadingPaperDom.style.height = (unityPanelHeight * scale) + 'px';
- loadingBrushDom.style.width = (unityPanelBrushWidth * scale) + 'px';
- loadingBrushDom.style.height = (unityPanelBrushHeight * scale) + 'px';
- if (unityPanelOffsetY > 0) {
- loadingPaperDom.style.marginTop = (unityPanelOffsetY * scale * 2) + 'px';
- } else {
- loadingPaperDom.style.marginBottom = (-unityPanelOffsetY * scale * 2) + 'px';
- }
- if (unityPanelOffsetX > 0) {
- loadingPaperDom.style.marginLeft = (unityPanelOffsetX * scale * 2) + 'px';
- } else {
- loadingPaperDom.style.marginRight = (-unityPanelOffsetX * scale * 2) + 'px';
- }
- if (unityPanelBrushOffsetY > 0) {
- loadingBrushDom.style.marginTop = (unityPanelBrushOffsetY * scale * 2) + 'px';
- } else {
- loadingBrushDom.style.marginBottom = (-unityPanelBrushOffsetY * scale * 2) + 'px';
- }
- if (unityPanelBrushOffsetX > 0) {
- loadingBrushDom.style.marginLeft = (unityPanelBrushOffsetX * scale * 2) + 'px';
- } else {
- loadingBrushDom.style.marginRight = (-unityPanelBrushOffsetX * scale * 2) + 'px';
- }
- }
- refreshLoadingPaperBlockSize();
- window.addEventListener('resize', refreshLoadingPaperBlockSize);
- </script>
- <script src="./index.js"></script>
- </body>
- </html>
|