在React项目中导入Unity文件

3
我有困难在我的React项目中加载Unity文件。我认为如果我将文件添加到index.html中,我就可以像下面展示的那样在项目中的任何地方使用UnityLoader:
index.html
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Game</title>
  </head>
  <body>
    <div id="app">
    </div>
    <script src="UnityLoader.js"></script>
  </body>
</html>

Unity.js

class Unity extends Component {

    render() {
        return (
            <div id="unity">
                {UnityLoader.instantiate('unity', 'unity/index.html')}
            </div>
        );
    }
}

然而,我收到了一个错误提示,说“UnityLoader未定义”。
我需要使用某种...(后面的内容没有完整提供,无法翻译)
import { UnityLoader } from 'UnityLoader' 

在Unity.js中?问题在于UnityLoader是一个外部JS文件,不导出任何内容。
1个回答

1
为什么不通过npm安装React-Unity,然后将其导入到您的组件中呢?
import React, { Component } from 'react';
import { Unity } from 'react-unity-webgl';


export class App extends Component {
  render() {
    return (<div className="app">
      <Unity src="Build/myGame.json" />
        </div>)
    }
}

不要忘记在基础HTML文件中添加脚本标签以加载Unity导出的UnityLoader.js文件。
<script src="build_unity/Build/UnityLoader.js"></script> 
<script src="compiled/bundle.js"></script> 

我考虑过这个,但不确定它有多可靠。但我想那是最合理的做法。谢谢。 - user2456977
我希望它可以运行。还有另一个Unity的npm包,但我相信这是使它工作的方法。 - krankuba
我在加载UnityLoader的第二步遇到了问题。我正在使用Create-react-app,并尝试将<script src="relativePathToUnityLoader></script>添加到public/index.html中。但也许这是错误的文件?因为它仍然显示:React-Unity-Webgl error:The UnityLoader was not defined...。我还尝试在.js文件中进行常规的import "relativePathToUnityLoader";。这反而给我带来了'webAssembly' is not defined, unexpected use of screen等问题。 - Aidin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接