Тип `int 'не содержит определения для` Text', и не найден метод расширения `Text 'типа` int' - PullRequest
0 голосов
/ 03 июля 2019

Я получаю эту ошибку в единстве, моя проблема - рекорд, она не работает.Я пробовал все виды видео на YouTube, но я думаю, что я делаю что-то не так во всех из них.Также пытался с текстовой рекорд и также не работает.Он говорит мне: «Вам не хватает ссылки на сборку?»

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

public class ScoreScript : MonoBehaviour {

    public static int scoreValue = 0;
    public Text score;
    public static int highscore;

    void Start () {
        highscore.Text = PlayerPrefs.GetInt("HighScore", 0);
        score = GetComponent<Text>();
        scoreValue = 0;
    }

    void Update () {
        score.text = "" + scoreValue;
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class hazardCollisionFunctions : MonoBehaviour {



    private void OnCollisionEnter(Collision col){
        if(col.gameObject.tag == "Platform"){
            this.gameObject.SetActive(false);
            ScoreScript.scoreValue += 1;
        }
        if(col.gameObject.tag == "Player"){
            if(ScoreScript.highscore < ScoreScript.scoreValue){
                    PlayerPrefs.SetInt("HighScore", ScoreScript.scoreValue);
            }
            SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
        }
    }
}

1 Ответ

0 голосов
/ 03 июля 2019
  1. Добавьте поле public Text highScoreText; к вашему ScoreScript, чтобы ScoreScript могло работать с ним.

  2. Установите highScoreText.Text на "" + highScore в Start, чтобы текст был настроен соответствующим образом.

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
    
    public class ScoreScript : MonoBehaviour {
    
        public static int scoreValue = 0;
        public Text score;
        public Text highScoreText;
        public static int highscore;
    
        void Start () {
            highscore = PlayerPrefs.GetInt("HighScore", 0);
            highScoreText.Text = "" + highScore;
            score = GetComponent<Text>();
            scoreValue = 0;
        }
    
        void Update () {
            score.text = "" + scoreValue;
        }
    }
    
  3. Перетащите текстовый объект с высокими показателями в поле highScoreText скрипта ScoreScript в инспекторе

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