簡體   English   中英

如何使分數顯示在GUI上?

[英]How to make score appear on GUI?

我正在制作游戲,但無法使比分出現在游戲中。

到目前為止,這就是我所擁有的:

public class keepingScore : MonoBehaviour {
    public static double homeScore;



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

所以我的代碼是將5打印到控制台,當我嘗試了其他方法時,它說將無法工作,因為homeScore不是字符串。

有幫助嗎?

謝謝!

請嘗試使用GUI:

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

或者您可以嘗試必須更好的Canvas GUI:

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

因此,如果要在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從任何腳本訪問和修改keepingScore.homeScore 最后, Update函數將在每一幀運行以更新您擁有的Text組件。

現在,您的場景中已有一個Text組件,並附加了此腳本,您可以開始修改樂譜的值了。 無論您想去哪里。 舉個例子,假設您的玩家拿起一個硬幣要給他1分,所以如果玩家與該硬幣發生沖突,您可以向homeScore加1

void OnCollisionEnter(Collision collision) {

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

例如,當玩家與硬幣碰撞時,這將為得分加1。

您可以在keepingScore.homeScore += pointAmount播放器添加點的任何位置執行keepingScore.homeScore += pointAmount ,它將自動更新GUI Text

暫無
暫無

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

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