簡體   English   中英

UI 文本未更新

[英]UI text not updating

我知道,很多人都問過這個問題。 我已經閱讀了所有這些帖子,但沒有一個解決方案可以解決我的問題。 我正在創建一個級別進度條,在此腳本中,我嘗試更新文本(levelNumber)並在每次級別完成時向 levelNumber 添加 +1,這里我使用 playerprefs 保存 levelNumber,以便數據可以通過下一個級別(場景)。 但問題是 levelNumber 甚至沒有在 Text 字段中更新,根據腳本 Text_1 應該從 0 開始,Text_2 從 1 開始,當游戲開始顯示我在檢查器 1 和 2 中給出的值時。確認我已將檢查器中的值更改為 21當游戲開始顯示 21 和 30 時,再次顯示 30。這意味着 UI 文本未從腳本更新。

public class PrograssBar : MonoBehaviour
{
 [SerializeField] private Text Text_1;
 [SerializeField] private Text Text_2;
 private int levelNumber = 0;
 [SerializeField] Transform startTransform;
 Transform finishTransform;
 [SerializeField] Slider slider;

 float maxDistance;


 void OnEnable()
 {
     levelNumber = 0;
 }

 void Start()
 {
     finishTransform = GameObject.FindGameObjectWithTag("CloneGoal").GetComponent<Transform>();
     maxDistance = getDistance();
     levelNumber = PlayerPrefs.GetInt("LevelNumber");

 }


 void Update()
 {
     if (startTransform.position.z <= maxDistance)
     {
         float distance = 1 - (getDistance() / maxDistance);
         setProgress(distance);
     }

 }

 float getDistance()
 {

     return Vector3.Distance(startTransform.position, (finishTransform.position - new Vector3(0, 0, 22)));
 }


 void setProgress(float p)
 {
     slider.value = p;
 }

 private void LevelUp()
 {
     UpdateLevel(levelNumber + 1);
     PlayerPrefs.SetInt("LevelNumber", levelNumber);
 }

 private void UpdateLevel(int levelNumber)
 {
     this.levelNumber = levelNumber;
     Text_1.text = " " +this.levelNumber.ToString();
     Text_2.text = " " +(this.levelNumber + 1).ToString();
 }

}

問題是您在執行期間從未將levelNumber保存到首選項,因此您的LevelUp function 應該如下所示:

private void LevelUp()
{
     UpdateLevel(levelNumber + 1);
     PlayerPrefs.SetInt("LevelNumber", levelNumber);
     PlayerPrefs.Save();
}

請參閱此 文檔

在方法private void UpdateLevel(int level)中,您正在設置this.levelNumber = levelNumber 並且方法的屬性是int level 所以你可能想做:

this.levelNumber = level;

而且我不太確定您在哪里調用private void LevelUp()方法,因為它是私有的,並且在此 class 內的任何地方都沒有調用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM