1 回答
TA贡献1839条经验 获得超15个赞
UnityEditor.AssetPreview
属于UnityEditor
命名空间。
这只存在于 Unity 编辑器 istelf 中,并在构建中被删除。
=> 您不能UnityEditor
在构建中使用命名空间中的任何内容。
基本上有两种解决方案可以UnityEditor
从构建中排除某些内容:
预处理器
在 C# 中,您可以使用 in#if preprocessor
来根据全局定义排除代码块。Unity 提供了这样的定义。在这种情况下使用例如
#if UNITY_EDITOR // CODE USING UnityEditor #endif
Editor
文件夹
如果整个脚本应从构建中排除,您只需将其放置在名为 的文件夹中Editor
。这将使其完全从构建中剥离。
要在构建中使用它,您要么必须使用另一个库,要么在 Unity 编辑器中运行此脚本一次,并存储这些引用以便在构建中使用它们,例如使用属性[ContextMenu]
:
void Start()
{
#if UNITY_EDITOR
LoadPreviewImages();
#endif
// if nothing more comes here
// rather remove this method entirely
...
}
#if UNITY_EDITOR
// This allows you to call this method
// from the according components context menu in the Inspector
[ContextMenu("LoadPreviewImages")]
private void LoadPreviewImages()
{
foreach (var loadText in ItemTablezz)
{
var getImage = UnityEditor.AssetPreview.GetAssetPreview(loadText.texture);
print(getImage);
loadText.gameObjectTex = getImage;
}
}
#endif
- 1 回答
- 0 关注
- 174 浏览
添加回答
举报