|
|
@@ -1,154 +0,0 @@
|
|
|
-<!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/img_bg.webp" alt="" />
|
|
|
- <img id="unity-loading-postcard" src="./TemplateData/img_postcard.webp" alt="" />
|
|
|
- <span id="unity-loading-progress-text"></span>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div id="unity-warning"> </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="save-image-block">
|
|
|
- <img src="" class="save-image-background" alt="">
|
|
|
- </div>
|
|
|
- <script>
|
|
|
-
|
|
|
- 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: "FDage",
|
|
|
- productName: "Chenzhebei-ShanxiMuseum",
|
|
|
- productVersion: "0.1.0",
|
|
|
- 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 loadingBgDom = document.querySelector('#unity-loading-bg');
|
|
|
- const loadingPostcard = document.querySelector('#unity-loading-postcard');
|
|
|
- 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;
|
|
|
-
|
|
|
- loadingBgDom.style.opacity = opacity;
|
|
|
- loadingPostcard.style.opacity = opacity;
|
|
|
- progressText.style.opacity = opacity;
|
|
|
- fadeOutVideo();
|
|
|
- }, 20)
|
|
|
- } else {
|
|
|
- window.removeEventListener('resize', refreshLoadingBlockSize);
|
|
|
- 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 refreshLoadingBlockSize() {
|
|
|
- // Unity画布宽高比
|
|
|
- let unityCanvasWidth = 1515;
|
|
|
- let unityCanvasHeight = 780;
|
|
|
- let unityPanelWidth = 1150;
|
|
|
- let unityPanelHeight = 740;
|
|
|
- let unityPanelOffsetY = 0;
|
|
|
-
|
|
|
- let innerWidth = window.innerWidth;
|
|
|
- let innerHeight = window.innerHeight;
|
|
|
-
|
|
|
- let scale = (unityCanvasWidth / unityPanelHeight) >
|
|
|
- (innerWidth / innerHeight) ? (innerWidth / unityCanvasWidth) : (innerHeight / unityCanvasHeight);
|
|
|
-
|
|
|
- loadingPostcard.style.width = (unityPanelWidth * scale) + 'px';
|
|
|
- loadingPostcard.style.height = (unityPanelHeight * scale) + 'px';
|
|
|
-
|
|
|
- if (unityPanelOffsetY > 0){
|
|
|
- loadingPostcard.style.marginTop = (unityPanelOffsetY * scale * 2) + 'px';
|
|
|
- } else {
|
|
|
- loadingPostcard.style.marginBottom = (-unityPanelOffsetY * scale * 2) + 'px';
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- refreshLoadingBlockSize();
|
|
|
- window.addEventListener('resize', refreshLoadingBlockSize);
|
|
|
- </script>
|
|
|
- <script src="./index.js"></script>
|
|
|
- </body>
|
|
|
-</html>
|