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

时间:2017-03-01 15:36:17

标签: c# android dictionary unity3d scripting

我有一些带有短语的文本文件(答案)。例如,在一个文本文件中,我有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按钮时,它工作正常,这是一张图片:

game

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

我有另外一个问题:

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

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

3.由于这个问题,我有另一个场景。在你看到一条金鱼之后,出现一个转换(屏幕变黑,然后屏幕恢复正常),当你可以玩的时候会出现一个运气轮,就像一个轮盘赌这个场景没有加载到我的Android设备上。为什么呢?

1 个答案:

答案 0 :(得分:0)

它需要位于Resources文件夹中。 Unity会将其视为" TextAsset"。 一旦你建立,它将是只读的。

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

#mapdiv{top:0vh;left:0vw;height:100vh; width:100vw;vertical-align: top;}
body{margin:0px;padding:0px;}
#mapdiv{padding:1px;}
.text-center {padding:1px;}
::-webkit-scrollbar { 
display: none; 
 }

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

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