Unity UI is not updating



我有一个画布,上面有三个统一的文本对象。我有4个场景:加载、播放、集线器和教程。我使用的是一个脚本对象,它可以在你玩游戏时跟踪你的分数。但是,每次我打出高分时,我的文本对象仍然会说"第一个"第二个"第三"这是我的剧本:(此外,在游戏中,我的分数文本会更新,但(高分(不会在场景之间更新。脚本所在的对象是除Camera.Main之外的所有对象的父对象。(

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class TrackScores : MonoBehaviour
{
public Transform First;
public Transform Second;
public Transform Third;
public Text Best;
public Text Average;
public Text Worst;
public Text Score;
public Transform ScoreTracker;
public Canvas CanvUI;
public float ScoreInt;
public Vector3 PosPlayer;
void Start()
{
DontDestroyOnLoad(Camera.main.transform.root.gameObject);
DontDestroyOnLoad(transform.root.gameObject);
SceneManager.LoadScene("Hub", LoadSceneMode.Single);
}
void Update()
{
if(SceneManager.GetActiveScene().name == "Play")
{
PosPlayer = new Vector3(GameObject.Find("Player").transform.position.x, GameObject.Find("Player").transform.position.y, 0);
Camera.main.transform.position = PosPlayer + new Vector3(0, 0, -15);
transform.position = new Vector3(0, 0, 1001);
Score = GameObject.Find("Score").GetComponent<Text>();
ScoreTracker = GameObject.Find("ScoreTracker").transform;
ScoreInt = ScoreTracker.position.x * 1000;
Score.text = ScoreInt.ToString("0");
}
if(SceneManager.GetActiveScene().name == "Tutorial")
{
PosPlayer = new Vector3(GameObject.Find("Quad").transform.position.x, GameObject.Find("Quad").transform.position.y, 0);
Camera.main.transform.position = PosPlayer + new Vector3(0, 0, -15);
transform.position = new Vector3(0, 0, -1000);
}
if(SceneManager.GetActiveScene().name == "Hub")
{
Camera.main.transform.position = new Vector3(0, 0, -25);
transform.position = new Vector3(0, 0, 0);
Best.text = "1st: " + First.position.x.ToString("0");
Average.text = "2nd: " + Second.position.x.ToString("0");
Worst.text = "3rd:" + Third.position.x.ToString("0");
if(ScoreInt < Second.position.x && ScoreInt > Third.position.x)
{
Third.position = new Vector3(ScoreInt, 0, 0);
}
if(ScoreInt < First.position.x && ScoreInt > Second.position.x)
{
Second.position = new Vector3(ScoreInt, 0, 0);
}
if(ScoreInt > First.position.x)
{
First.position = new Vector3(ScoreInt, 0, 0);
}
}
}
}

感谢您的帮助!

我想明白了。我只需要使用文本网格与文本网格用户界面。

最新更新