我使用unity和c#编写了一个程序,它使用我的android设备的gps位置,它检测我是否接近某个预定位置。 到目前为止,一切正常,程序会检测到所有预先定义的位置,并在我靠近它们时通知我。
我通过使用streamreader来创建一个字符串列表,逐行读取文本文件并将其存储在检查器中的元素中。
每次gps位置使用循环更改到列表末尾时,元素都会被读取,并且如果其中任何元素与gps位置匹配,则会检查元素。
我现在遇到的问题是我的数据库文本文件变得非常大,最终会出现错误,因为元素太多了。
文本文件格式如此
53.752 -2.481 Location1。
51.551 -3.271位置2.
55.932 -4.037 Location3
依旧......
数据库可以在1000个项目中,其中第一个数字是纬度,第二个是经度,第三个是描述
我的问题是哈希表最适合这个,如果是这样,我将如何将单独的项添加到列表中。我假设纬度和经度是关键,位置就是货币对。
我试图找到示例,但我发现所有信息都已添加到脚本中,即
Hashtable mytable = new Hashtable();// create a new hashtable called mytable
//add all the elements that you want in the format key followed by pair
mytable.Add(1, "Location1");
而不是从文本文件中读取信息。
感谢您的帮助。
答案 0 :(得分:0)
好的,所以这种方式似乎有效。感谢每一位人士的投入,这无疑使我朝着正确的方向前进。
public class Location : MonoBehaviour
{
public int howmany;// how many lines are in the text file
void Start()
{
List<string> fileLines = new List<string>(System.IO.File.ReadAllLines(Application.persistentDataPath + "\\" + "locationdatabase.txt"));
howmany = (fileLines.Count);
Debug.Log(fileLines[4520]);// look at a particular line in the file
Debug.Log(howmany);
}
}