Unity从资源加载文本

时间:2014-02-05 16:39:13

标签: c# unity3d

我可以使用以下内容更改UILabel(名为about)的文本:

using UnityEngine;
using System.Collections;

public class about : MonoBehaviour
{
   void Start ()
   {
      UILabel lbl = GetComponent<UILabel>();
      lbl.text = "Hello World!";
   }
}

但是当我想从资源(Assets/Resources/about.txt

中的文本文件加载标签文本时出现问题
lbl.text = Resources.Load(Application.dataPath + "/Resources/about") as String

所以我不确定我哪里出错了,是的,我看了here

3 个答案:

答案 0 :(得分:8)

只需使用:

TextAsset mytxtData=(TextAsset)Resources.Load("MyText");
string txt=mytxtData.text;

您可以使用txt字符串来满足您的要求,只需确保MyText.txt位于Assets > Resource

答案 1 :(得分:7)

你试过其中一个:

TextAsset mydata = Resources.Load("MyTexts/text", typeof(TextAsset));
TextAsset mydata = Resources.Load("MyTexts/text") as TextAsset;

此处,"MyTexts/text"是资产名称,实际上会引用文件text.txt

资产应该以这种方式放在Assets文件夹中:

Assets/MyTexts/text

在文件系统上,您将拥有:

.../Assets/MyTexts/text.txt

不要使用Application.dataPath或类似的东西,而是从二进制资产文件中加载静态链接资产。

加载的mydata是二进制的。使用Encoding.ASCII.GetString(mydata.bytes)从中获取实际字符串。

答案 2 :(得分:0)

var loaded_text_file = Resources.Load("mytexts/myfiletextname") as TextAsset;

string txt = loaded_text_file.text;