如何使用Unity在画布上显示分数?

时间:2019-04-16 08:09:29

标签: c# unity3d

我无法在画布上的winPanel上显示分数。

显示在游戏场景上的得分编码和用户界面:-

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class getscore : MonoBehaviour

{
    public GameObject scoretext;

    private void Start()
    {
        scoretext.GetComponent<Text>().text = "0";
    }

    public void setscore(float scoretoadd)
    {
        float currentscore = float.Parse(scoretext.GetComponent<Text>().text);
        float newscore = currentscore + scoretoadd;
        scoretext.GetComponent<Text>().text = newscore.ToString("F0");
    }
}

enter image description here

接下来,我将相同的编码放在画布上,它应该在我的winPanel画布上显示分数:-

enter image description here

输出分数仅显示在游戏场景上,而不显示在画布上我的winPanel上的地方:-

enter image description here

现在的问题是...为什么分数未显示在我的winPanel画布上?

1 个答案:

答案 0 :(得分:2)

我建议将分数保存为静态浮点数,因此无论您从何处访问分数,分数都是相同的数字

public class getscore : MonoBehaviour

{
    public GameObject scoretext;
    public static float score = 0;

    private void Start()
    {
        setscore(0);
    }

    public void setscore(float scoretoadd)
    {
        score += scoretoadd;
        scoretext.GetComponent<Text>().text = score.ToString("F0");
    }
}

在重新加载级别getscore.score = 0

时,请记住将分数再次设置为0