Unity打包出来后,运行时候是黑屏,不能够正常执行。
本来一开始打包,是说Unity.Editor命名空间不存在的,因为我使用了Unity.Editor.AssetDatabase.LoadAssetAtPath<>(),而Unity.Editor只能在Unity编辑器下使用,故而报错,不允许打包。
于是我增加了条件编辑,如下:
可正常打包了,于是出现了第一次运行,是黑屏
后来询问后知道,在非编辑器模式下,返回的是null,于是就改成了这样:
public T GetAssetCache<T>(string pathname) where T : UnityEngine.Object
{
#if UNITY_EDITOR
string path = "Assets/AssetsPackages" + pathname;
UnityEngine.Object target = UnityEditor.AssetDatabase.LoadAssetAtPath<T>(path);
return target as T;
#else
string path = "Assets/AssetsPackages" + pathname;
UnityEngine.Object target = UnityEditor.AssetDatabase.LoadAssetAtPath<T>(path);
return target as T;
#endif
}
可惜,在非编辑模式下,依然使用了Unity.Editor.AssetDatabase.LoadAssetAtPath<>(),所以不能打包,报错。
最后一次,更改资源加载方式,不用AssetDatabase.LoadAssetAtPath,而是Rescourse.Load,如下:
public T GetAssetCache<T>(string pathname) where T : UnityEngine.Object
{
#if UNITY_EDITOR
string path = pathname;
UnityEngine.Object target = Resources.Load<T>(path);
return target as T;
#else
string path = pathname;
UnityEngine.Object target = Resources.Load<T>(path);
return target as T;
#endif
}
编辑器内可以正常运行,也可以打包。
但是,打包后运行,依然是黑屏?
所以问题不在于资源加载吗?
那会是什么愿意呢?如何解决?
求赐教!