我使用XML文件来存储一些数据,所以它会更容易本地化到其他语言,因为Unity有问题,我必须使用XML的resx。
在UnityEditor中,一切都很好,但是我什么时候编译它,在第一次使用XML时就停止工作了。
我猜Unity不能达到XML文件出于某种原因,因为当我尝试手动将XML文件到我的文档文件夹,并使用引用他们,它的工作。
这是xml文件的当前path:
从PID获取名字?
如何正确添加状态栏?
如何在linux中编写系统托盘的应用程序
我怎样才能阻止访问某些网站,直到重新启动,无需更改主机文件?
epoll_wait总是设置EPolLOUT位?
Assets/Scripts/Core/Localization/lang.eng.xml
在UnityEditor中效果很好,构build时没有工作。
这是另一个(但必须手动把它们放在这里):
Environment.GetFolderPath(Environment.SpecialFolder.Mydocuments) + \”\\testFolder\\lang.eng.xml\”
但是我不喜欢那样,也许有某种方法可以使它工作?
我知道我可以自动化,但我仍然不喜欢这个。 我认为这将是默认情况下在游戏文件夹中的二进制像resx(.resources)。
在这种情况下最好的解决scheme是什么? 如果我没有select,我必须使用“我的文档”文件夹?
提前致谢。
———————如果有必要,这里是一些代码。 –
要打开xml文件我使用这个:
using System; using System.ComponentModel; using System.IO; using System.linq; using System.Reflection; using System.Xml.linq; private static Readonly Xdocument document = new Xdocument; private static voID opendocument() { try { string filename = Environment.GetFolderPath(Environment.SpecialFolder.Mydocuments) + \”\\testFolder\\lang.eng.xml\”; document = Xdocument.Load(filename); } catch (fileNotFoundException exception) { UnityEngine.DeBUG.Log(exception); } }
跟…共事:
public static string GetEnumStringQ(Enum e,KindOfItemData kindOf) { string key = @\”name=\”\”\” + e + @\”\”\”\”; string enumType = e.GetType().ToString(); string kindOfValue = kindOf.ToString(); if (document == null) { opendocument(); } if (document.Root == null) return e.ToString(); foreach (XElement el in document.Root.Elements().Where(el => el.name == enumType)) { foreach (XAttribute attr in el.Attributes().Where(attr => attr.ToString() == key)) { foreach (XElement element in el.Elements().Where(element => element.name == kindOfValue)) { return element.Value; } } } return e.ToString(); }
这是一个XML文件:
<PassiveArmorSpecial name=\”StaminaRegenerationLow\”> <value>Stamina Regeneration (low)</value></PassiveArmorSpecial> <PassiveArmorSpecial name=\”StaminaRegenerationMed\”> <value>Stamina Regeneration (med)</value></PassiveArmorSpecial> <PassiveArmorSpecial name=\”StaminaRegenerationHigh\”> <value>Stamina Regeneration (high)</value></PassiveArmorSpecial> <PassiveArmorSpecial name=\”VampirismLow\”> <value>Vampirism (low)</value></PassiveArmorSpecial> <PassiveArmorSpecial name=\”VampirismMed\”> <value>Vampirism (med)</value></PassiveArmorSpecial> <PassiveArmorSpecial name=\”VampirismHigh\”> <value>Vampirism (high)</value></PassiveArmorSpecial> <TypeOfDefence name=\”Flesh\”> <value>Flesh</value></TypeOfDefence> <TypeOfDefence name=\”Bone\”> <value>Bone</value></TypeOfDefence> <TypeOfDefence name=\”Metal\”> <value>Metal</value></TypeOfDefence> <TypeOfDefence name=\”Rock\”> <value>Rock</value></TypeOfDefence>
Eclipse-CDT:在windows下针对linux进行交叉编译时的自动path发现
静态lib加载相关的问题
当进程以pipe理员身份运行时,获取用户名()
从C ++使用netlink的最好方法是什么?
Qt中的透明窗口
你必须把你的文件放入资源/资源,使它们在运行时可用。 你可以通过Resources.Load方法获取它们
XML文件然后被加载为TextAssets。
总结
以上是内存溢出为你收集整理的编译后Unity3d不会在项目文件夹中看到XML文件全部内容,希望文章能够帮你解决编译后Unity3d不会在项目文件夹中看到XML文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容