2016-09-20 3 views
0

私はSCORM 1.2と統合されたUnity 5 WebGLプロジェクトを取得しようとしています。これには、Unity WebGLビルドがいくつかの外部javascriptと通信します。Unity 5 WebGL:C#の外部javascriptとの通信

私は、このページを発見:
https://docs.unity3d.com/Manual/webgl-interactingwithbrowserscripting.html
...資産/プラグイン/ WebGLのフォルダに外部JSを配置し、.jslibファイルとしてファイルを保存示唆しています。ここに私の一時的なSCORM.jslibファイルがどのように見えるかです:

var SCORM = { 
    Hello: function() 
    { 
     window.alert("Hello, world!"); 
     console.log("Hello function in SCORM.jslib has been called."); 
    } 
} 

その後、私のゲームオブジェクトのトリガー(キューブ)に付属のC#スクリプトで:

using UnityEngine; 
using System.Collections; 
using System.Runtime.InteropServices; 

public class CompletionTrigger : MonoBehaviour {  

    [DllImport("__Internal")] 
    private static extern void Hello(); 

    void Start() { 

     Hello(); 

    }  

    void Update() { 

    } 
} 

問題は、私は「EntryPointNotFoundExceptionを取得していますです'Hello()'が呼び出された行のエラーです。

ここで私はグーグルで検索しましたが、答えはC++のdllやRoRの開発に関連しているようです。

誰もがこのエラーの原因を知っていますか?おかげさまで

EDIT
私は再びWebGLのビルドを実行しようと思いましたので、エラーが唯一のエディタに登場した別のページにコメントを見ました。私は次のエラーを取得する:

Failed running "C:\Program Files\Unity\Editor\Data\PlaybackEngines\WebGLSupport/BuildTools/Emscripten_Win/python/2.7.5.3_64bit/python.exe" "C:\Program Files\Unity\Editor\Data\PlaybackEngines\WebGLSupport/BuildTools/Emscripten/emcc" @"D:/Projects/Unity 3D/Packaging Test/Assets/../Temp/emcc_arguments.resp" 
stdout: 
WARNING: sanity check failed to run [Errno 13] Permission denied: 'C:\\Program Files\\Unity\\Editor\\Data\\PlaybackEngines\\WebGLSupport/BuildTools/emscripten.config_sanity' 
stderr: 
WARNING root: did not see a source tree above or next to the LLVM root directory (guessing based on directory of C:\Program Files\Unity\Editor\Data\PlaybackEngines\WebGLSupport/BuildTools/Emscripten_FastComp_Win\llc), could not verify version numbers match 
INFO  root: (Emscripten: Running sanity checks) 
WARNING root: java does not seem to exist, required for closure compiler, which is optional (define JAVA in ~/.emscripten if you want it) 
error: failure to execute js library "D:\Projects\Unity 3D\Packaging Test\Assets\Plugins\WebGL\SCORM.jslib": ReferenceError: window is not defined,,ReferenceError: window is not defined 

エラーメッセージがしばらく続くが、私はここに含まれてきた最後の行は、それはありませんと言って、「ウィンドウ」で何をすべきか分かっていないコンパイラを示唆しているようです定義された。そこには「健全性チェック」という言葉もありますが、これはかなりのようです。

もう一度、誰かがポインタを持っていれば、それは大歓迎です。

答えて

1

誰もが同じ問題を抱えている場合は、私はかわすには、この問題を管理している:

私は今、私のSCORM.jsファイルをインデックスにロードされ、代わりにそのユニティマニュアルページの最初のオプションを使用していました。 HTML WebGLテンプレート。

(カスタムWebGLテンプレートを作成するには、「WebGLTemplates」フォルダをAssetsフォルダに作成します。 。だから、追加した

...

<script src="js/SCORM.js"></script> 

...私のindex.htmlへと 'JS' と呼ばれるフォルダにSCORM.jsを置く - 最終ビルドのindex.htmlファイルに隣接し、I今のように、C#のからSCORM.js関数を呼び出すことができます。

Application.ExternalCall("initialiseSCORM", "This could specify an id"); 

次のステップはSCORM.jsからSCORM情報を取得されますが、そのページが示唆したように、私が使用することができるはずです。

SendMessage ('MyGameObject', 'MyFunction', 'foobar'); 

... SCORM.jsでUnityゲームに情報を渡す。

関連する問題