Notifications
Article
UnityScript到C#转换工具
Published 7 months ago
293
0
UnityScript是Unity中类似于JavaScript的脚本语言.我们在2017年8月发布了公告:我们将逐步弃用UnityScript,仅保留C#作为Unity脚本编程语言。
在弃用的过程中,我们首先开发了UnityScript到C#的转换工具。然后,我们把新建UnityScript脚本的菜单选项移到了Legacy菜单下。

下载转换工具

如果你还有使用UnityScript开发的旧项目,你可以使用UnityScript到C#的转换工具进行转换。
下载UnityScript到C#的转换工具:
https://github.com/Unity-Technologies/unityscript2csharp
我们收集了大量关于转换工具的反馈并修复了一些问题,下面是部分通过反馈对转换工具进行的改进:
  • 支持保留原始脚本的注释
  • 引入编辑器集成包以简化使用过程
  • 改进对大量UnityScript构造的支持
在Unity 2018.2中,我们完全移除了新建UnityScript脚本的选项。现在,转换工具功能完整且足够稳定,可以为所有仍使用UnityScript的项目提供帮助。

转换过程

在开始转换过程前,请确保你的项目在Unity 2018.1上进行构建,保证项目中所有测试都能通过。
在点击菜单Tools->Convert UnityScript to C#,运行转换工具。如果需要控制转换过程使用的参数,你可以通过命令行运行转换工具,但需要注意,额外的灵活度将伴随着额外的复杂度。
下面的视频展示转换旧版Angry Bots项目的过程。该视频的目的只在于演示,因此我们把首次在Unity 2018.1打开项目时造成编译错误的代码都注释掉了。
转换的基本过程如下:
  1. 备份项目
  2. 在Unity 2018.1打开项目
  3. 如果有API更新工具的请求,请接受并修复剩余错误
  4. 确保播放器在每个目标平台都成功构建
  5. 确保所有相关测试都能通过,同时要在实际设备上运行项目
  6. 安装最新编辑器集成包
  7. 清空编辑器Console
  8. 运行转换工具
  9. 修复运行相关测试时的剩余问题
注意事项:
取决于项目所使用的API,第9步不一定要执行,但在Angry Bots示例中,我们需要修复部分API的使用。
如果项目面向多个平台,则需要为每个目标平台重复执行第8步,方法是在运行转换工具前选择平台,然后手动合并转换代码,将转换代码相应地和条件代码包装起来。这也是该工具的限制,这种情况下,你可能要在每次转换后使用VCS来恢复项目状态。

参考资料

转换工具是开源的,你可以下载源代码并进行查看,请随时提供任何修复或改进,下面是关于转换工具的参考资料。
查看转换工具使用限制:
https://github.com/Unity-Technologies/unityscript2csharp#limitations
了解如何在编辑器安装资源包:
https://github.com/Unity-Technologies/unityscript2csharp/releases

小结

如果转换工具无法满足你的需求,你可以在Asset Store资源商店寻找其它资源。如果你需要该工具的相关帮助,请在Unity官方论坛中提出,我们会尽可能提供帮助。
UnityScript转换工具论坛帖:
https://forum.unity.com/threads/unityscript-2-csharp-conversion-tool.487753/
更多Unity最新信息,尽在Unity官方中文论坛(UnityChina.cn)!
Unity China
644
Comments