【发布时间】:2015-10-17 21:28:46
【问题描述】:
我用 Unity3D 制作了一个必须访问 XML 文件的游戏。我已将文件放在 Assets 文件夹中,当我在 Unity 中调试游戏时,它可以正常工作。问题是当我构建游戏并在浏览器(网络播放器)中启动它时它不起作用。它给出了以下错误:
MethodAccessException:尝试访问私有/受保护方法失败
是不是和网页播放器的安全限制有关?
【问题讨论】:
-
Assets 文件夹中的文件并不意味着它包含在您的构建中。你的意思是把它放在你的资源中吗?你能告诉我们相关的代码吗?
-
其实我也试过把xml文件和可执行文件放在同一个文件夹下,但是还是不行。至于代码,我使用了 System.XML 中包含的类(XMLDocument、XMLNode、XMLNodeList,...)
-
您如何访问文件的内容? WebPlayer 倾向于限制对文件系统的访问,这可能会造成问题。当反射调用尝试访问受保护的构造函数时,我还听说过一些罕见的错误。
-
尝试在 Resources 文件夹中添加 XML 文件,并通过 Resources.Load 加载它。 Unity 将 Resources 文件夹中的所有内容都包含在您的构建中。由于它在构建“内部”,因此安全沙箱在尝试加载文件时不会抛出错误
-
@Venkat 你应该提供这个作为答案,因为它是在 Unity 中加载外部资源的正确方法,甚至可能在 webplayer 中也可以工作。
标签: xml unity3d unity-web-player