C# 如何使文本读取代码每隔几秒钟执行一次?出于某些原因,为强制更新创建单独的按钮也不起作用
我正在运行一个图形代码,从存储的txt文件中获取数据。我已经尝试了一段时间,使它读取文件,并在按下按钮或每隔几秒钟执行代码,但我无法使它工作 无论我做什么,图形都会显示仅在唤醒状态下加载的数据C# 如何使文本读取代码每隔几秒钟执行一次?出于某些原因,为强制更新创建单独的按钮也不起作用,c#,unity3d,graph,C#,Unity3d,Graph,我正在运行一个图形代码,从存储的txt文件中获取数据。我已经尝试了一段时间,使它读取文件,并在按下按钮或每隔几秒钟执行代码,但我无法使它工作 无论我做什么,图形都会显示仅在唤醒状态下加载的数据 //public class stuff related to the loading of the txt file List<string> TextAssetToList(TextAsset textFile) {
//public class stuff related to the loading of the txt file
List<string> TextAssetToList(TextAsset textFile)
{
return new List<string>(textFile.text.Split('\n'));
}
//all inside Awake
{
TextAsset File = Resources.Load("File") as TextAsset; //turning text asset into string list
List<string> valueListTXT = TextAssetToList(textFile);
valueListTXT.RemoveAll(item => item.Length == 0);
List<float> valueList = valueListTXT.Select(x => float.Parse(x)).ToList();
valueListTXT.RemoveAll(item => item.Length == 0);
ShowGraph(valueList, LineGraphVisual, -1, (float _i) => "" + (_i + 1), (float _f) => (_f) + "°c");
}
//与txt文件加载相关的公共类内容
列表文本资产列表(文本资产文本文件)
{
返回新列表(textFile.text.Split('\n'));
}
//所有人都醒着
{
TextAsset File=Resources.Load(“文件”)为TextAsset;//将文本资源转换为字符串列表
列表值ListTXT=TextAssetToList(textFile);
valueListTXT.RemoveAll(item=>item.Length==0);
List valueList=valueListTXT.Select(x=>float.Parse(x)).ToList();
valueListTXT.RemoveAll(item=>item.Length==0);
ShowGraph(值列表、线图可视,-1,(浮点数i)=>“”+((浮点数i+1),(浮点数f)=>((浮点数f)+“°c”);
}
编辑:在尝试使其工作时发现另一个问题:考虑只是销毁,然后启动MonoBehavior,但由于某些原因,它没有考虑更新的txt文件,只是不断堆积游戏对象,图形是用这些对象构建的。
我根据CodeMonkey教程制作了这个图,如果这对任何人都有帮助的话…有多种方法可以做到这一点 您可以与WaitForSeconds进行协作:
private IEnumerator DoSomethingEveryCoupleOfSeconds()
{
yield return new WaitForSeconds(3.0f);
//after waiting for 3 seconds ... execute my code...
}
或者,您可以缓存一个计时器,向其中添加增量时间,然后仅在计时器启动时执行,如下所示:
private void Update()
{
timeSince += Time.deltaTime;
if(timeSince >= 3.0f)
{
//execute my code
timeSince = 0f;
}
}
或者甚至可以使用Invoke:
private void Awake()
{
InvokeRepeating("MyCode",3.0f,3.0f);
}
我希望这有助于……:)