Каков наилучший способ преобразования текста пользовательского интерфейса в строку в Unity (C #)? - PullRequest
0 голосов
/ 02 февраля 2019

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

: Assets / Scripts / ChangeQuestion1.cs (15, 26): ошибка CS0029: невозможно неявное преобразование типа UnityEngine.UI.Text' to string

Каков наилучший способ преобразования текста пользовательского интерфейса в строку?Извините, если этот вопрос звучит нубистски.Вот код:

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

public class ChangeQuestion1 : MonoBehaviour {

    public GameObject databaseinterfaceinstance;

    public Text Question1;
    // Use this for initialization
    void Start () {
        databaseinterfaceinstance = GameObject.FindWithTag("DatabaseInterface").GetComponent<GameObject>();
        Question1 = gameObject.GetComponent<Text>();
        Question1.text = Question1;
    }

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

    }
}

ОБНОВЛЕНИЕ:

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

1 Ответ

0 голосов
/ 02 февраля 2019

Question1.text имеет тип string, и вы пытаетесь установить его значение на Question1, тип которого UnityEngine.UI.Text.Вы можете установить только его значение равным string, поэтому оно должно быть:

Question1.text = yourText; 

или

Question1.text = "Your text goes here";

Вот как это будет выглядеть в вашем коде:

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

public class ChangeQuestion1 : MonoBehaviour {

    public GameObject databaseinterfaceinstance;

    public Text Question1;
    public string yourText = "Your text goes here";
    // Use this for initialization
    void Start () {
        databaseinterfaceinstance = GameObject.FindWithTag("DatabaseInterface").GetComponent<GameObject>();
        Question1 = gameObject.GetComponent<Text>();
        Question1.text = yourText;
    }

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

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