【发布时间】:2019-06-01 15:50:57
【问题描述】:
我正在尝试“构建”在 Unity3D 上制作的游戏项目,但不断收到与代码无关的错误;据我了解。
- Unity 3D 版本 2018.3.0f2
- MacBook Pro、MacOS Mojave v. 10.14.2
游戏在这台和另外两台运行 Windows 10 操作系统的设备上运行良好。它在 Windows 操作系统上构建没有问题,但在 MacOS 上却没有。 项目完全相同;通过闪存驱动器复制以在两者之间传输,并作为 git 项目拉取。
我尝试通过安装助手和 Unity Hub 安装 Unity3D;两者都没有改变。
我确保安装了所有必需的依赖项,并多次重新安装。全新安装、重新启动,甚至重新安装操作系统,因为我刚刚让这台笔记本电脑用于我的 Unity 游戏开发项目。 经过多次失败的尝试,我专门为这个项目制作了一个分区驱动器,重新安装了所有东西并第一次运行了这个项目。试玩了一下,运行良好,但仍然无法构建。我这样做是因为我认为这是一个安全或“访问权限”问题。 有了这个,我什至允许 Unity 通过 Mac OS 的安全设置访问整个驱动器。
[1] https://imgur.com/q4prwXh“错误截图”。
预期项目将毫无问题地构建;发生的事情是我遇到了这些错误,我将尝试发布图片。
- 文本中的错误以防屏幕截图不起作用:
-
[1]
UnauthorizedAccessException:访问路径“/Volumes/(edited >out)/Temp/StagingArea/Data/Managed/Unity.Analytics.StandardEvents.dll” >被拒绝。 System.IO.File.Delete(System.String 路径)(在:0) UnityEditorInternal.AssemblyStripper.RunAssemblyStripper(System.Collections.IEnumerable 程序集,System.String managedAssemblyFolderPath,System.String[] assemblyToStrip,System.String[] searchDirs,System.String monoLinkerPath,UnityEditorInternal.IIl2CppPlatformProvider platformProvider,UnityEditor.RuntimeClassRegistry rcr,UnityEditor.ManagedStrippingLevel managedStrippingLevel) (在 /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/AssemblyStripper.cs:372) UnityEditorInternal.AssemblyStripper.StripAssemblies (System.String managedAssemblyFolderPath, UnityEditorInternal.IIl2CppPlatformProvider platformProvider, UnityEditor.RuntimeClassRegistry rcr, UnityEditor.ManagedStrippingLevel managedStrippingLevel) (在/Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/AssemblyStripper.cs:216 ) UnityEditorInternal.IL2CPPBuilder.Run () (在/Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:203) UnityEditorInternal.IL2CPPUtils.RunIl2Cpp(System.String stagingAreaData,UnityEditorInternal.IIl2CppPlatformProvider platformProvider,System.Action
1[T] modifyOutputBeforeCompile, UnityEditor.RuntimeClassRegistry runtimeClassRegistry) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:42) DesktopStandalonePostProcessor.SetupStagingArea (UnityEditor.Modules.BuildPostProcessArgs args, System.Collections.Generic.HashSet1[T] filesToNotOverwrite)(在 /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/DesktopStandalonePostProcessor.cs :245) DesktopStandalonePostProcessor.PostProcess(UnityEditor.Modules.BuildPostProcessArgs 参数)(在 /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/DesktopStandalonePostProcessor.cs:46) UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) -
[2]
UnityEditor.BuildPlayerWindow+BuildMethodException: 2 个错误 在 UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer(UnityEditor.BuildPlayerOptions 选项)[0x00234] 在 /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPlayerWindowBuildMethods.cs:190 在 UnityEditor.BuildPlayerWindow.CallBuildMethods (System.Boolean askForBuildLocation, UnityEditor.BuildOptions defaultBuildOptions) [0x0007f] 在 /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPlayerWindowBuildMethods.cs:96 UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
感谢您的帮助。
【问题讨论】:
-
尝试删除 Unity 项目中的 Temp 和 Library 文件夹,然后重新构建它。
-
@JeanLuc 感谢您的评论,但这也没有用。我曾怀疑这可能是问题所在。但是我发布的错误是在删除临时文件夹后发生的。注意:我在从 git 中提取项目后尝试重新构建,并在删除该文件夹并重新启动 Unity 后尝试重新构建。两种情况,同样的问题。
-
我阅读了许多其他帮助提示;弄乱了终端,用户权限,root访问权限,但没有任何效果。我什至完全格式化了我的驱动器,安装了一个全新的 Mojave (Mac OS) 副本,再次安装了 Unity,创建了一个全新的项目,场景中只有一个立方体。我运行了它,构建了它,并且成功了。然后从 git 中拉出我的项目,运行它,同样的错误。这个项目在其他系统上运行和构建,但不是我的 Mac OS。难道它最初是通过 Windows 操作系统编码和设置的吗?这有关系吗?