Unity3D
- 创建互动式实时内容的首要平台
- 快速构建 2D、3D 和 VR 游戏及应用。从艺术家工具到 LiveOps – 满足您将愿景变为现实所需的一切。
请勿与 Canonical 的 Unity 混淆(该 Unity 现在由 UBPorts 基金会维护并更名为 Lomiri)。
安装
Unity 提供了一个名为 Unity Hub 的程序,旨在通过提供一个集中位置来管理您的 Unity 项目,并简化您查找、下载和管理 Unity 编辑器安装的方式,从而简化您的工作流程。该应用程序以 Deb 或 RPM 软件包的形式提供。要安装 Unity Hub,只需安装 unityhubAUR 软件包。
要安装 beta 版本,只需安装 unityhub-betaAUR 软件包。
Android 远程
Unity Remote 是一款 Android 应用程序,旨在帮助测试 Android 设备的输入。它通过每帧向设备发送压缩的屏幕截图来实现这一点。
准备电脑
安装软件包
安装 android-udev 软件包,这将确保您为设备配置了正确的 udev 规则。
安装 android-sdkAUR 软件包。
配置编辑器
打开编辑器,导航到 编辑 > 首选项 并设置 Android SDK 和 JDK 的正确路径。
- Android SDK 通常位于
/opt/android-sdk
。 - JDK 因您使用的版本而异,如果要使用默认版本,请将其设置为
/usr/lib/jvm/default
。
导航到 编辑 > 项目设置 > 编辑器 并将 Unity Remote Device
设置为 任意 Android 设备
。
有关更多帮助,请参阅 Unity 文档。
准备 Android
从 Play 商店安装 Unity Remote 5。或者,您可以从 Asset Store 下载并自行构建。
还建议将您的 Android 设备设置为 PTP 模式。
有关更多帮助,请参阅 Unity 文档。
测试
如果您已打开 Unity,请关闭它。
将手机连接到电脑并启动 Unity Remote。
打开编辑器并按播放。您现在应该看到您的游戏传输到您的 Android 设备。
如果它不起作用或您有疑问,请参阅 Unity 文档。
Visual Studio Code
对于那些使用 Visual Studio Code 作为脚本编辑器的人来说,您需要执行一些额外的步骤才能使其运行而不会显示类似于以下的错误
[fail]: The reference assemblies for framework ".NETFramework,Version=v3.5" were not found
[warn]: OmniSharp.MSBuild.ProjectFile.ProjectFileInfo Unable to create directory "/Debug/". Access to the path "/Debug/" is denied. [fail]: OmniSharp.MSBuild.ProjectFile.ProjectFileInfo Could not write lines to file "/Debug/Assembly-CSharp.csproj.CoreCompileInputs.cache". Could not find a part of the path "/Debug/Assembly-CSharp.csproj.CoreCompileInputs.cache".
要消除这些错误,您需要安装以下软件包: dotnet-runtime, dotnet-sdk, mono-msbuild, mono-msbuild-sdkresolver, 和 mono。如果您想使用 C# Dev Kit 或 Unity 扩展,还需要安装 aspnet-runtime。最后,请记住通过按 Ctrl-P 并输入以下内容从 VS Code Marketplace 安装 C# 扩展
ext install ms-dotnettools.csharp
要使用系统提供的 .NET SDK,您还需要禁用以下选项
"omnisharp.useModernNet": false
在此配置更改之后,您可能需要重启 Visual Studio Code。
故障排除
崩溃日志位于 $HOME/.config/unity3d/Editor.log
Unity 在首次启动时或登录时崩溃
这是一个罕见的错误,其中 Unity 的配置创建错误。您可以尝试通过以下方式重置它
$ rm -rf ~/.config/unity3d/{*.prefs,*.log,Preferences}
Unity 尝试加载项目时崩溃
用户 报告称,取消设置 GTK_IM_MODULE
可以防止崩溃。
如果缺少 ~/.config/user-dirs.dirs,Unity 崩溃
请参阅此处了解如何生成 xdg 文件: XDG 用户目录
Unity 因 DllNotFoundException 崩溃
在 Unity 2019 及更高版本中,如果您看到类似以下的消息: DllNotFoundException: Unable to load the unmanaged library (x) Reason: libtinfo.so: cannot open shared object file: No such file or directory
,请尝试安装 ncurses5-compat-libsAUR。
Unity 构建项目到 webGL 平台失败
IL2CPP 在构建过程中需要 libtinfo-5.so 库,而 ncurses5 提供了它。因此,如果您想构建到 webGL,请确保安装 ncurses5-compat-libsAUR。
在 Playtesting 时出现轻微卡顿 (NVIDIA)
垂直同步似乎无法在 NVIDIA 显卡/驱动程序上正常工作。解决方案:在 nvidia-settings 中转到“OpenGL 设置”并关闭“同步到 VBlank”。
当将 “transform.Rotate” 与 “Input.GetKey” 结合使用时,会出现/注意到这种行为。
错误:多个 Unity 实例无法打开同一项目
Unity 可能没有正确关闭,在这种情况下,您应该导航到您的项目文件夹并删除 Temp 文件夹。
Android 远程无法工作 / 运行 Android 构建失败,提示 "无法将网络流量转发到设备"
尝试此解决方法
- 关闭 Unity。
- 使用
adb kill-server
关闭 adb 守护程序 - 插入 Android 设备。
- 使用
adb devices
查找您的设备 ID - 使用
adb -s "deviceID" forward "tcp:34999" " "
将"deviceID"
替换为正确的设备 ID。
现在您可以打开 Unity 并进行测试了,将会出现一个错误 "socket bind failed",您可以安全地忽略它。
没有窗口打开:桌面为 0 x 0 @ 0 Hz
如果使用 Wayland,请尝试通过设置环境变量 SDL_VIDEODRIVER=x11
来使用 Xorg 后端的 SDL。
Brotli 无效 ELF 标头
如果您看到类似于以下的错误
Failed running python2 "$EDITOR_PATH/Editor/Data/PlaybackEngines/WebGLSupport/BuildTools/Brotli/python/bro.py"
您可以将 Brotli Mac OS X egg 替换为位于 ~/.cache/Python-Eggs/Brotli-0.4.0-py2.7-macosx-10.10-x86_64.egg-tmp
的 Linux egg,或者在 文件 > 构建设置 > 播放器设置 > 播放器 > 发布设置 > 压缩格式 中将 Brotli 切换为 gzip。
无法在包管理器中加载资源
如果您配置了代理/VPN,请重置它。重置您的 防火墙 也可能有效(例如,iptables 的 iptables#重置规则)。
菜单在进入播放模式后不响应点击
首先,安装 downgradeAUR。
然后,运行
downgrade glib2
并选择版本 "2.72.1"。
Unity 无法保存首选项
Unity Hub 或编辑器无法创建用于存储首选项的文件夹。
如果发生这种情况,请在 ~/.local/share
中手动创建 unity3d
文件夹。完整路径应为:~/.local/share/unity3d
如果成功完成,编辑器将在其中创建一个 prefs 文件。