Unity3D中的XML文件加载问题

本文关键字:加载 问题 文件 XML 中的 Unity3D | 更新日期: 2023-09-27 18:16:40

我正在使用Unity3D开发一个小应用程序。在这个应用程序中,它显示文本。这个应用程序文本加载可以在系统中工作,但不能在设备中工作。本文使用.xml文件获取。这个xml文件位于Resources文件夹中。请查找以下代码:

using UnityEngine;
using System.Collections;
using System.Xml;
using System.IO;
public class InsultGenerator : MonoBehaviour {
    public UILabel msg;
    int indexNo = 0;
    bool isFlag = false;
    //TODO :: For usage of XML
    XmlDocument xml;
    public XmlNodeList xmllist;
    // Use this for initialization
    void Start () {
        Debug.Log ("InsultGenerator :: :: Start() ");
        indexNo = IGUtils.getIndexNo();
        Debug.Log ("indexNo :: " + indexNo);
        xml = new XmlDocument ();
        xml.Load (Application.dataPath + "/Resources/I.xml");
        xmllist = xml.SelectNodes ("insults/record");
        Debug.Log ("XML Toatal Records : " + xmllist.Count);
        IBtn ();
    }
    // Update is called once per frame
    void Update () {
    }
    //TODO :: IBtn Click Code
    public void IBtn()
    {
        Debug.Log ("I Btn Clicked  ");
        if (indexNo == xmllist.Count) {
            indexNo = 0;
            Debug.Log ("****  indexNO **** :: " +indexNo);
            IGUtils.setIndexNo(indexNo);
        }
        isFlag = true;
        for (int index = indexNo; index < xmllist.Count; index++)
        {
            if(isFlag)
             {
                indexNo = indexNo + 1;
                XmlNode node=xmllist[index].SelectSingleNode("level1");
                Debug.Log("Node Data = " +node.InnerText);
                int nodeINT = int.Parse(node.InnerText);
                if(nodeINT == 1)
                    {
                        isFlag = false;
                         Debug.Log("Node Data = " +node.InnerText);
                         XmlNode nodeString=xmllist[index].SelectSingleNode("english");
                         Debug.Log("nodeString.InnerText :: "+nodeString.InnerText);
                         msg.text = nodeString.InnerText;//here text assign to label.
                         IGUtils.setIndexNo(indexNo);
                         break;
                     }
               }
         }
    }
}

每当点击按钮,它去按钮点击事件IGBtn(),但不加载文本。我希望它的问题从xml获取文本。你能解决上述问题吗?

Unity3D中的XML文件加载问题

Start()调用IBtn ()

点击不会触发任何东西。

也许替换:

public void IBtn()

:

void OnMouseDown()

然后用isTrigger = true向GameObject添加Collider组件(如BoxCollider),这样它就可以被点击了