IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Unity集成新版MonoDevelop5.9

    优弧发表于 2015-10-25 10:15:29
    love 0

    unity在其版本蓝图中宣布了将在12月发布的unity5.3中集成MonoDevelop-Unity5.9。目前为止MonoDevelop5.9是最新的稳定版本,与MonoDevelop4.0.1相比有很大改善也修复了大量错误。

     

    QQ20151025-0@2x

    而之所以称作MonoDevelop-Unity5.9,是因为Unity针对自身特点也对MonoDevelop做了一些改进。MonoDevelop的目标平台都是针对Unity,如上图橙色框所示。现在直接点击运行即可关联到目标平台进行调试,而之前是必须多次点击“Attach to Process”。

    Unity已经发布了MonoDevelop-Unity5.9的预览版,大家可以点击阅读原文获取下载地址。

    MonoDevelop-Unity5.9对Unity编辑器版本要求如下:

    •   Unity4.6+:需要4.6.5p2或以上版本
    •   Unity5.0:需要5.0.2p2或以上版本
    •   Unity5.1+:需要5.1.0p1或以上版本

    脚本调试修复

    除了升级MonoDevelop之外,Unity还修复了一些对于MonoDevelop和Visual Studio Tools均有影响的脚本调试错误。

    以下是中Unity5.2.2和Unity5.3中修复的脚本调试问题:

    •   修复在Switch语句中单步执行的问题
    •   修复多次单步执行同一行之后遇到断点Unity编辑器偶尔崩溃的问题
    •   修复Unity编辑器在暂停之后单步执行会崩溃的问题
    •   修复单步执行会跳过Resources.Load和其它用到序列化的Unity API方法的问题
    •   修复Unity在计算泛型方法返回泛型的数组时会崩溃的问题,例如GameObject.GetComponents<Component>()

    还有一些只会影响到MonoDevelop-Unity5.9的调试问题:

    •   修复中启用或禁用断点时出现的“The requested item has been unloaded(所请求的项已卸载)”
    •   修复计算枚举时出现的“The requested item has been unloaded(所请求的项已卸载)”
    •   修复“Debugger operation failed. Argument cannot be null(调试器操作失败。参数不能为空)”错误

    以上问题你有遇到过吗,如果有,赶紧点击原文下载新版MonoDevelop吧~

    使用REST集成Unity和MonoDevelop

    Unity集成MonoDevelop要处理两种文件,即解决方案文件(.sln)和工程文件(.csproj)。

    这种方案并不理想,因为每次添加、删除、移动或是重命名脚本文件,Unity都会更新这两个文件。而更新后的文件写入硬盘后,MonoDevelop就必须重新加载整个工程。所以更好的办法是Unity直接与MonoDevelop通信,在每次Assets中有文件改变都会通知MonoDevelop。

    解决方案文件还有一个问题,因为Unity与MonoDevelop使用的C#编译器并不相同。所以会导致有时候脚本在两边会有不同的编译错误和警告,有时也可能出现脚本在Unity中编译而不在MonoDevelop中编译,反之亦然。

    为了解决以上问题以使Unity与MonoDevelop连接更紧密,Unity选用了REST(Representational state transfer,具象状态传输)来与MonoDevelop进行通信。实际上就是通过一个网络套接字传输数据,而不需再生成解决方案文件和工程文件。

    而MonoDevelop也会根据Unity传送的REST信息将Assets文件夹下的内容显示在工程目录中。每次Unity中的Assets文件夹有任何改变MonoDevelop中的Assets文件夹目录也会同步更新。同样在MonoDevelop中改变Assets下的内容也会发送消息到Unity中等待确认。Unity确认过后再通知MonoDevelop更新Assets目录。

    下图是MonoDevelop中的Unity Assets Folder显示视图,正式发布的版本可能会变:

    QQ20151025-1@2x

    MonoDevelop还会使用REST来编译Unity中的脚本,然后Unity会将编译结果发送回MonoDevelop。上图就是Unity发给MonoDevelop的编译结果。

    当然REST的功能远不止这些,下面是一些Unity计划使用REST来实现的功能:

    •   在Unity和MonoDevelop间进行不依赖文件的解决方案或工程文件同步
    •   两边对于Assets目录下的文件增、删、改、移动都能即时同步
    •   保持编译行为一致。总是中Unity中编译脚本并将结果发送到MonoDevelop
    •   在MonoDevelop中点击运行按钮会直接在Unity中进入播放模式并关联调试器

    以上功能有望在Unity5.5中与大家见面。

     

    转载请注明:程序人生 » Unity集成新版MonoDevelop5.9



沪ICP备19023445号-2号
友情链接