从文件加载 GUISkin?
Load GUISkin from file?
我正在尝试从外部文件夹(不在 Resources 中)加载 GUISkin,但我在执行此操作时遇到了问题。
这是我尝试过的:
IEnumerator LoadSkin()
{
var www = new WWW("file:///" + Path.Combine(Path.Combine(Path.Combine(Application.dataPath, "Mods"), "Internal"), "EditorSkin.guiskin"));
yield return www;
byte[] bytes = www.bytes;
var stream = new MemoryStream();
var formatter = new BinaryFormatter();
stream.Write(bytes, 0, bytes.Length);
stream.Seek(0, SeekOrigin.Begin);
GUI.skin = (GUISkin)formatter.Deserialize(stream);
}
但是它给我这个错误:
Exception: SerializationException: Unexpected binary element: 0
有人知道如何加载外部 GUISkin 吗?
我建议为此使用资产包。将您的图形用户界面皮肤导出为资产包。制作资产包 see the documentation。之后你可以使用同样的方法:
IEnumerator LoadSkin()
{
var www = new WWW("file:///" + Path.Combine(Path.Combine(Path.Combine(Application.dataPath, "Mods"), "Internal"), "EditorSkin.unity3d"));
yield return www;
if (www.error != null)
yield break;
GUI.skin = www.assetBundle.mainAsset as GUISkin;
}
我正在尝试从外部文件夹(不在 Resources 中)加载 GUISkin,但我在执行此操作时遇到了问题。 这是我尝试过的:
IEnumerator LoadSkin()
{
var www = new WWW("file:///" + Path.Combine(Path.Combine(Path.Combine(Application.dataPath, "Mods"), "Internal"), "EditorSkin.guiskin"));
yield return www;
byte[] bytes = www.bytes;
var stream = new MemoryStream();
var formatter = new BinaryFormatter();
stream.Write(bytes, 0, bytes.Length);
stream.Seek(0, SeekOrigin.Begin);
GUI.skin = (GUISkin)formatter.Deserialize(stream);
}
但是它给我这个错误:
Exception: SerializationException: Unexpected binary element: 0
有人知道如何加载外部 GUISkin 吗?
我建议为此使用资产包。将您的图形用户界面皮肤导出为资产包。制作资产包 see the documentation。之后你可以使用同样的方法:
IEnumerator LoadSkin()
{
var www = new WWW("file:///" + Path.Combine(Path.Combine(Path.Combine(Application.dataPath, "Mods"), "Internal"), "EditorSkin.unity3d"));
yield return www;
if (www.error != null)
yield break;
GUI.skin = www.assetBundle.mainAsset as GUISkin;
}