C# 在Unity3D中是否有针对IL2Cpp构建的运行时代码编译解决方案?
我正在尝试在Unity3D中为IL2CPP build 64位Android在运行时编译C#代码 我有一个要动态编译和执行的代码字符串。 我尝试过的是:C# 在Unity3D中是否有针对IL2Cpp构建的运行时代码编译解决方案?,c#,unity3d,runtime-compilation,C#,Unity3d,Runtime Compilation,我正在尝试在Unity3D中为IL2CPP build 64位Android在运行时编译C#代码 我有一个要动态编译和执行的代码字符串。 我尝试过的是: 但我要了解的是,以上所有内容都不能用于IL2Cpp构建 下面的代码是使用:上面提到的第二个Github repo执行的 CSScriptEngine engine = new CSScriptEngine(); engine.AddUsings("using UnityEngine; using System; using System.
CSScriptEngine engine = new CSScriptEngine();
engine.AddUsings("using UnityEngine; using System; using System.Collections.Generic;");
engine.AddOnCompilationFailedHandler(OnCompilationFail);
IScript result = engine.CompileCode(@codeToConvert);
第二个插件:
AndroidPlayer(ADB@127.0.0.1:34999) ArgumentException: Invalid path
at System.IO.Path.GetDirectoryName (System.String path) [0x00000] in <00000000000000000000000000000000>:0
at Mono.CSharp.DynamicLoader..ctor (Mono.CSharp.ReflectionImporter importer, Mono.CSharp.CompilerContext compiler) [0x00000] in <00000000000000000000000000000000>:0
at Mono.CSharp.Evaluator.Init () [0x00000] in <00000000000000000000000000000000>:0
at Mono.CSharp.Evaluator.Compile (System.String input, Mono.CSharp.CompiledMethod& compiled) [0x00000] in <00000000000000000000000000000000>:0
at Mono.CSharp.Evaluator.Evaluate (System.String input, System.Object& result, System.Boolean& result_set) [0x00000] in <00000000000000000000000000000000>:0
at Mono.CSharp.Evaluator.Run (System.String statement) [0x00000] in <00000000000000000000000000000000>:0
at UCompile.MonoEvaluator.Run (System.String scriptText) [0x00000] in <00000000000000000000000000000000>:0
at UCompile.CompilationUnit.Run (System.String code) [0x00000] in <00000000000000000000000000000000>:0
at UCompile.CSScriptEngine.AddUsings (System.String usings) [0x00000] in <00000000000000000000000000000000>:0
at CheckVersion.Operation_completed (UnityEngine.AsyncOperation obj) [0x00000] in <00000000000000000000000000000000>:0
at System.Action`1[T].Invoke (T obj) [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.AsyncOperation.InvokeCompletionEvent () [0x00000] in <00000000000000000000000000000000>:0
AndroidPlayer(ADB@127.0.0.1:34999)ArgumentException:无效路径
位于:0中的System.IO.Path.GetDirectoryName(System.String路径)[0x00000]处
位于Mono.CSharp.DynamicLoader..ctor(Mono.CSharp.ReflectionImporter导入器,Mono.CSharp.CompilerContext编译器)[0x00000]中:0
在0中的Mono.CSharp.Evaluator.Init()[0x00000]处
在:0中的Mono.CSharp.Evaluator.Compile(System.String输入,Mono.CSharp.CompiledMethod&compiled)[0x00000]处
在Mono.CSharp.Evaluator.Evaluate(System.String输入、System.Object和result、System.Boolean和result_set)[0x00000]中:0
在0中的Mono.CSharp.Evaluator.Run(System.String语句)[0x00000]处
在:0中的UCompile.MonoEvaluator.Run(System.String scriptText)[0x00000]处
在UCompile.CompilationUnit.Run(System.String代码)[0x00000]中:0
在:0中的UCompile.CSScriptEngine.AddUsings(System.String usings)[0x00000]处
在CheckVersion.Operation_完成时(UnityEngine.AsyncOperation obj)[0x00000]位于:0
在System.Action`1[T]。在以下位置调用(T obj)[0x00000]:0
在:0中的UnityEngine.AsyncOperation.InvokeCompletionEvent()[0x00000]处