C# Unity 3D:使用数组中的数字以设定的速率更新UI文本

C# Unity 3D:使用数组中的数字以设定的速率更新UI文本,c#,unity3d,C#,Unity3d,我正在unity中创建一个项目,我正在编写一个脚本,在游戏对象移动时显示它的高度。我从一个放入数组的文本文件中得到它的高度。以下是我目前的代码: using UnityEngine; using UnityEngine.UI; using System.Text; using System.IO; using System.Collections; using System; public class PlayerController: MonoBehaviour { private V

我正在unity中创建一个项目,我正在编写一个脚本,在游戏对象移动时显示它的高度。我从一个放入数组的文本文件中得到它的高度。以下是我目前的代码:

using UnityEngine;
using UnityEngine.UI;
using System.Text;
using System.IO;
using System.Collections;
using System;

public class PlayerController: MonoBehaviour {


 private Vector3 position;
 private double[] nums;
 private double altDisplay;
 public Text altText;        
 void Start()
 {
     //Import text file and read all.
     string text = System.IO.File.ReadAllText("File.txt");
     if (text != null) 
     {
         //Split the string of text into an array containing each number in the file.
         string[] strings = text.Split (new[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

         //Convert each string number to a double.
         nums = new double[strings.Length];
         for (int i = 0; i < strings.Length; i++) 
         {
             nums [i] = Convert.ToDouble (strings [i]);
         }

     }
 }

 void FixedUpdate()
 {

     //Common variables
     int Entries = 6992;
     float speed = 1.0f;

     //Determine the Y altitude
     float yMeters;

     for (int i = 3; i < Entries; i += 7) 
     {
         yMeters = Convert.ToSingle(nums [i + 7] - nums [i]);
         transform.position += transform.up * yMeters * Time.deltaTime * speed;
     }

     for (int i = 3; i < 6999; i += 7) 
     {
         altText.text = (nums[i]).ToString () + "m "; 
     }
 }
使用UnityEngine;
使用UnityEngine.UI;
使用系统文本;
使用System.IO;
使用系统集合;
使用制度;
公共类玩家控制器:单行为{
私有向量3位置;
私人双[]NUM;
私人双重显示;
公共文本;
void Start()
{
//导入文本文件并全部读取。
string text=System.IO.File.ReadAllText(“File.txt”);
如果(文本!=null)
{
//将文本字符串拆分为包含文件中每个数字的数组。
string[]strings=text.Split(新[]{“”“\r\n”},StringSplitOptions.RemoveEmptyEntries);
//将每个字符串数字转换为双精度。
nums=新的双精度[strings.Length];
for(int i=0;i
我的for循环从3开始,递增7是因为我的文本文件有1000行,看起来像这样

x1x2x3x4x5x6x7

我需要的高度是每行的x4号。我的问题是,当我单击“播放”时,显示的唯一高度是最后一个高度。我知道for循环可能会很快通过每一行,所以我想我的问题是:如何让文本以与我的游戏对象更新相同的速度更新?
几天前,我在Unity网站上发布了这个问题,但还没有得到答案,所以我想你们这些可爱的人也许能帮上忙:)

为什么需要从文本文件中读取这些值

最简单的方法是:

void FixedUpdate{
altText.text = yourGameObject.transform.position.y.ToString();
}
如果需要,可以将该值四舍五入:

altText.text = Mathf.Round(yourGameObject.transform.position.y).ToString();

为什么要这么复杂呢?如果你想显示一个物体的高度,你可以假设1个单位=1米,然后只显示物体的Y值。我把我的物体建立在一个真实的物体上,它的路径是以文本文件的形式记录下来的。