2016-09-20 3 views
0

SCORM 1.2와 통합 된 Unity 5 WebGL 프로젝트를 얻으려고합니다. 여기에는 유니티 WebGL 빌드가 외부 자바 스크립트와 통신하는 것이 포함됩니다.
https://docs.unity3d.com/Manual/webgl-interactingwithbrowserscripting.html
... 자산/플러그인/WebGL이 폴더에 외부 JS를 배치하고 .jslib 파일로 파일을 저장 제안 : Unity 5 WebGL : C#의 외부 자바 스크립트와 통신하기

나는이 페이지를 발견했다. 여기 내 임시 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을 개발하는 것과 관련이있는 것으로 보입니다.

이 오류의 원인을 아는 사람이 있습니까? 감사합니다. .

편집
나는 내가 다시 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 템플릿을 만들려면 Assets 폴더에 'WebGLTemplates'폴더를 만듭니다.) index.html 파일이 포함 된 Assets/Templates의 모든 폴더는 편집> 프로젝트 설정> 플레이어 속성 패널에서 템플릿으로 사용할 수 있습니다. . 그래서 추가 한

...

<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 게임에 전달합니다.