|
@@ -0,0 +1,150 @@
|
|
|
+<template>
|
|
|
+ <link rel="shortcut icon" href="static/TemplateData/favicon.ico">
|
|
|
+ <link rel="stylesheet" href="static/TemplateData/style.css">
|
|
|
+ <link rel="manifest" href="static/manifest.webmanifest">
|
|
|
+ <div id="unity-container">
|
|
|
+ <!-- <el-button @click="changeWater(props.water)">水深</el-button>
|
|
|
+ <el-button @click="changeCamera(props.neiw)">内部</el-button>
|
|
|
+ <el-button @click="changeCamera(props.neiw)">外部</el-button> -->
|
|
|
+ <canvas id="unity-canvas"></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>
|
|
|
+</template>
|
|
|
+<script setup>
|
|
|
+import { config } from './config.js';
|
|
|
+const props = defineProps({
|
|
|
+ water: {
|
|
|
+ type: Number,
|
|
|
+ // required: true,
|
|
|
+ },
|
|
|
+ neiw: {
|
|
|
+ type: String,
|
|
|
+ // required: true,
|
|
|
+ },
|
|
|
+});
|
|
|
+onMounted(() => {
|
|
|
+ window.addEventListener("load", function () {
|
|
|
+ if ("serviceWorker" in navigator) {
|
|
|
+ navigator.serviceWorker.register("static/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 = "static/Build";
|
|
|
+ var loaderUrl = buildUrl + "/BuildFast.loader.js";
|
|
|
+ // var config = {
|
|
|
+ // dataUrl: buildUrl + "/BuildFast.data",
|
|
|
+ // frameworkUrl: buildUrl + "/BuildFast.framework.js",
|
|
|
+ // codeUrl: buildUrl + "/BuildFast.wasm",
|
|
|
+ // streamingAssetsUrl: "StreamingAssets",
|
|
|
+ // companyName: "DefaultCompany",
|
|
|
+ // productName: "CollierySafety",
|
|
|
+ // 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:
|
|
|
+ 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);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+});
|
|
|
+
|
|
|
+/**
|
|
|
+ * lv 水深
|
|
|
+ */
|
|
|
+function changeWater(lv){
|
|
|
+ console.log(lv)
|
|
|
+ window.postMessage('changeWater:'+lv);
|
|
|
+}
|
|
|
+/**
|
|
|
+ * lv 0 1
|
|
|
+ */
|
|
|
+function changeCamera(lv){
|
|
|
+ console.log(lv)
|
|
|
+ window.postMessage('changeCamera:'+lv);
|
|
|
+}
|
|
|
+
|
|
|
+watch(
|
|
|
+ () => [props.neiw,props.water],
|
|
|
+ (newVal, oldVal) => {
|
|
|
+ changeCamera(newVal[0])
|
|
|
+ changeWater(newVal[1])
|
|
|
+ console.log(1111111);
|
|
|
+ console.log(newVal[0],newVal[1])
|
|
|
+ // if (newVal[0] == '') {
|
|
|
+ // htmldialogshow.value = true;
|
|
|
+
|
|
|
+ // } else {
|
|
|
+ // htmldialogshow.value = false;
|
|
|
+ // }
|
|
|
+ },
|
|
|
+ { deep: true }
|
|
|
+);
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+
|
|
|
+</style>
|