我希望我的var深度例如每次都找到一个新值,我这样做但我不知道如果这是更新此var的最佳方式。
void Update()
{
Terrain terrain = GetComponent<Terrain>();
terrain.terrainData = GenerateTerrain(terrain.terrainData);
offsetX += Time.deltaTime * 1f;
StreamReader reader = new StreamReader(@"C:\Users\----\documents\BrainGrapher\posiciones.txt");
char[] delimitar = { ':' };
string s = reader.ReadLine();
string[] value = s.Split(delimitar);
while (s != null)
{
for (int move = 0; move < value .Length; move ++)
{
save= vlues[recorrer];
Debug.Log(save);
}
depth = Convert.ToInt32(save);
Debug.Log(depth);
s = reader.ReadLine();
}
}
我们的想法是从文件中获取一个值,每次更新此值时,var深度都会更改,因此图形也会更改,变量深度就在这里使用。
TerrainData GenerateTerrain(TerrainData terrainData)
{
terrainData.heightmapResolution = width + 1;
terrainData.size = new Vector3(width, depth, height);
terrainData.SetHeights(0, 0, GenerateHeights());
return terrainData;
}
谢谢。
答案 0 :(得分:1)
在C#中,有一个名为FileSystemWatcher的类。
此类允许您注册一个事件,这样您就不必通过阅读每次更新中的文件来检查自己。
您应该在Start方法中创建一个FileSystemWatcher并注册它。然后,如果文件已更改,则只读取深度值,并且您不必在更新方法中执行任何操作。你甚至可以检查这些事件
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);