如何在屏幕上显示分数?

时间:2019-05-03 15:47:17

标签: c# unity3d

我正在做一个射击游戏,想在屏幕上显示击杀次数,我有一个带有画布和文本的UI,但是我无法在屏幕上显示正确的数字。

这就是我现在拥有的:

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

public class Score : MonoBehaviour
{
    public Text Pointsdisplay;
    int points = 0;

    void Update()
    {
        Pointsdisplay.text = points.ToString();
    }

    void Start()
    {
        Pointsdisplay.text = points.ToString();
    } 

    void OnCollisionEnter(Collision col)
    {

        if (col.gameObject.name == "enemy(Clone)")
        {
            points = points + 1;
        }
    }

 }

我已经统一分配了正确的Textobject,但是似乎收到了错误消息: NullReferenceException: Object reference not set to an instance of an object Score.Start () (at Assets/Scenes/scripts/Score.cs:12) 和第17行相同

因此,总而言之:我希望屏幕上的比分显示我打过敌人多少次,但这不会发生。预先感谢

1 个答案:

答案 0 :(得分:0)

仅在值被更新/更改时更新它。

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

public class Score : MonoBehaviour
{
    public Text pointsdisplay;
    int points = 0;

    void Start()
    {
        pointsdisplay.text = points.ToString();
    } 

    void OnCollisionEnter(Collision col)
    {
        if (col.gameObject.name == "enemy(Clone)")
        {
            points = points + 1;
            pointsdisplay.text = points.ToString();
        }
    }
 }