Unity 5.3.5p8 C#编译器升级
Unity 5.3.5p8的C#编译器升级
注意:该版本是单独升级C#编译器的测试版!请使用文中提供的下载链接!
基于Unity 5.3.5p8的C#编译器升级!下载链接
试用该版本前请先备份项目,遇到任何问题请及时反馈到Unity官方中文社区(http://forum.china.unity3d.com/)。
新升级的Mono C#编译器(对应Mono 4.4)将用于编译所有的C#脚本。
重要注意事项
Unity编辑器及播放器所使用的Mono运行时还未升级。
新编译器仍针对C# 4。是旧的编译器也支持的版本。
新编译器目标框架为.Net 3.5,也是之前支持的框架。
这只是升级Mono/.Net迈出的第一步。
FAQ
对现有项目有何影响?
该升级应该能够“正常工作”,它并未添加任何新功能。不会对现有项目带来任何影响,还有些小益处。新的Mono和C#编译器与之前相比运行速度普遍更快,而且修复了多年以来的Bug。
有什么需要注意的?
理论上有可能在运行时产生奇怪的问题。但我们自己测试的过程中并未发现。
大多数情况下都会在编译时发现问题。目前为止我们遇到的情况有:
有些无效的C#代码是旧的编译器允许但新的编译器会报错的
涉及到编译器特定属性(安装目录、名称等)的代码或插件会出错
另外,如果你经常使用MonoDevelop或VSTU(Visual Studio Tools for Unity)调试C#代码,那欢迎向我们反馈你遇到的任何问题。编译器输出结果应该是一致的,但调试器可能对于某些生成的代码模式会很敏感。
有什么重大变化吗?
新编译器有一处已知的重大变化,就是闭包获取foreach变量的方式,这是由C#语言团队做出的改变。也就是说,如下代码将输出“b a r”而非目前的“r r r”:
var actions = new Action[3];
var j = 0;
foreach (var c in "bar")
actions[j++] = () => Console.WriteLine(c);
foreach (var a in actions)
a();
使用较新的VS或Mono均会得到这样的结果,这也是目前WSA平台所表现的行为,具体细节请看:
https://msdn.microsoft.com/en-us/library/hh678682(v=vs.110).aspx
是否修复了“foreach”内存分配的问题?
某些情况下是的,问题描述请看:
http://stackoverflow.com/questions/18552669/memory-allocation-when-using-foreach-loops-in-c-sharp
对Array、List、Dictionary或HashSet做“foreach”遍历是不会分配内存的。
为何不面向C# 5或C# 6?
第一步我们希望先推出新的编译器。未来再启用新的C#特性。
支持C#语言新特性面临的几个问题:
目前的生态系统不能完全把控新的C#(脚本更新器、调试器、特定的MonoDevelop/VisualStudio版本)
目前仍以旧的.Net 3.5为目标框架。在旧框架上支持新的C#或多或少会导致些迷惑。从头开始编写所有代码也许可行,但对于已有代码来说可能需要C#语言和框架都是最新才可以。
资料文献
原文出处:http://forum.china.unity3d.com/thread-19893-1-1.html
Unity 5.3.5p8 C#编译器升级的更多相关文章
- 从Unity3D编译器升级聊起Mono
接前篇Unity 5.3.5p8 C#编译器升级,本文侧重了解一些Mono的知识. Unity3D的编译器升级 新升级的Mono C#编译器(对应Mono 4.4) Unity编辑器及播放器所使用的M ...
- CentOS 7 升级gcc/g++编译器
gcc的升级必须要使用源码进行升级,也就说,必须要使用源码进行编译才行.我的7.2的CentOS目前自带的gcc是4.8.5的,gcc从4.8之后开始支持C++11,但是鉴于现在C++14.C++17 ...
- Unity GameObject.activeSelf, GameObject.activeInHierarchy,GameObject.SetActive和SetActiveRecursively
activeSelf(read only只读):物体本身的active状态,对应于其在inspector中的checkbox是否被勾选activeInHierarchy(read only只读):物体 ...
- 用ECMAScript4 ( ActionScript3) 实现Unity的热更新
unity热更新是一个经久不衰的话题.除了最常见的lua之外,还有如JSBinding,C#等等.这里介绍一个使用ECMAScript4进行热更新的方案.它吸收了各家的优点,特色很鲜明. 项目地址: ...
- Unity中资源打包成Assetsbundle的资料整理
最近在研究Unity中关于资源打包的东西,网上看了一堆资料,这里做个整合,说整合,其实也就是Ctrl-C + Ctrl-V,不是原创 首先为了尊重原创,先贴出原创者的文章地址: http://blog ...
- Unity资源Assetbundle
转 Unity资源打包之Assetbundle 本文原创版权归 csdn janeky 所有,转载请详细注明原创作者及出处,以示尊重! 作者:janeky 原文:http://blog.csdn.n ...
- Unity资源打包之Assetbundle
转 Unity资源打包之Assetbundle 本文原创版权归 csdn janeky 所有,转载请详细注明原创作者及出处,以示尊重! 作者:janeky 原文:http://blog.csdn.n ...
- 关于Unity中Shader的使用
在游戏的开发过程中,程序员不太会自己去写shader,因为写起来很麻烦,而且只有Unity会报错,编译器也没有什么提示. 通常是拿别人的shader改一改,当然,程序员还是要能看懂和会一点shader ...
- keil编译器从ac5迁移到ac6
今天在安富莱的论坛上ac6的使用方法,所以,就小试牛刀玩了玩,终于ok了.使用keil5.25+stm32+hal库,5.23开始才支持ac6,因此keil版本不能太低. 可以参考:https://b ...
随机推荐
- python-opencv笔记 图像的读取和简单几何图形绘制
- 11g新特性-使用DNFS
NFS相信应该都很熟悉了,但是我们对它的性能一直有所诟病.Oracle在10g版本通过允许对数据库文件直接IO引入ASM.在11g版本中,Oracle对NFS提供了类似的增强,为了改进NFS的性能,开 ...
- UWP Jenkins + NuGet + MSBuild 手把手教你做自动UWP Build 和 App store包
背景 项目上需要做UWP的自动安装包,在以前的公司接触的是TFS来做自动build. 公司要求用Jenkins来做,别笑话我,之前还真不晓得这个东西. 会的同学请看一下指出错误,不会的同学请先自行脑补 ...
- 移动适配请使用比rem等更好的布局方案
移动端大行其道,rem/em.百分比.响应式方案更是层出不穷,看见周围的伙伴们都在对使用rem和百分比情有独钟,可我却偏不爱,之所以出现如此多的方法,其目的只有一个屏幕适配. 屏幕适配顾名思义 ...
- Linux中安装NodeJs 、cnpm 、npm
一.安装NodeJs 切换到 cd /usr/local/src/ 下载nodejs wget https://nodejs.org/dist/v6.9.3/node-v6.9.3-linux-x64 ...
- 详细讲述MySQL中的子查询操作 (来自脚本之家)
继续做以下的前期准备工作: 新建一个测试数据库TestDB: ? 1 create database TestDB; 创建测试表table1和table2: ? 1 2 3 4 5 6 7 8 9 1 ...
- Oracle的tnsnames.ora配置(PLSQL Developer)
首先打开tnsnames.ora的存放目录,一般为D:\app\Administrator\product\11.2.0\client_1\network\admin,就看安装具体位置了. 步骤阅读 ...
- IDA的脚本IDC的一个简单使用
目的:主要是想学习一下IDA的IDC的脚本的使用.这里做了一个小的测试. 这里使用的是VS2015Community来生成文件的. 一.编写测试程序: 这里先生成我们的目标数据. 然后编写测试程序.得 ...
- 支付宝支付-APP支付服务端详解
支付宝APP支付服务端详解 前面接了微信支付,相比微信支付,支付宝APP支付提供了支付分装类,下面将实现支付宝APP支付.订单查询.支付结果异步通知.APP支付申请参数说明,以及服务端返回APP端发起 ...
- UGUI全面实践教程
UGUI全面实践教程 试读文档下载地址:http://pan.baidu.com/s/1hq3UYGk 介绍:UGUI是Unity官方推出的最新UI系统.本教程为国内唯一的UGUI专向资料.本教程 ...