Как отобразить счет на холсте с помощью Unity? - PullRequest
0 голосов
/ 16 апреля 2019

Я не могу отобразить счет на моей 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 Ответ

2 голосов
/ 16 апреля 2019

Я рекомендую сохранять счет в статическом формате с плавающей запятой, так что это одно и то же число, независимо от того, откуда вы к нему обращаетесь:

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");
    }
}

Не забудьте установить значение 0 снова при перезагрузке уровня getscore.score = 0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...