繁体   English   中英

如何将文本文件内容放入字典C#unity

[英]How to put text file content to dictionary c# unity

我有一些文本文件,其中有短语(答案)。例如,在一个文本文件中,我有150个短语。我正在从事钓鱼游戏。钓到鱼后,会出现回复(来自文本文件)并出现在屏幕中间。我以为如果将文本文件放在Assets文件夹中,一切都会好起来。 :(

这是我返回行的代码(答案):

public string filename333 = "try.txt";

public string getRandomMessagefromRechin()
{

    var sr = new StreamReader(Application.dataPath + "/" + fileName1);
    var fileContents = sr.ReadToEnd();
    sr.Close();
    var mydata = fileContents.Split("\n"[0]);
    var myrandom = Random.Range(1, mydata.Length);
    return mydata[myrandom];

}

在PC上,当我按PLAY按钮时,它工作正常,这是一个图像:

游戏

抱歉,文本是文本文件中的随机行。问题是我在平板电脑或Android手机上构建项目后。 我的文本文件中的答案未显示在屏幕上。 我想尝试使用字典或字符串列表的另一种方法,但是如何从文件中的文本中将150多行放在列表上呢?

我还有另一个问题:

1.为什么我的方法不起作用?(我想我的文本文件没有建立,或者没有放在项目的正确文件夹中)

2.是我可以尝试加载行(答案)的另一种方法吗?

3.作为这个问题,我有另一个场景。当你抓到一条金鱼后,出现一个过渡(屏幕变黑,然后屏幕恢复正常),并且当你可以玩时出现了幸运轮,就像轮盘赌。无法在我的android设备上加载。 为什么?

它必须在Resources文件夹中。 Unity将其视为“ TextAsset”。 构建后,它将是只读的。

您将需要使用类似这样的函数在新行上分割文件的内容并返回字符串列表。

private List<string> TextAssetToList(TextAsset ta) {
    return new List<string>(ta.text.Split(System.Environment.NewLine));
}

您还需要像其他资源一样加载它

TextAsset myTxt = Resources.Load("try") as TextAsset;
List<string> strLines = TextAssetToList(myTxt);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM