W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
本節(jié)提供有關以下問題的信息:
如果遇到與網(wǎng)絡有關的問題,也可以運行 Unity Package Manager Diagnostics 工具。有關更多信息,請參閱網(wǎng)絡問題。
在 Package Manager 遇到問題時,Package Manager 窗口中會顯示錯誤指示符:
狀態(tài)欄中顯示的錯誤消息表示 Package Manager 檢測到與特定包無關的問題。例如,如果 Package Manager 無法訪問包注冊表服務器,則將在狀態(tài)欄中顯示以下消息:
網(wǎng)絡錯誤消息
如果您的網(wǎng)絡無法訪問包注冊表服務器,可能是因為網(wǎng)絡存在連接問題。您或系統(tǒng)管理員修復網(wǎng)絡錯誤后,狀態(tài)欄將清空。
If your network connection is working, but you are not signed into your Unity account, the Package Manager doesn’t display any Asset Store packages. When you try to use the My Assets scope, the Package Manager displays an error in the status bar:
已注銷 Unity 帳戶
在列表視圖中單擊 Sign in 按鈕可通過 Unity Hub 登錄到您的 Unity 帳戶。
如果特定的包在加載或安裝時出現(xiàn)問題(例如,在確定要加載的包版本時),則損壞的包旁邊的包列表中將顯示錯誤圖標 () (A)。要找出問題所在,請打開損壞的包的詳細信息視圖以查看詳細的錯誤消息 (B):
依賴關系錯誤消息
While building, if there are a lot of errors about Missing Behavior, the UnityLinker might be mistakenly stripping out a component that it thinks is unreferenced. It often does this because the stripping level is too aggressive. For example, if you have a prefab in an AssetBundle that references the SpriteShape component in the 2D SpriteShape package, the object might be missing and might generate compiler warnings.
To fix this, you can either lower the stripping level for the UnityLinker or declare the package’s assemblies inside the link.xml
file in order to preserve them from being stripped:
<linker>
<assembly fullname="Unity.2D.SpriteShape.Runtime" preserve="all"/>
<assembly fullname="Unity.2D.Common.Runtime" preserve="all"/>
</linker>
For more information on stripping levels and the UnityLinker, see Managed code stripping.
如果您的 package.manifest
文件有格式錯誤,則在 Unity 控制臺中將出現(xiàn)類似以下錯誤:
Failed to resolve packages: The file [<project-path>/Packages/manifest.json] is not valid JSON:
Unexpected token '}' at 44:1
}
You can use the information contained in the error message to fix the JSON. There are a number of online validators that you can use to try to correct the problem. Once you save the corrected file, Unity reloads the Package Manager window.
As of 2019.3, your manifest.json
file should not contain any references to the com.unity.package-manager-ui package. You can either reset your project’s package configuration or remove the following line from the manifest’s dependencies list:
"com.unity.package-manager-ui": "2.1.1",
If you are still experiencing problems, check to see if your project manifest uses “exclude” as a package version. This is an obsolete value for the dependencies property. If you find any lines like these, remove the entire line. Package Manager only installs packages that are explicitly included as a dependency in your project, so once you remove that entry, Package Manager ignores the package and doesn’t install it.
如果 Package Manager 仍然無法加載,請遵循無法識別包和重置項目的包配置下的步驟進行操作。
當您將項目升級到更高的 Unity 版本時,Package Manager 會自動將不兼容的包更新為更高的兼容版本。但是,如果您的包不能編譯,則 Package Manager 會在控制臺中顯示錯誤消息。
要處理這些消息,請閱讀錯誤消息并盡可能解決所有問題。例如,一個包可能缺少對另一個包或版本的依賴。在這種情況下,您可以嘗試自己安裝該包。
您也可以按照以下順序來嘗試每個解決方案,直到找到可行的解決方案:
Packages
文件夾,然后再刪除該文件夾。Packages
文件夾中的包來源文件,然后將它們刪除,只留下 manifest.json
文件。然后嘗試重新加載項目。Library/PackageCache/com.unity.package-manager-ui@<version>
文件夾替換為新創(chuàng)建的項目中的同一個文件夾。如果您嘗試從注冊表安裝新的包但無法安裝,可能是由于權限問題所致。
必須對緩存文件夾具有完整權限:
C:\Users\yourname\AppData\Local\Unity\cache
~/Users/Library/Unity/cache
It might be a problem with the network. Check your firewall and proxy settings.
有時,學校、政府機關或受網(wǎng)絡保護的工作場所等機構環(huán)境會設置代理服務器來控制網(wǎng)絡與互聯(lián)網(wǎng)之間的通信,并使用自己的服務器證書,而 Unity 或 Package Manager 無法識別這些證書。請與您的網(wǎng)絡管理員聯(lián)系。
如果看到很多編譯錯誤,可能表明 Unity 無法識別現(xiàn)有項目中的包。在這種情況下,可能缺少 .NET 組件。
對于 Windows:
1.下載并安裝 Visual Studio 2017 版本 15.9.0 或更高版本,并在 Other Toolsets 下面選中 .NET Core cross-platform development workload。 2.下載并安裝 .NET SDK v2.2.101 組件。
對于 MacOS:
1.下載并安裝 .NET SDK v2.2.101 組件。
2.在 Visual Studio 中安裝所有建議的更新
3.使用 homebrew 來計劃和安裝 mono:
?```shell
brew update
brew install mono # optional
brew upgrade mono
?```
4.如有必要,刪除項目下的 Library/obj/temp
文件夾,然后重新啟動 Unity。
5.如果仍然遇到困難,請嘗試重新啟動計算機。
如果控制臺報告說找到了 hostfxr.dll
庫,但 Unity 無法從 C:\<path_to_app>\hostfxr.dll
加載該庫,那么可以通過安裝 KB2999226 和 KB2533623 補丁在 Windows 7 或 Windows Server 2008 R2 上修正此錯誤。
如果一個項目有太多的包問題,則可以將項目重置為 Unity 的 Editor 版本的默認包配置。此操作將重置項目中的所有包。這可能無法解決問題的根源,但是可以幫助您找出問題所在。
注意:您無法撤消對包配置的重置操作,因此請確保首先備份 manifest.json
文件,或者確保您的項目處于源代碼控制之下。此外,還可以采取其他預防措施,包括:克隆項目,在克隆版本上測試操作之后再繼續(xù)。
要恢復為默認包配置,請從 Help 菜單中選擇 Reset Packages to defaults。
Help > Reset Packages to defaults
在執(zhí)行最終更改之前,您也可以測試是否可以恢復為默認包:
1.要克隆項目,請復制粘貼項目文件夾,然后重命名項目文件夾以便于識別(例如,如果您的項目名為 MyProject
,則可以使用類似 clone_MyProject
的名稱)。
2.加載新克隆的項目。
3.從 Help 菜單中,選擇 Reset Packages to defaults。
根據(jù)項目的大小,這可能需要幾分鐘。
4.檢查是否成功重置了包。如果成功,則表示您可以安全地對原始項目執(zhí)行操作。
如果使用 SSH 協(xié)議通過 Git URL 來安裝包,即使您正在后臺運行 ssh-agent 并且您的 PID 環(huán)境變量已正確設置,也可能會遇到來自 Git 的身份驗證錯誤。
盡管您的腳本可以在后臺成功啟動 ssh-agent,但是導出的環(huán)境變量僅適用于運行腳本的 Bash shell 以及之后由該腳本啟動的任何子進程。這是因為您的腳本無法更改父進程、無關進程或先前創(chuàng)建的子進程中的環(huán)境變量。即使腳本位于 .bashrc
中,也只會在 Bash shell 中執(zhí)行。
通過雙擊 Unity 圖標或使用 Hub 啟動 Unity 或 Unity Hub(在 Windows 和 macOS 中)時,不會在 shell 中運行,因此不會執(zhí)行腳本。這意味著 Unity Editor 進程不會設置這些變量,因此 Unity 調用的 Git 進程最終也不會設置這些變量。
要解決此問題,可以執(zhí)行以下操作之一:
# Expose env variables to native windows
setx SSH_AGENT_PID "$SSH_AGENT_PID"
setx SSH_AUTH_SOCK "$SSH_AUTH_SOCK"
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: