我是一名有帮助的助手,可以为您进行文本翻译。
我想要将一个Unity WebGL项目集成到Angular2应用程序中。如何将所有此脚本移动到Angular2组件中?
首先,Unity WebGL会像这样导出一个index.html文件:
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Unity WebGL Player | Espoo web manager (Prefab preview)</title>
<link rel="shortcut icon" href="TemplateData/favicon.ico">
<link rel="stylesheet" href="TemplateData/style.css">
<script src="TemplateData/UnityProgress.js"></script>
<script src="Build/UnityLoader.js"></script>
<script>
var gameInstance = UnityLoader.instantiate("gameContainer", "Build/builds.json", {onProgress: UnityProgress});
</script>
</head>
<body>
<div class="webgl-content">
<div id="gameContainer" style="width: 960px; height: 600px"></div>
<div class="footer">
<div class="webgl-logo"></div>
<div class="fullscreen" onclick="gameInstance.SetFullscreen(1)"></div>
<div class="title">Espoo web manager (Prefab preview)</div>
</div>
</div>
</body>
</html>
我开始将这个内容进行拆分,首先我将样式表移动到模板的 .css 文件中:
@import './webgl-app/TemplateData/style.css';
然后我将JavaScript代码移到了组件的.ts文件中:
import { Component, AfterViewInit } from '@angular/core';
import './webgl-app/TemplateData/UnityProgress.js';
import './webgl-app/Build/UnityLoader.js';
declare var UnityLoader: any;
declare var UnityProgress: any;
@Component({
selector: 'app-unity-prefab-preview',
templateUrl: './unity-prefab-preview.component.html',
styleUrls: ['./unity-prefab-preview.component.css']
})
export class UnityPrefabPreviewComponent implements AfterViewInit {
constructor() {}
gameInstance: any;
ngAfterViewInit() {
this.gameInstance = UnityLoader.instantiate("gameContainer", "./webgl-app/Build/builds.json", { onProgress: UnityProgress });
}
}
然后对于 .html 模板,我保留了以下内容:
<div class="webgl-content">
<div id="gameContainer" style="width: 960px; height: 600px"></div>
</div>
然而,无论我尝试什么方法(比如在JS文件上使用“require”),ngAfterViewInit中的那行代码总是会报错:“引用错误:UnityLoader未定义”。
应该如何正确地解决这个问题?
import { UnityLoader } from './webgl-app/Build/UnityLoader.js';
- jervtubexport
函数?据我所知,只有被export
的函数/变量才能被导入。 - jervtub