【问题标题】:Errors when Porting Unity Project to UWP for Windows Mixed Reality将 Unity 项目移植到 UWP for Windows Mixed Reality 时出错
【发布时间】:2018-05-27 23:41:32
【问题描述】:

我正在将我的统一游戏从 Oculus 和 HTC Vive 的 Windows 平台移植到 Windows Mixed Reality 的通用 Windows 平台。 我正在使用 Unity 2017.2.0p2

似乎有些库未包含在内或 UWP 不支持。我的标题可以在编辑器中正常运行,但是当我构建游戏时,我遇到了许多错误,主要是说“x”不包含“y”的定义。

这是我遇到的错误(还有比这更多的错误,但它们大多是重复引用的内容。)

Assets\SwarmAgent\Scripts\RingBuffer.cs(184,39):错误 CS0117: “MethodImplOptions”不包含“Synchronized”的定义

Assets\SwarmAgent\Scripts\MapReduce.cs(48,24):错误 CS1061:“线程” 不包含“中止”的定义,也没有扩展方法 可以找到接受“线程”类型的第一个参数的“中止” (您是否缺少 using 指令或程序集引用?)

Assets\SwarmAgent\Scripts\MapReduce.cs(92,18):错误 CS1729:“线程” 不包含带 1 个参数的构造函数

Assets\PostProcessing\Runtime\Utils\RuntimeUtilities.cs(489,27):错误 CS1929:“类型”不包含“IsDefined”的定义,并且 最佳扩展方法重载 'CustomAttributeExtensions.IsDefined(MemberInfo, Type, bool)' 需要 'MemberInfo' 类型的接收者

Assets\PostProcessing\Runtime\Utils\RuntimeUtilities.cs(490,23):错误 CS1929:“类型”不包含“GetCustomAttributes”的定义 和最好的扩展方法重载 'CustomAttributeExtensions.GetCustomAttributes(成员信息,类型, bool)' 需要 'MemberInfo' 类型的接收器

Assets\PostProcessing\Runtime\PostProcessManager.cs(71,25):错误 CS0103:当前上下文中不存在名称“AppDomain”

Assets\PostProcessing\Runtime\PostProcessManager.cs(80,34):错误 CS1579:foreach 语句无法对“?”类型的变量进行操作 因为 '?'不包含“GetEnumerator”的公共定义

Assets\PostProcessing\Runtime\PostProcessEffectSettings.cs(26,41): 错误 CS1061:“类型”不包含“IsSubclassOf”的定义 并且没有扩展方法'IsSubclassOf'接受第一个参数 可以找到类型“类型”(您是否缺少 using 指令或 汇编参考?)

资产\终极游戏 工具\AutomaticLOD\Scripts\AutomaticLOD.cs(1706,23):错误 CS1061: 'Type' 不包含 'GetFields' 的定义并且没有扩展名 接受“Type”类型的第一个参数的方法“GetFields”可以是 找到(您是否缺少 using 指令或程序集引用?)

资产\终极游戏 工具\AutomaticLOD\Scripts\AutomaticLOD.cs(1708,26):错误 CS1579: foreach 语句不能对“?”类型的变量进行操作因为 '?' 不包含“GetEnumerator”的公共定义

资产\终极游戏 工具\AutomaticLOD\Scripts\AutomaticLOD.cs(1718,22):错误 CS1061: 'Type' 不包含 'GetProperties' 的定义,并且没有 扩展方法“GetProperties”接受类型的第一个参数 可以找到“类型”(您是否缺少 using 指令或 汇编参考?)

Assets\SteamVR\Plugins\openvr_api.cs(2984,27):错误 CS0117: “环境”不包含“OSVersion”的定义

Assets\SteamVR\Plugins\openvr_api.cs(2984,49):错误 CS0234:类型 或命名空间名称“PlatformID”在命名空间中不存在 “系统”(您是否缺少程序集引用?)

Assets\SteamVR\InteractionSystem\Core\Scripts\Util.cs(497,9):错误 CS0234:类型或命名空间名称“进程”不存在于 命名空间“System.Diagnostics”(您是否缺少程序集 参考?)

Assets\SteamVR\InteractionSystem\Core\Scripts\Util.cs(613,39):错误 CS0117:“环境”不包含对 'GetCommandLineArgs'

Assets\VRTK\SDK\SteamVR\SDK_SteamVRDefines.cs(92,42):错误 CS7036: 没有给出与所需形式相对应的参数 'TypeExtensions.GetNestedType(类型,字符串, BindingFlags)'

Assets\VRTK\SDK\Base\SDK_DescriptionAttribute.cs(141,25):错误 CS1061:“类型”不包含“GetCustomAttributes”的定义 并且没有扩展方法“GetCustomAttributes”接受第一个 可以找到“类型”类型的参数(您是否缺少使用 指令还是程序集引用?)

Assets\VRTK\Scripts\Utilities\VRTK_SharedMethods.cs(471,36):错误 CS0103:当前上下文中不存在名称“AppDomain”

Assets\VRTK\Scripts\Utilities\SDK\VRTK_SDKSetup.cs(334,53):错误 CS1061:“类型”不包含“基本类型”的定义,并且没有 扩展方法“BaseType”接受“Type”类型的第一个参数 可以找到(您是否缺少 using 指令或程序集 参考?)

Assets\Particle Playground\Scripts\PlaygroundC.cs(1798,7):错误 CS0103: 当前不存在名称“playgroundPool” 上下文

这是完整的错误日志 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

【问题讨论】:

    标签: .net unity3d uwp windows-10-universal build-error


    【解决方案1】:

    UWP 应用使用 .NET API 的一个子集,因此您习惯使用的所有功能都无法使用。我相信这是为了让功能较弱的设备保持最小化。

    取自以下链接:

    请注意,用于 UWP 应用的 .NET 包含完整 .NET Framework 中为每个命名空间提供的类型的子集

    您可以查看迁移指南here

    还有UWP version of .NET的参考

    对不起!这很痛苦,我目前也在经历。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-01
      • 2018-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多