Bladeren bron

game文件夹放到public

任一存 1 jaar geleden
bovenliggende
commit
6fdd3900fd

BIN
public/game/Build/Build.data.unityweb


BIN
public/game/Build/Build.framework.js.unityweb


File diff suppressed because it is too large
+ 1 - 0
public/game/Build/Build.loader.js


BIN
public/game/Build/Build.wasm.unityweb


+ 33 - 0
public/game/ServiceWorker.js

@@ -0,0 +1,33 @@
+const cacheName = "4Dage-H5Game-NanjingMuseum-1.0.2";
+const contentToCache = [
+    "Build/Build.loader.js",
+    "Build/Build.framework.js.unityweb",
+    "Build/Build.data.unityweb",
+    "Build/Build.wasm.unityweb",
+    "TemplateData/style.css"
+
+];
+
+self.addEventListener('install', function (e) {
+    console.log('[Service Worker] Install');
+    
+    e.waitUntil((async function () {
+      const cache = await caches.open(cacheName);
+      console.log('[Service Worker] Caching all: app shell and content');
+      await cache.addAll(contentToCache);
+    })());
+});
+
+self.addEventListener('fetch', function (e) {
+    e.respondWith((async function () {
+      let response = await caches.match(e.request);
+      console.log(`[Service Worker] Fetching resource: ${e.request.url}`);
+      if (response) { return response; }
+
+      response = await fetch(e.request);
+      const cache = await caches.open(cacheName);
+      console.log(`[Service Worker] Caching new resource: ${e.request.url}`);
+      cache.put(e.request, response.clone());
+      return response;
+    })());
+});

+ 36 - 0
public/game/StreamingAssets/aa/AddressablesLink/link.xml

@@ -0,0 +1,36 @@
+<linker>
+  <assembly fullname="Unity.Addressables, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" preserve="all">
+    <type fullname="UnityEngine.AddressableAssets.Addressables" preserve="all" />
+  </assembly>
+  <assembly fullname="Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" preserve="all">
+    <type fullname="UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider" preserve="all" />
+    <type fullname="UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider" preserve="all" />
+    <type fullname="UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider" preserve="all" />
+    <type fullname="UnityEngine.ResourceManagement.ResourceProviders.LegacyResourcesProvider" preserve="all" />
+    <type fullname="UnityEngine.ResourceManagement.ResourceProviders.SceneProvider" preserve="all" />
+  </assembly>
+  <assembly fullname="Unity.TextMeshPro, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
+    <type fullname="TMPro.TMP_FontAsset" preserve="all" />
+    <type fullname="TMPro.FaceInfo_Legacy" preserve="nothing" serialized="true" />
+    <type fullname="TMPro.FontAssetCreationSettings" preserve="nothing" serialized="true" />
+    <type fullname="TMPro.KerningTable" preserve="nothing" serialized="true" />
+    <type fullname="TMPro.TMP_Character" preserve="nothing" serialized="true" />
+    <type fullname="TMPro.TMP_FontFeatureTable" preserve="nothing" serialized="true" />
+    <type fullname="TMPro.TMP_FontWeightPair" preserve="nothing" serialized="true" />
+  </assembly>
+  <assembly fullname="UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
+    <type fullname="UnityEngine.Material" preserve="all" />
+    <type fullname="UnityEngine.Object" preserve="all" />
+    <type fullname="UnityEngine.Shader" preserve="all" />
+    <type fullname="UnityEngine.Texture2D" preserve="all" />
+  </assembly>
+  <assembly fullname="UnityEngine.TextRenderingModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
+    <type fullname="UnityEngine.Font" preserve="all" />
+  </assembly>
+  <assembly fullname="UnityEngine.TextCoreFontEngineModule">
+    <type fullname="UnityEngine.TextCore.FaceInfo" preserve="nothing" serialized="true" />
+    <type fullname="UnityEngine.TextCore.Glyph" preserve="nothing" serialized="true" />
+    <type fullname="UnityEngine.TextCore.GlyphMetrics" preserve="nothing" serialized="true" />
+    <type fullname="UnityEngine.TextCore.GlyphRect" preserve="nothing" serialized="true" />
+  </assembly>
+</linker>

BIN
public/game/StreamingAssets/aa/WebGL/defaultlocalgroup_assets_all_15618257039d575f72a33220198eb491.bundle


File diff suppressed because it is too large
+ 1 - 0
public/game/StreamingAssets/aa/catalog.json


File diff suppressed because it is too large
+ 1 - 0
public/game/StreamingAssets/aa/settings.json


BIN
public/game/TemplateData/bg_game.png


BIN
public/game/TemplateData/favicon.ico


BIN
public/game/TemplateData/img_bg.jpg


BIN
public/game/TemplateData/img_brush.png


BIN
public/game/TemplateData/img_paper.png


BIN
public/game/TemplateData/progress-bar-empty-dark.png


BIN
public/game/TemplateData/progress-bar-empty-light.png


BIN
public/game/TemplateData/progress-bar-full-dark.png


BIN
public/game/TemplateData/progress-bar-full-light.png


BIN
public/game/TemplateData/progress.png


+ 5 - 0
public/game/TemplateData/style.css

@@ -0,0 +1,5 @@
+body { padding: 0; margin: 0 }
+#unity-container { position: fixed; width: 100%; height: 100%; }
+#unity-canvas { width: 100%; height: 100%; background: #231F20 }
+#unity-loading-bar { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: none }
+#unity-warning { position: absolute; left: 50%; top: 5%; transform: translate(-50%); background: white; padding: 10px; display: none }

+ 63 - 0
public/game/index.css

@@ -0,0 +1,63 @@
+.save-image-block {
+    position: fixed;
+    width: 100%;
+    height: 100%;
+
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    pointer-events: none;
+}
+
+.save-image-backgroup {
+    opacity: 0;
+    pointer-events: none;
+}
+
+#unity-loading {
+    position: fixed;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+
+    display: flex;
+    justify-content: center;
+    align-items: center;
+}
+
+#unity-loading-paper {
+    position: absolute;
+}
+
+#unity-loading-brush {
+    position: absolute;
+}
+
+#unity-loading-bg {
+    position: absolute;
+    object-fit: cover;
+    width: 100%;
+    height: 100%;
+}
+
+#unity-loading-video {
+    position: absolute;
+    object-fit: contain;
+    width: 100%;
+    height: 100%;
+}
+
+#unity-loading-progress{
+    position: absolute;
+    width: 30vh;
+    height: 30vh;
+}
+
+#unity-loading-progress-text{
+    position: relative;
+    left: 5px;
+    top: -9px;
+    z-index: 10;
+    color: #fff;
+}

+ 187 - 0
public/game/index.html

@@ -0,0 +1,187 @@
+<!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.2",
+        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>

+ 18 - 0
public/game/index.js

@@ -0,0 +1,18 @@
+window.downloadTexture = function (base64string) {
+    let link = document.createElement('a');
+    link.href = 'data:image/png;base64,' + base64string;
+    link.download = 'image';
+    link.click();
+}
+
+window.gameInitialized = function () {
+}
+
+window.closeGame = function () {
+    window.parent?.closeGame();
+}
+
+window.closePanel = function () {
+    isShowSaveDom = false;
+    saveDom.style.pointerEvents = 'none';
+}

+ 15 - 0
public/game/manifest.webmanifest

@@ -0,0 +1,15 @@
+{
+    "name": {{{ JSON.stringify(PRODUCT_NAME) }}},
+    "short_name": {{{ JSON.stringify(PRODUCT_NAME) }}},
+    "start_url": "index.html",
+    "display": "fullscreen",
+    "background_color": "{{{ BACKGROUND_COLOR }}}",
+    "theme_color": "{{{  SPLASH_SCREEN_STYLE.toLowerCase() === 'light' ? '#fff' : '#000' }}}",
+    "description": {{{ JSON.stringify(PRODUCT_DESCRIPTION) }}},
+    "icons": [{
+      "src": "TemplateData/icons/unity-logo-{{{ SPLASH_SCREEN_STYLE.toLowerCase() }}}.png",
+      "sizes": "144x144",
+      "type": "image/png",
+      "purpose": "any maskable"
+    }]
+  }