如何在GUI上显示分数?

时间:2017-03-24 01:30:01

标签: c# unity3d

我正在制作游戏,但我在游戏中出现得分时遇到了麻烦。

到目前为止,这就是我的全部内容:

public class keepingScore : MonoBehaviour {
    public static double homeScore;



    // Use this for initialization
    void Start ()
    {
        double homeScore = 5.0;
        print(homeScore);
    }
}

所以我的代码正在向控制台打印5,当我尝试其他方法时,它说它不会工作,因为homeScore不是字符串。

任何帮助人员?

谢谢!

2 个答案:

答案 0 :(得分:0)

请尝试使用GUI:

https://docs.unity3d.com/ScriptReference/GUI.html

或者您可以尝试更好的Canvas GUI:

https://docs.unity3d.com/Manual/UICanvas.html

答案 1 :(得分:0)

首先,如果您想在GUI中获得分数,首先需要在场景中使用Text组件。

在场景中拥有Text组件后,您需要创建一个脚本来处理分数并将其添加到您创建的Text组件中。这是分数管理器脚本的示例:

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

public class keepingScore : MonoBehaviour {

    public static double homeScore;

    Text text;

    void Awake () {

        text = GetComponent<Text>();

        homeScore = 0.0;
    }

    // Update is called once per frame
    void Update () {

        text.text = "Score: " + homeScore;

    }
}

现在,您可以将此脚本附加到之前创建的Text组件。该脚本的作用是首先检索它所附加的Text组件并初始化public static double homeScore,只需执行keepingScore.homeScore即可从任何脚本访问和修改。最后,Update函数将每帧运行以更新您拥有的Text组件。

现在您的场景中有一个Text组件并附加了此脚本,您可以开始修改乐谱的值。随时随地。一个例子就是让我们说当你的玩家拿起你要给他1分的硬币时,所以如果玩家与硬币发生碰撞,你可以在homeScore

上加1
void OnCollisionEnter(Collision collision) {

    if (collision.CompareTag("Coin"))
        keepingScore.homeScore++;
}

例如,当玩家与硬币发生碰撞时,这会在分数上加1。

您可以keepingScore.homeScore += pointAmount在任何想要向玩家添加点数的位置Text,它会自动更新GUI MissingMethodException: Method not found: 'Boolean System.Reflection.Assembly.op_Equality(System.Reflection.Assembly, System.Reflection.Assembly)'.