我尝试保存统一的cubemap对象,并加载它来执行保存/加载功能在我的应用程序中,所以我尝试了以下代码来保存我的cubemap,它的工作很好:
foreach (var gameObj in FindObjectsOfType(typeof(GameObject)) as GameObject[])
{
if (gameObj.name.StartsWith("Chambre"))
{
PlayerPrefs.SetString("Chambre " + (l + 1), gameObj.name);
var chambre = new Material(Shader.Find("Skybox/Cubemap"));
chambre = gameObj.GetComponent<MeshRenderer>().material;
var Texture1 = chambre.GetTexture("_Tex");
if (!AssetDatabase.Contains(Texture1))
{
AssetDatabase.CreateAsset(Texture1, "Assets/Resources/Saved/chambre" + (l + 1) + ".mat");
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}
l++;
}
}
但这里的问题是,我使用的导入UnityEditor是不被接受的,当你试图建立游戏。所以有没有另一种解决方案,以保存我的cubemap和重新加载它,而不使用“AssetDatabase.CreateAsset”,因为它调用的UnityEditor?
1条答案
按热度按时间js5cn81o1#
我不完全明白你想要归档什么。在构建中没有“资产”了,所以方法在构建中没有意义。
无论如何,要在编辑器中使用它们并能够构建您的代码,您只需使用预处理器
#if UNITY_EDITOR <your code> #endif
来处理只应存在于编辑器中的代码块:因此,这些代码块将不会包含/执行在您的构建中。