我是統一尋址的新手,想加載一個帶有 AssetReference 的場景。為了將 AssetReferences 強制為場景,我在實用程式程式集中創建了以下類:
using System;
using UnityEngine;
using UnityEngine.AddressableAssets;
[Serializable]
public sealed class SceneReference : AssetReferenceT<SceneAsset>
{
public SceneReference(string guid) : base(guid) { }
}
JetBrains Rider 然后說 SceneAsset 必須從 assembly: 中參考UnityEditor.CoreModule。我使用了它的建議,Rider 自動設定了裝配參考。一切都很好,實際上我只能將場景拖到一個SceneReference欄位中。
但是當我開始構建時,一切都崩潰了。我得到四個錯誤:
1:Internal build system error. Backend exited with code 139.
2:Error building Player because scripts had compiler errors
3:Build completed with a result of 'Failed' in 11 seconds (11360 ms) UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) (at /Users/bokken/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:189)
4:UnityEditor.BuildPlayerWindow BuildMethodException: 2 errors at UnityEditor.BuildPlayerWindow DefaultBuildMethods.BuildPlayer (UnityEditor.BuildPlayerOptions options) [0x002ce] in /Users/bokken/buildslave/unity/build/Editor/Mono/BuildPlayerWindowBuildMethods.cs:193 at UnityEditor.BuildPlayerWindow.CallBuildMethods (System.Boolean askForBuildLocation, UnityEditor.BuildOptions defaultBuildOptions) [0x00080] in /Users/bokken/buildslave/unity/build/Editor/Mono/BuildPlayerWindowBuildMethods.cs:94 UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) (at /Users/bokken/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:189)
我試圖手動定位程式集UnityEditor.CoreModule并在我的實用程式程式集中參考它,assembly definition asset但找不到它。它在編輯器中仍然可以很好地作業,但不會為構建進行編譯。如果有人有解決方案或至少知道為什么這不起作用,我將不勝感激。
uj5u.com熱心網友回復:
SceneAsset確實不能在構建中,僅存在于 Unity 編輯器中。這是僅存在于編輯器中的資產的一種特殊情況,因為稍后在構建中,場景的處理方式與運行時完全不同Scene。
整個UnityEditor命名空間在構建中被完全剝離。
對于序列化,最好的選擇通常是序列化和存盤資產路徑,然后使用它來加載場景。
不過,您仍然可以使場景可尋址,并通過通常更手動的可尋址路徑加載它們。請參閱可尋址物件 - 場景加載。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/528937.html
下一篇:C#洪水填充但閾值允許相似顏色?
