我对 Unity 有点陌生,这是我第一次在这里创建线程,所以也许我问了一个愚蠢的问题。
我正在使用 React 创建一个网站,该网站的一部分有一个使用 Unity 的游戏。 我遇到的问题是我正在为这个网络应用程序使用React,当React重新加载Unity时,这会导致错误。
通常 Unity 仅由 unityloader.js 文件加载一次。然而,每次加载某个 react 组件时,我的 react 应用程序设置方式都会导致加载统一性
componentWillMount() {
const script = document.createElement("script");
script.src = "Release/UnityLoader.js";
script.async = true;
document.body.appendChild(script);
}
我第一次这样做时,加载一切正常,但是当我重新访问包含此 unitywebgl 组件的页面时,Unity 崩溃,并且出现以下错误。
Uncaught TypeError: Cannot read property 'apply' of undefined
at Object.dynCall (blob:http://localhost:8000/11f3d503-5e8a-473e-851f-2373f9cb5de6:1)
at Object.handlerFunc (blob:http://localhost:8000/11f3d503-5e8a-473e-851f-2373f9cb5de6:1)
at jsEventHandler (blob:http://localhost:8000/11f3d503-5e8a-473e-851f-2373f9cb5de6:1)
也许我做错了什么,我正在使用一些奇怪的方式来初始化统一。然而,对于这个 Web 应用程序来说,经常初始化和重新加载 Unity 非常重要。 unityloader.js 中是否有一些函数可以为其提供 Canvas 并手动要求其重新加载,或者我是否走错了方向?
最佳答案
我做了一个NPM module用于在 ReactJS 应用程序中添加 Unity 内容。基本实现可能类似于;
import React from 'react';
import Unity from 'react-unity-webgl';
export class App extends React.Component {
render () {
return <Unity
src='Build/myGame.json'
loader='Build/UnityLoader.js' />
}
}
关于Reactjs结合unity webgl导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41548147/