- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这几天一直在用Unity3D,查了.NET系统的手册。但是感觉很迷茫。
在Unity3D Player Settings中,有“scripting runtime version”和“api compatibility level”两个选项。
当我将“脚本运行时版本”设置为“.NET 3.5 等效版本”时,我可以在“.NET 2.0”和“.NET 2.0 子集”之间选择“api 兼容级别”。但是为什么这两个期权值(value)不同呢?他们不应该引用相同的 .NET 版本值吗?两个不同选项中的“.NET”一词是什么意思? Unity3D 实际使用哪个 .NET 版本?
而且,当我将“脚本运行时版本”设置为“.NET 4.6 等效版本”时,我可以将“api 兼容级别”选择为“.NET4.6”。但是为什么此时这两个选项的值是一样的呢?
另一方面,我在微软网站上找到一些介绍.NET系统的手册,上面说有.NET Standard、.NET Framework、.NET Core和Mono。根本没有独立的“.NET”实体。
那么,Unity Player Settings的“scripting runtime version”和“api compatibility level”中的.NET version到底是什么意思呢?
事实:
Unity2017.1.0前没有“脚本运行时版本”选项
.NET Framework有很好的落后compatibility ,这意味着 .NET 2.0 组件能够在 .NET 3.5 上不间断地运行。
当我们谈论 .NET 版本时,它通常指的是 .NET Framework 的版本。
Unity3D 正在将运行时更新到 .NET 4.6。
推断:
.NET Framework 具有良好的向后兼容性,mono 也是如此。
Unity3D 使用单声道作为运行时,相当于.NET 3.5
Unity3D 仅使用 .NET 2.0 功能进行编译,但具有可运行的 .NET 3.5 运行时。这就是为什么当“脚本运行时版本”是“.NET 3.5”时“api 兼容级别”是“.NET 2.0”
Unity3D 正在更新以在 .NET 4.6 运行时上使用 .NET 4.6 功能。这就是为什么当“脚本运行时版本”是“.NET 4.6”时“api 兼容级别”是“.NET 4.6”
这是另一个相关问题:Why does Unity use .NET 2.0 when Mono supports .NET 3.5?
和相关主题:https://forum.unity.com/threads/to-linq-or-not-to-linq.223887/
最佳答案
What does .NET version in "scripting runtime version" and "api compatibility level" of Unity Player Settings actually mean?
API 兼容性级别:
只是提供给您的一个选项,用于指定编译器应如何编译项目。它们是相同的.Net 版本。请参阅下文了解每个选项的内容。
.NET 2.0 子集
.NET 2.0 则相反。
脚本运行时版本:
您可以在此处选择要使用的 .NET 版本。更改此项将允许您使用选择的 .NET API 和运行时版本。
因此,选择 .NET 4.6 可让您使用 .Net 4.6 API 编写代码,Unity 将在您的游戏中包含 .NET 4.6 运行时。同样的事情也适用于 .NET 3.5。
想知道为什么他们都将“等效”作为后修复?这是因为一些 API 和功能在 Unity 中被删除或剥离。您会注意到这一点,但这仅适用于少量的 .NET API。他们中的大多数都得到支持。
And, when I set "scripting runtime version" to ".NET 4.6 Equivalent", I can choose "api compatibility level" as ".NET4.6". But why these two option values are the same at this time???
没有。这不是真的。您只能在 “脚本运行时版本” 选项中看到这两个选项,但您不能选择 .NET 3.5" if "API 兼容级别" 设置为 ".NET 4.6"。
如果您尝试这样做,Unity 应该重新启动,然后为“脚本运行时版本” 选择".NET 3.5" 并自动更改"API 兼容级别" 从 .NET 4.6" 到 ".NET 3.5"。
因此,如果 ".NET 4.6" 作为 "API 兼容级别",您必须还选择 ".NET 4.6 “ 作为 “脚本运行时版本”。
Which .NET version is Unity3D actually using?
您在“脚本运行时版本” 菜单下选择的版本。
I wonder why I only have to select ".NET 2.0" or ".NET 2.0 Subset" for "api compatibility level" when setting "scripting runtime version" to ".NET 3.5". When "scripting runtime version" equals ".NET 3.5", I think "api compatibility level" should be ".NET 3.5" or ".NET 3.5 Subset". That is weird here in Unity. What went wrong here?
许可。
存在许可问题。 Unity 公司更新运行时的唯一方法是向 Xamarin 支付大量资金,因为 Xamirin 使 Unity 正在使用的单声道运行时处于 LGPL 之下。他们不想那样做。我注意到在与 Microsoft 和 joined 合作后,他们能够更新单声道运行时。 .NET 基金会去年。
关于c# - Unity3D,为什么 "scripting runtime version"是.NET3.5而 "api compatibility level"是.NET2.0? PlayerSettings 中的两个选项究竟是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47813465/
我是业余时间的 Java 开发者,我只是想知道 level.tick() 和 Level.tick(level) ('Level' 是类的名称,'level' 是该类的对象) 我知道,由于 java
在 asp.net MVC 中的 Level Views Level 或 Model level 中验证更明智 以及有关 MVC 中验证的良好教程的链接? 最佳答案 验证应始终在可能的情况下在客户端和
当使用随机数生成器时,为了使新值具有更大的随机性,这是更好的使用方式: 有没有一种每次都实例化一个新的 RNG 实例然后返回一个值的方法? 在类级别有一个 RNG 实例,它在构造函数中实例化一次,并且
我在理解“单一责任原则”时遇到问题。应该在类级别或方法级别应用SRP。 可以说我有学生类,我需要创建学生,更新学生和删除学生。 如果我创建一个具有用于这三个操作的方法的服务类,则会违反SRP原则。 最
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
这个问题与语言无关。枚举级别之间有什么区别。在应用程序中,我看到许多 INFO 消息对我来说似乎是 DEBUG 信息,反之亦然。 最佳答案 对此有多种不同的解释。我个人的看法是: 信息 - 与申请状态
似乎最好只为顶级函数创建一次 FunPtr,而不是在需要时创建一个新的函数(同一函数)并处理其释放。 除了 foreign import ccall "wrapper" 之外,我是否忽略了获取 Fun
我正在经历以下 link了解在依赖倒置原则的背景下高级和低级模块的含义。 根据那里给出的解释,以下代码片段是一个好的/合适的示例吗? public class HighLevel { priv
我很好奇在 Java 应用程序中执行 URL 重写的最佳方法是什么。假设您有一个名为 test_app 的应用程序,我将其部署在 tomcat 上。 通过 URL 重写,我的意思是我不想通过 host
我试图找到最有效的方法来检查给定的字符串是否为回文。 首先,我尝试了蛮力,其运行时间为 O(N)。然后我通过只进行 n/2 次比较而不是 n 次来稍微优化代码。 代码如下: def palindrom
我有一个包含一些随机自然数的表格,例如: number ------- 2 3 1 我想从这个表中检索一个集合,其中每一行都将包含与值显示的次数一样多的次数,例如上面它将是: number -----
我一直在了解测试驱动开发的优势,并尝试使用 pytest 开发我的第一个 TDD 应用程序和 setuptools 开发 选项。到目前为止进展顺利。我有一个问题:我的 test_* 模块中应该将要测试
我想将特定记录器名称、特定级别或更高级别(比如 INFO 及以上)的消息记录到特定的日志处理程序,比如文件处理程序,同时仍然获取所有日志消息到控制台。 Python 是 2.7 版。 到目前为止我尝试
DOM Level 0 事件与 DOM Level 2 事件有什么区别?我问是因为有人告诉我 Firefox 和 IE 以不同的顺序调用它们,而我以前从未听过这些术语。 最佳答案 DOM Level
其实我对token不是很了解..当我阅读 googleresearch/bert model 时,我看到了这些词。 # In the demo, we are doing a simple class
假设我们在站点中有一个页面,它显示了数据库中的一些记录。 我们需要显示按某列排序的记录。 哪种方法可以提供更好的性能:检索从数据库中排序的数据或在网格上应用排序? 谢谢 最佳答案 这取决于您要显示的数
其实我对token不是很了解..当我阅读 googleresearch/bert model 时,我看到了这些词。 # In the demo, we are doing a simple class
我有以下 CSS 下拉菜单标记: FieldOne LevelOne FieldTwo LevelOne FieldThree LevelOne
这个问题已经有答案了: What is the difference between DOM Level 0 events vs DOM Level 2 events? (2 个回答) 已关闭 9 年
如何通过搜索数组(第 2 级)中的重复值来删除一行数组(第 1 级)? $array = array( 0 => array('name' => 'haha1', 'dateline' => '
我是一名优秀的程序员,十分优秀!