我正在将我的 Unity 标题从 Windows 平台移植到 Windows 混合现实的通用 Windows 平台。 我正在使用 Unity 2017.2.0p2
似乎有一些库未包含在内或不受 UWP 支持。我的游戏可以在编辑器中运行而不会出现问题,但是当我构建游戏时,我遇到了许多错误,主要是说"x"不包含"y"的定义。
这是我收到的错误(还有比这更多的错误,但它们大多是重复的,当某些东西被多次引用时。
资产\SwarmAgent\脚本\RingBuffer.cs(184,39):错误 CS0117: "MethodImplOptions"不包含"已同步"的定义
Assets\SwarmAgent\Scripts\MapReduce.cs(48,24):错误 CS1061:"线程" 不包含"中止"的定义,也没有扩展方法 可以找到接受类型为"线程"的第一个参数的"中止" (是否缺少 using 指令或程序集引用?
资产\SwarmAgent\脚本\MapReduce.cs(92,18):错误 CS1729:"线程" 不包含接受 1 个参数的构造函数
Assets\PostProcessing\Runtime\Utils\RuntimeUtilities.cs(489,27): error CS1929:"类型"不包含"IsDefined"的定义,并且 最佳扩展方法重载 'CustomAttributeExtensions.IsDefined(MemberInfo, Type, bool)' 需要 "会员信息"类型的接收器
Assets\PostProcessing\Runtime\Utils\RuntimeUtilities.cs(490,23): error CS1929:"类型"不包含"获取自定义属性"的定义 和最好的扩展方法重载 'CustomAttributeExtensions.GetCustomAttributes(MemberInfo, Type, bool)"需要类型为"成员信息"的接收器
资产\后处理\运行时\后进程管理器.cs(71,25):错误 CS0103:当前上下文中不存在名称"AppDomain">
资产\后处理\运行时\后进程管理器.cs(80,34): 错误 CS1579:foreach 语句不能对类型为"?"的变量进行操作 因为"?"不包含"GetEnumerator"的公共定义
Assets\PostProcessing\Runtime\PostProcessEffectSettings.cs(26,41): 错误 CS1061:"类型"不包含"IsSubclassOf"的定义 并且没有扩展方法"IsSubclassOf"接受第一个参数 可以找到类型"类型"(您是否缺少使用指令或 程序集引用?
资产\终极游戏 工具\自动LOD\脚本\自动LOD.cs(1706,23):错误CS1061: "类型"不包含"获取字段"的定义,也没有扩展名 方法"GetFields"接受类型为"类型"的第一个参数可以是 找到(是否缺少 using 指令或程序集引用?
资产\终极游戏 工具\自动LOD\脚本\自动LOD.cs(1708,26): 错误 CS1579: foreach 语句不能对类型为 '?' 的变量进行操作,因为 '?' 不包含"GetEnumerator"的公共定义
资产\终极游戏 工具\自动LOD\脚本\自动LOD.cs(1718,22):错误 CS1061: "类型"不包含"获取属性"的定义,并且没有 扩展方法"GetProperties"接受类型的第一个参数 可以找到"类型"(您是否缺少使用指令或 程序集引用?
资产\蒸汽VR\插件\openvr_api.cs(2984,27):错误 CS0117: "环境"不包含"OSVersion"的定义
资产\蒸汽VR\插件\openvr_api.cs(2984,49):错误 CS0234:类型 或命名空间中不存在命名空间名称"平台 ID" "系统"(是否缺少程序集引用?
Assets\SteamVR\InteractionSystem\Core\Scripts\Util.cs(497,9):error CS0234:类型或命名空间名称"进程"不存在 命名空间"系统诊断"(您是否缺少程序集 参考?
Assets\SteamVR\InteractionSystem\Core\Scripts\Util.cs(613,39):error CS0117:"环境"不包含 'GetCommandLineArgs'
资产\VRTK\SDK\蒸汽VR\SDK_SteamVRDefines.cs(92,42):错误 CS7036: 没有给出与所需的形式相对应的参数 参数 'bindingAttr' of 'TypeExtensions.GetNestedType(Type, string, 绑定标志)'
资产\VRTK\SDK\基本\SDK_DescriptionAttribute.cs(141,25):错误 CS1061:"类型"不包含"获取自定义属性"的定义 并且没有扩展方法"GetCustomAttributes"接受第一个 可以找到类型为"类型"的参数(您是否缺少使用 指令还是程序集引用?
资产\VRTK\脚本\实用程序\VRTK_SharedMethods.cs(471,36): 错误 CS0103:当前上下文中不存在名称"AppDomain">
资产\VRTK\脚本\实用工具\SDK\VRTK_SDKSetup.cs(334,53): 错误 CS1061:"类型"不包含"基本类型"的定义,并且没有 扩展方法"BaseType"接受类型"类型"的第一个参数可以找到(您是否缺少使用指令或程序集 参考?
资产\粒子游乐场\脚本\游乐场C.cs(1798,7):错误 CS0103:当前不存在"游乐场游泳池"的名称 上下文
这是完整的错误日志 https://drive.google.com/file/d/1ww6ez4O891nSh6HI0CC-Cv6Ex5M6aTBA/view?usp=sharing
我也把这个发布到团结论坛上,这里是我在那里的帖子的链接。 https://forum.unity.com/threads/errors-when-porting-unity-project-to-uwp-for-windows-mixed-reality.508795/#post-3321995
UWP 应用使用 .NET API 的子集,因此没有你习惯的所有可用内容。 我相信这是为了将功能较弱的设备保持在最低限度。
取自以下链接:
请注意,适用于 UWP 应用的 .NET 包括完整 .NET Framework 中为每个命名空间提供的类型子集
您可以在此处查看迁移指南
以及 .NET 的 UWP 版本的参考
不好意思! 这是一种痛苦,我目前正在经历它。