异常:未能建立WebGL的球员,建设WebGL的时

问题描述 投票:1回答:1

我想对WebGL的这个示例代码和问题是,我越来越构建失败。这里是我的代码。

jslib

margeInto(LibraryManager.library,{

    GameObjectHasClicked : function (str){
        window.alert(Pointer_stringify(str));
    },
        Hello: function (){
        window.alert(Pointer_stringify(str));
    },


});

而UnityC#脚本

using System.Runtime.InteropServices;
using UnityEngine;

public class SendInfoToBrowserJS : MonoBehaviour {

    [DllImport("__Internal")]
    private static extern void GameObjectHasClicked(string pos);

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


    private void OnMouseDown()
    {
        string currentPos = this.transform.position.ToString();
        Debug.Log("cube clicked "+ currentPos);
        //#if UNITY_WEBGL
        Hello();
        GameObjectHasClicked(currentPos);
        //#endif
    }


}

正如你可以看到,我打电话jslib从C#两种简单的方法(GameObjectHasClickedHello),但

首先,它给我的错误,每当我点击编辑模式游戏对象

EntryPointNotFoundException: Hello
SendInfoToBrowserJS.OnMouseDown () (at Assets/Scripts/SendInfoToBrowserJS.cs:29)
UnityEngine.SendMouseEvents:DoSendMouseEvents(Int32)

其次,构建与成功(但没有建立)消息未能为好。其实有三种形式交往:

所述第一错误消息:

失败运行 “C:/ Program Files文件/ Unity2018.2.10 /编辑/数据/ PlaybackEngines / WebGLSupport \编译工具\ Emscripten_Win \ python的\ 2.7.5.3_64bit \ python.exe”“C:/ Program Files文件/ Unity2018.2.10 /编辑/数据/ PlaybackEngines / WebGLSupport \编译工具\ Emscripten \ EMCC” @ “d:@TLL_Projects \ WebGLAndBroswerJSInteraction \资产.. \ TEMP \ emcc_arguments.resp”

标准输出:STDERR:警告:根: - 编译为HTML时单独-ASM效果最好。否则,您必须自己加载单独发出的“.asm.js'文件,必须加载主”的.js'文件之前这样做。 [-Wseparate-ASM]错误:不执行JS库 “d:@TLL_Projects \ WebGLAndBroswerJSInteraction \资产\插件\ ExternalJSMethod.jslib”:的ReferenceError:未定义margeInto ,,的ReferenceError:margeInto不是在限定的eval(EVAL在负载(EVAL在globalEval(C:\ Program Files文件\ Unity2018.2.10 \编辑\数据\ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten \ SRC \ compiler.js:105:8)),:1:1)在Object.load(EVAL在globalEval(C:\ Program Files文件\ Unity2018.2.10 \编辑\数据\ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten \ SRC \ compiler.js:105:8),:178:9)在JSify(在globalEval(C EVAL: \ Program Files文件\ Unity2018.2.10 \编辑\数据\ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten \ SRC \ compiler.js:105:8),84:20)在d:@TLL_Projects \ WebGLAndBroswerJSInteraction \资产\插件\ ExternalJSMethod。 jslib(C:\ Program Files文件\ Unity2018.2.10 \编辑\数据\ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten \ SRC \ compiler.js:208:3)在Module._compile(module.js:570:32)在对象。 Module._extensions..js(module.js:5 79:10)在Module.load(module.js:487:32)在tryModuleLoad(module.js:446:12)在Function.Module._load(module.js:438:3)在Module.runMain(模块。 JS:604:10)预处理源(可以运行在这样的JS引擎,以得到更清晰的错误信息有时):============= margeInto(LibraryManager.library,{GameObjectHasClicked:功能( STR){window.alert(Pointer_stringify(STR)); },您好:函数(){window.alert(Pointer_stringify(STR)); }}); =============在SRC / compiler.js内部编译器错误!请提出在https://github.com/kripken/emscripten/issues/错误报告与日志的构建和用于运行输入文件。异常消息:“的ReferenceError:未定义margeInto” |的ReferenceError:margeInto没有定义 在EVAL(EVAL在负载(EVAL在globalEval(C:\ Program Files文件\ Unity2018.2.10 \编辑\数据\ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten \ SRC \ compiler.js:105:8)),:1:1)在Object.load(EVAL在globalEval(C:\ Program Files文件\ Unity2018.2.10 \编辑\数据\ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten \ SRC \ compiler.js:105:8),:178:9)在JSify( EVAL在globalEval(C:\ Program Files文件\ Unity2018.2.10 \编辑\数据\ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten \ SRC \ compiler.js:105:8),84:20)在对象。 (C:\ Program Files文件\ Unity2018.2.10 \编辑\数据\ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten \ SRC \ compiler.js:208:3)在Module._compile(module.js:570:32)在Object.Module ._extensions..js(module.js:579:10)在Module.load(module.js:487:32)在tryModuleLoad(module.js:446:12)在Function.Module._load(module.js:438 3)在Module.runMain(module.js:604:10)回溯(最近通话最后一个):文件 “C:/ Program Files文件/ Unity2018.2.10 /编辑/数据/ PlaybackEngines / WebGLSupport \编译工具\ Emscripten \ EMCC” ,10号线,在python_selector.run(文件,配置文件= TRUE)文件 “C:\ Program Files文件\ Unity2018.2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten \工具\ python_selector.py”,43行,在运行sys.exit(run_by_import(文件名,主)如果on_allowed_version()其他run_by_subprocess(文件名))文件“C:\ Program Files文件\ Unity2018.2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten \工具\ python_selector.py ”,13号线,在run_by_import回报GETATTR(importlib.import_module(os.path.basen AME(文件名)),主要)() 文件 “C:\ Program Files文件\ Unity2018.2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten \ emcc.py”,线1611,在运行最后= shared.Building.emscripten(最终,append_ext =假extra_args = extra_args)文件 “C:\ Program Files文件\ Unity2018.2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ emscripten \工具\ shared.py”,2009年线,在emscripten call_emscripten(CMDLINE)文件“C:\ Program Files文件\ Unity2018.2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten \ emscripten.py “线2340,在主程序temp_files.run_and_clean(拉姆达:主(文件” C:\ Program Files文件\ Unity2018.2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ emscripten \工具\ tempfiles.py “第93行,在run_and_clean回报FUNC()文件” C:\ Program Files文件\ Unity2018.2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ emscripten \ emscripten。 PY”,线2345,在DEBUG = DEBUG,文件 “C:\ Program Files文件\ Unity2018.2.10 \编辑\数据\ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten \ emscripten.py”,线2251,在主吨emp_files = temp_files,DEBUG = DEBUG)文件 “C:\ Program Files文件\ Unity2018.2.10 \编辑\数据\ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten \ emscripten.py”,线路99,在emscript胶,forwarded_data = compiler_glue(元数据,设置,图书馆,compiler_engine,temp_files,DEBUG)文件 “C:\ Program Files文件\ Unity2018.2.10 \编辑\数据\ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten \ emscripten.py”,线路226,在compiler_glue胶,forwarded_data = compile_settings( compiler_engine,设置,图书馆,temp_files)文件 “C:\ Program Files文件\ Unity2018.2.10 \编辑\数据\ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten \ emscripten.py”,线路532,在compile_settings CWD = path_from_root( 'SRC') ,error_limit = 300)文件 “C:\ Program Files文件\ Unity2018.2.10 \编辑\数据\ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten \工具\ jsrun.py”,线路132,在run_js提高异常( '预期命令' + STR(命令)+ '返回代码,完成' + STR(assert_returncode)+ '但它与返回代码' + STR(proc.ret urncode)+',而不是!输出: '+ STR(RET)[:error_limit])异常:预期的命令[' C:/程序文件/ Unity2018.2.10 /编辑器/数据\工具\的NodeJS \ node.exe”, '--stack_size = 8192' , '--max老空间大小= 4096', 'C:\ Program Files文件\ Unity2018.2.10 \编辑\数据\ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten \ SRC \ compiler.js',“C:\用户\用户\应用程序数据\本地的\ Temp \ tmppocs11.txt ' 'C:\ Program Files文件\ Unity2018.2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ LIB \ Audio.js',' C:\ Program Files文件\ Unity2018 .2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ LIB \ Cursor.js', 'C:\ Program Files文件\ Unity2018.2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ LIB \ Eval.js',“C :\ Program Files文件\ Unity2018.2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ LIB \ FileSystem.js',“C:\ Program Files文件\ Unity2018.2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ LIB \记录.js文件, 'C:\ Program Files文件\ Unity2018.2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ LIB \ Profiler.js',“C:\ Program Files文件\ Unity2018.2.10 \ Edito r \数据\ PlaybackEngines \ WebGLSupport \编译工具\ LIB \ SystemInfo.js', 'C:\ Program Files文件\ Unity2018.2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ LIB \ UnetWebSocket.js',“C:\ PROGRAM文件\ Unity2018.2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ LIB \的Video.js', 'C:\ Program Files文件\ Unity2018.2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ LIB \ WebCam.js' 'C:\ Program Files文件\ Unity2018.2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ LIB \ WebGL.js',“C:\ Program Files文件\ Unity2018.2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ LIB \ WebRequest.js', 'd:\ @ TLL_Projects \ WebGLAndBroswerJSInteraction \资产\插件\ ExternalJSMethod.jslib',“C:\ Program Files文件\ Unity2018.2.10 \编辑\ DATA \ PlaybackEngines \ WebGLSupport \编译工具\ Emscripten的\ src \ library_pthread_stub.js'],返回代码0结束,但它的代码1,而不是回来了!输出://模块对象:我们的界面到外面的世界。我们的进口就可以了//和出口值。有各种方式模块可用于:// 1没有被定义。我们在这里// 2.创建它的函数的参数,功能(模块){..generated代码..} // 3.预运行所附它,变种模块= {}; ..generated UnityEngine.GUIUtility:processEvent方法(的Int32,IntPtr的)

所述第二错误消息

异常:未能建立WebGL的球员。 UnityEditor.WebGL.ProgramUtils.StartProgramChecked(System.Diagnostics.ProcessStartInfo P)(在/Users/builduser/buildslave/unity/build/PlatformDependent/WebGL/Extensions/Unity.WebGL.extensions/ProgramUtils.cs:48)UnityEditor.WebGL。 WebGlBuildPostprocessor.EmscriptenLink(BuildPostProcessArgs指定参数时,布尔wasmBuild,System.String sourceFiles,System.String sourceFilesHash)(在/Users/builduser/buildslave/unity/build/PlatformDependent/WebGL/Extensions/Unity.WebGL.extensions/BuildPostprocessor.cs:425 )UnityEditor.WebGL.WebGlBuildPostprocessor.LinkBuild(BuildPostProcessArgs参数)(在/Users/builduser/buildslave/unity/build/PlatformDependent/WebGL/Extensions/Unity.WebGL.extensions/BuildPostprocessor.cs:474)UnityEditor.WebGL.WebGlBuildPostprocessor.PostProcess (BuildPostProcessArgs参数)(在/Users/builduser/buildslave/unity/build/PlatformDependent/WebGL/Extensions/Unity.WebGL.extensions/BuildPostprocessor.cs:937)UnityEditor.Modules.DefaultBuildPostprocessor.PostProcess(BuildPostProcessA RGS指定参数时,UnityEditor.BuildProperties&outProperties)(在C:/buildslave/unity/build/Editor/Mono/Modules/DefaultBuildPostprocessor.cs:27)UnityEditor.PostprocessBuildPlayer.Postprocess(BuildTargetGroup targetGroup,BuildTarget目标,System.String INSTALLPATH,系统。串公司名称,产品名称System.String,的Int32宽度,高度的Int32,BuildOptions选项,UnityEditor.RuntimeClassRegistry usedClassRegistry,UnityEditor.Build.Reporting.BuildReport报告)(在C:/ buildslave /团结/建造/编辑/单声道/ BuildPipeline / PostprocessBuildPlayer。 CS:287)UnityEngine.GUIUtility:processEvent方法(的Int32,IntPtr的)

而最后成功消息

建立以 '成功' UnityEngine.GUIUtility结果完成:processEvent方法(的Int32,IntPtr的)

javascript c# unity3d unity-webgl
1个回答
0
投票

我仔细检查我的第一个错误

失败运行 “C:/ Program Files文件/ Unity2018.2.10 /编辑/数据/ PlaybackEngines / WebGLSupport \编译工具\ Emscripten_Win \ python的\ 2.7.5.3_64bit \ python.exe”“C:/ Program Files文件/ Unity2018.2.10 /编辑/数据/ PlaybackEngines / WebGLSupport \编译工具\ Emscripten \ EMCC” @ “d:@TLL_Projects \ WebGLAndBroswerJSInteraction \资产.. \ TEMP \ emcc_arguments.resp”

标准输出:STDERR:警告:根: - 编译为HTML时单独-ASM效果最好。否则,您必须自己加载单独发出的“.asm.js'文件,必须加载主”的.js'文件之前这样做。 [-Wseparate-ASM]错误:不执行JS库 “d:@TLL_Projects \ WebGLAndBroswerJSInteraction \资产\插件\ ExternalJSMethod.jslib”:的ReferenceError:未定义margeInto ,,的ReferenceError:margeInto不是在限定的eval(EVAL在负载(EVAL在globalEval(C:\ PROGRAM ..上的.so

并发现问题是在这里

的ReferenceError:未定义margeInto ,,的ReferenceError:margeInto不是在限定的eval(EVAL在负载

其实这是不mergeInto margeInto,通过更换语法错误,我能够成功构建。

© www.soinside.com 2019 - 2024. All rights reserved.