查看原文
其他

UnityScript到C#转换工具

Unity Unity官方平台 2019-05-07

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)!

 

 

推荐阅读


官方活动

Unite Shanghai 2019暖冬特惠票限量销售中

2019年5月10日-12日上海,Unite大会强势回归。 暖冬特惠票正式开售,购票即获指定Asset Store资源商店精品21款资源的5折优惠券。[了解详情...

购票链接:

http://UniteShanghai2019.bagevent.com


Unity全球学生开发挑战赛火热进行中最后一个月

Unity面向全球的学生推出-Unity全球学生开发挑战赛,寻找全世界最具创意,展现自我的学生开发者团队。[了解详情...

活动地址:

https://connect.unity.com/challenges/gsc2018


点击“阅读原文”访问Unity官方中文论坛

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存