C# 统一从资源中加载文本

C# 统一从资源中加载文本,c#,unity3d,C#,Unity3d,我可以使用以下内容更改UILabel(命名为about)的文本: using UnityEngine; using System.Collections; public class about : MonoBehaviour { void Start () { UILabel lbl = GetComponent<UILabel>(); lbl.text = "Hello World!"; } } 因此,我不确定我错在哪里,是的,我已经看

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

using UnityEngine;
using System.Collections;

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

因此,我不确定我错在哪里,是的,我已经看过了。

您是否尝试过以下方法之一:

TextAsset mydata = Resources.Load("MyTexts/text", typeof(TextAsset));
TextAsset mydata = Resources.Load("MyTexts/text") as TextAsset;
这里,
“mytext/text”
是资产名称,它将实际引用文件
text.txt

资产应按以下方式放置在资产文件夹中:

Assets/MyTexts/text
在文件系统上,您将拥有:

.../Assets/MyTexts/text.txt
不要使用
Application.dataPath
或类似的东西,您正在从二进制资产文件加载静态链接的资产

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

只需使用以下命令:

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

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

中,这会让我得到错误CS0119:Expression表示
类型,其中
变量',应为
value'或
method group',错误CS1502:UnityEngine.Resources.Load(string,System.Type)'的最佳重载方法匹配具有一些无效参数,错误CS1503:Argument#2'无法将
object'表达式转换为类型
System.Type'Ough。。。是的!对不起,这是疏忽。我已经更正了它,并添加了另一种书写方式。现在它应该可以工作了:)TextAsset mytext=Resources.Load(“text”)作为TextAsset;加载文件(我已经用Debug.Log检查了它。剩下的问题是让
lbl.text=mytext
正常工作。我得到错误CS0029:无法将type
UnityEngine.TextAsset'隐式转换为
string'添加了字符串转换的最后一行并更正了最后一个输入错误。此外,您可以使用
string[]txtLines=myData.text.Split('\n');
如果你正在加载一个需要逐行存储的文件。工作起来很有魅力!谢谢,伙计们。万一有人犯了和我一样的错误:带有文件名的字符串不应该包括扩展名。所以对于
file.txt
,应该使用
Resources.Load(“文件”)
。谢谢!我的问题是我的Unity项目没有资源文件夹。如果需要将某些文件放入其中以通过编程方式访问它们,那么您可能会认为它会自动为您创建!等等,当您说要更改“UILabel”时,你是指Xcode中实际的UILabel,比如iOS API UILabel?还是你只是用术语“UILabel”来指Unity中的标签?我只是问,因为UILabel是iOS中标签的API名称,如果你是从Unity代码访问iOS API,那将是一个非常了不起的壮举。。。。
var loaded_text_file = Resources.Load("mytexts/myfiletextname") as TextAsset;

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

string txt = loaded_text_file.text;