尝试使用统一性构建游戏时收到以下错误:
该名称
AssetDatabase在当前上下文中不存在
任何人都可以帮忙..我将感谢您能提供的所有帮助..谢谢
生成完成,结果为“失败” UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()
UnityEditor.BuildPlayerWindow + BuildMethodException:
UnityEditor.BuildPlayerWindow + DefaultBuildMethods.BuildPlayer上的5个错误(BuildPlayerOptions选项)[0x0021f]在C:\ buildslave \ unity \ build \ Editor \ Mono \ BuildPlayerWindowBuildMethods.cs:187中,
在UnityEditor.BuildPlayerWindow.CallBuildMethods(Boolean askForBuildLocation,BuildOptions defaultBuildOptions)[0x0007f]在C:\ buildslave \ unity \ build \ Editor \ Mono \ BuildPlayerWindowBuildMethods.cs:94 UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()
AssetDatabase仅适用于编辑器。你可以用Resources.Load它代替。
例如:
var jsonTextFile = Resources.Load<TextAsset>("Text/jsonFile01");
加载存储在资源
path文件夹中的请求类型的资源 。如果可以找到该资源,则该方法返回该资源
path,否则返回 null。请注意,path不区分大小写,并且不得包含文件扩展名。Unity中的所有资源名称和路径都使用正斜杠,因此在路径中使用反斜杠将不起作用。它与项目的 Assets 文件夹中名为Resources
path的任何文件夹相关。可以使用多个资源文件夹。如果您有多个资源文件夹,则无法重复使用资产名称。例如,项目可能具有名为和的资源文件夹 。路径不需要在字符串中包含和,例如加载游戏对象 at 只需要作为路径。此外,如果存在,可以将其用作字符串来加载。如果您有多个 资源文件夹,则无法重复使用资产名称。Assets / Resources/Assets / Guns / Resources/AssetsResourcesAssets / Guns / Resources / Shotgun.prefabShotgunAssets / Resources / Guns / Missiles / PlasmaGun.prefabGuns / Missiles / PlasmaGunpath
似乎在您使用的脚本之一中,AssetDatabase它属于UnityEditor名称空间。它仅存在于Unity编辑器内部。
在构建中,命名空间UnityEditor不存在->您不能在构建的应用程序中使用任何名称空间!
因此,在意识到基本有解决方案之后,如何使用自定义编辑器脚本或某些代码块(仅在Unity编辑器内部而不在构建中存在)修复这些错误:
请确保所有仅是编辑器脚本的脚本都放在名为的文件夹中Editor。Unity自动排除构建中的那些。
或将#if预处理器与一起使用UNITY_EDITOR:
#if UNITY_EDITOR
using UnityEditor;
#endif
...
#if UNITY_EDITOR
//some code here that uses something from the UnityEditor namespace
#endif
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
2693 次 |
| 最近记录: |