TypeScriptを使用してUnityLoader.jsをAngularでインポートする必要があります。しかし、libはts宣言を持たず、動作するためには設定変数(配列)が必要です(下記参照)。UnityLoader.jsへのd.tsファイルの作成(Unity3D)
デフォルトの実装:
<!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 | Test Unity</title>
<style>
/* a style sheet needs to be present for cursor hiding and custom cursors to work. */
</style>
</head>
<body>
<canvas class="emscripten" id="canvas" oncontextmenu="event.preventDefault()" height="600px" width="960px"></canvas>
<script type='text/javascript'>
/* Configuration variable here !! */
var Module = {
TOTAL_MEMORY: 268435456,
errorhandler: null, // arguments: err, url, line. This function must return 'true' if the error is handled, otherwise 'false'
compatibilitycheck: null,
dataUrl: "Development/ExportMiniDev.data",
codeUrl: "Development/ExportMiniDev.js",
memUrl: "Development/ExportMiniDev.mem",
};
</script>
/* Library call here !! */
<script src="Development/UnityLoader.js"></script>
</body>
</html>
私はすべてのdocsを読んでいると私は宣言ファイルを作成するために、thisを追いました。
ここに私の宣言ファイル(index.d.ts):node_modulesで
// Type definitions for UnityLoader 5.4.3.f1
// Project: UnityLoader
// Definitions by: Alexandre Hagen <https://github.com/AlexandreHagen>
declare namespace UnityLoader {
interface Module {
TOTAL_MEMORY: number,
errorhandler?: boolean,
compatibilitycheck?: boolean,
dataUrl: string,
codeUrl: string,
memUrl: string
}
}
export {};
マイフォルダ構造:
.
├── ...
├── unity-loader
│ ├── index.d.ts # Ts declaration file
│ ├── index.js # It is a remame of UnityLoader.js
│ └── package.js # Package to npm
└── ...
しかし、私はまだ一つのことを理解していません。私の宣言へのリンクは、npmパッケージではなくただ.jsのlibにすることができますか?実際には、docsはnpmパッケージにしか見えません。
現在import unityLoader = require("unity-loader");
は動作していますが、UnityLoader.jsをインポートしていないので、使用できません。
したがって、Typescriptでシンプルなグローバルライブラリを使用するにはどうすればよいですか? その問題は私にとって非常に重要ですSee here私はあなたが助けることを願っています!
Ps:Webpackを使用してアプリケーションを構築しています。
誰かが助けることができますか? – Hagen