I am making a WebGL app that is supposed to work in Nuxt/Vue. I built the app in Unity Editor for WebGL and it works perfectly in Firefox when I open the index.html file. I tried to import the data into the view page video-game.vue. The code of this file is below:
<template>
<v-layout column justify-center align-center>
<v-row>
<v-col>
<h2>This is The Secret Authenticate Route</h2>
</v-col>
</v-row>
<v-row style="margin-bottom: 20px">
<v-col>
<Unity :unity="unityContext" width="800px" height="600px" />
</v-col>
</v-row>
</v-layout>
</template>
<script>
import UnityWebgl from 'unity-webgl'
const Unity = new UnityWebgl({
loaderUrl: '~/Build/look-away-webGLbuild1-uncomp.loader.js',
dataUrl: "~/Build/look-away-webGLbuild1-uncomp.data",
frameworkUrl: "~/Build/look-away-webGLbuild1-uncomp.framework.js",
codeUrl: "~/Build/look-away-webGLbuild1-uncomp.wasm"
})
export default {
name: 'VideoGamePage',
middleware: "login",
components: {
Unity: UnityWebgl.vueComponent
},
data() {
return {
unityContext: Unity,
loading: true,
};
},
created() {},
methods: {},
};
</script>
<style scoped>
</style>
It didn't work, the page was blank:
I looked in my Web console and I found this error:
[Vue warn]: Failed to mount component: template or render function not defined.
found in
---> <Anonymous>
<Nuxt>
<VMain>
<VApp>
<DefaultLayout> at layouts/default.vue
<Root>
Also when I run the app, before I even get to the affected page, I get this warning in my webconsole:
./pages/video-game.vue?vue&type=script&lang=js& (./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./pages/video-game.vue?vue&type=script&lang=js&) 22:16-26"export 'UnityWebgl' was not found in 'unity-webgl'./pages/video-game.vue?vue&type=script&lang=js& (./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./pages/video-game.vue?vue&type=script&lang=js&) 32:11-21"export 'UnityWebgl' was not found in 'unity-webgl'
I noticed this error in my vscode terminal when I hover over the import line for unity-webgl
Could not find a declaration file for module 'unity-webgl'. '/Users/<myusername>/path/to/app/appFrontend/node_modules/unity-webgl/dist/UnityWebgl.min.js' implicitly has an 'any' type.
Try `npm i --save-dev @types/unity-webgl` if it exists or add a new declaration (.d.ts) file containing `declare module 'unity-webgl';`Vetur(7016)
Btw maybe it's worth noting that I'm using Google Chrome.
What's the problem? What is the proper way to display this Unity game in a Nuxt/Vue app? Keep in mind this works perfectly in the default index.html export.