gpt4 book ai didi

c# - Unity3D可视化编程第三方工具背后的机制

转载 作者:行者123 更新时间:2023-11-30 16:27:44 31 4
gpt4 key购买 nike

首先很抱歉在这里发布这个。我只是在“Unity Answers”上没有得到这个问题的答案我一直在研究像uScript这样的工具或 Strumpy Shader编辑器是基于节点的可视化编程工具,例如 Unreal Kismet 或 3DsMax 粒子流系统。我一直在研究这些工具实际上是如何在 Unity 中生成源代码的。所以我假设在节点逻辑组装期间,应该动态地生成代码并将其编译为 DLL(在 Unity 中,所有源代码都被编译为 DLL)。我开始研究 Reflections 、 Microsoft.CSharp 和 System.CodeDom.Compiler 等 C# 程序集;我什至尝试通过编辑器在 Unity 中编写一个 C# 类作为文本,然后使用上述工具将其解析并编译成 DLL(没问题,但 DLL 仅在运行时存在于临时环境中……)因此我想知道这些工具可能会使用这种方法吗?或者有更好更简洁的方法吗?谢谢。

最佳答案

我实际上正在做同样的事情。我认为您在编译器类方面走在正确的道路上。我不认为你可以在移动设备上即时发出 IL 作为安全沙箱问题,但我正在动态创建 c# 代码并将其编译成持久的 dll,就像这样..

CompilerParameters compilerParameter = new CompilerParameters();
compilerParameter.OutputAssembly = "/Your/Path/Here.dll";
CodeDomProvider codeDomProvider = CodeDomProvider.CreateProvider("CSharp");

StringBuilder code = new StringBuilder();
code.AppendLine("public static class Test {");
//More code here...
code.AppendLine("}");
var compilerResult = codeDomProvider.CompileAssemblyFromSource(compilerParameter, code.ToString());

希望这有帮助..

关于c# - Unity3D可视化编程第三方工具背后的机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7625841/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com