从文件加载 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;
}