首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用类型记录编译.NET程序集以便与Unity3d一起使用?

如何使用类型记录编译.NET程序集以便与Unity3d一起使用?
EN

Stack Overflow用户
提问于 2017-08-16 14:44:21
回答 3查看 1.2K关注 0票数 2

Unity3d noob希望使用类型记录来编写Unity3d脚本,而不是使用C#或UnityScript (Unity3D的JavaScript类但不是真正的JavaScript语言)。

理论是,如果我能够将类型记录编译成可以在.NET (即Mono)中运行的Unity3d程序集,那么我就是黄金。

在提出现有的JavaScript-.NET互操作解决方案(如Jist或JavaScript.NET )之前,我认为它们会失败,因为Unity3d (以及扩展到.NET)取决于类型,而且如果我没有弄错,那么使用Jist/JavaScript.NET将类型记录转换到JavaScript就会丢失类型信息。类型记录.NET编译器将保留类型信息。

引用.NET程序集(如Unity3D程序集)的工具的附加点数,该工具可以从类型记录代码中使用。

EN

回答 3

Stack Overflow用户

发布于 2021-03-04 16:02:17

这里你说你可以写C#。你可以看看Microsoft.ClearScript。它允许您在.NET程序中嵌入脚本语言。它已经建立了对V8的支持。如果您能够找到如何在Unity中实现它(通过编写一点C#),那么您可以使用JavaScript。您可以(虽然不是理想的)编译TS代码到JS,然后直接在您的团结游戏中运行它。它在大范围内会很慢,因为它被解释了,但它是有可能的。使用C#代码,您可以向JS公开UnityEngine API。这不是最好的解决方案(如果你甚至可以称之为解决方案),但它是有效的(或者至少应该起作用)。我知道我迟到了4年,但对其他人来说还是有用的。既然你问了这个问题,我很想听听你能不能找到解决办法。

编辑:一种更有利于性能的方法是使用AssemblyScript,这是一种类似类型的语言,可以编译成WASM。然后,您可以使用类似于wasmtime-dotnet的东西来执行WebAssembly。这是一种与上面的方法非常相似的方法,但在我看来,它比将TypeScript转换为JavaScript,然后在V8中执行它要干净。当然,它应该更有效率,而且对人们来说很难找到你游戏的来源。

票数 3
EN

Stack Overflow用户

发布于 2022-02-01 21:18:49

我认为,团结组织做出了错误的战略决定,没有采纳打字本。军队或前端/全堆栈nodejs开发要大得多,而且语言本身是强大和成熟的。这将使所有游戏行业更加开放,从而带来真正的繁荣。

票数 1
EN

Stack Overflow用户

发布于 2017-08-16 15:31:01

在回答你的问题时,你不能在unity3d中使用打字本。Unity3d不支持这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45716671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档