【发布时间】:2017-04-27 20:08:44
【问题描述】:
我正在进入 Unity,想知道是否可以使用 F# 而不是 C#,只是因为我更喜欢语法。我猜不是,因为它运行的环境非常不同,但也许有一些东西可以交叉编译代码或其他我没有想到的东西。
【问题讨论】:
标签: unity3d
我正在进入 Unity,想知道是否可以使用 F# 而不是 C#,只是因为我更喜欢语法。我猜不是,因为它运行的环境非常不同,但也许有一些东西可以交叉编译代码或其他我没有想到的东西。
【问题讨论】:
标签: unity3d
我不禁觉得其他答案是由不知道自己在说什么的人写的。
这是在 Unity 项目中使用 F# 需要做的:
目前您需要启用对 .NET 版本 4.5 的(实验性)支持。或者,您可以下载支持 .NET 3.5 的旧版本 FSharp.Core.dll。 (见here)。
我不能保证您不会因为与 FSharp.Core.dll 的兼容性问题而遇到麻烦,但这只是猜测,因为我自己没有测试过。
【讨论】:
我在某个时候通过关注这个 Github 项目成功地做到了这一点:https://github.com/eriksvedang/FSharp-Unity,我相信这与 Lars Kokemohr 上面的回答大致相同。不过,我还没有在更新的 Unity/Mono 版本中对其进行测试。
【讨论】:
是的,您可以统一使用 F# 作为 C# 的一流语言。
这是一篇关于它的文章link
一个优秀的博客,适合想要统一使用 F# 的人
如果你想使用 F# 作为我推荐的第二类。
让我来看看怎么做。
这里是关于如何在每次构建后自动执行此操作的说明:link
话虽如此,我建议不要与 F# 一起做任何严肃的工作,因为您将无法交叉编译到其他平台。 Unity 使用IL2cpp,它不适用于 F#。 简而言之,unity 不支持 F#,如果您遇到 Il2cpp 中的错误等问题,unity 不会修复它,因为它们不支持 F#
【讨论】:
没有简单的方法可以做到这一点,但如果你真的想实现它,我相信你可以使用 fs2cs 之类的东西:
https://github.com/hsharpsoftware/fs2cs
理论上,您可以编写一个对所有 Unity C# 文件调用 fs2cs 的脚本。将其与 Unity 本身集成将是更具挑战性的部分,但理论上您可以在保存文件时触发 fs2cs 转译,而 Unity 可以使用转译后的 C# 文件。
【讨论】:
官方仅支持 Boo、C# 和 UnityScript!
【讨论】: