UnityScript для C # в Unity - PullRequest
       14

UnityScript для C # в Unity

0 голосов
/ 24 октября 2019

У меня есть этот код, написанный на UnityScript. Мне нужно написать это на C #. Когда я использую онлайн-конвертер, кажется, что ошибка компилятора. В чем проблема?

Он будет использоваться для отображения текста в течение 3 секунд в тексте пользовательского интерфейса. Я новичок в Unity, поэтому, возможно, не очень хорошо объяснил.

Код UnityScript:

private var timer: float;
private var showTime: float;
private var activeTimer: boolean;
private var message: String;
private var uiText: UI.Text;
function startTimer()
{
timer = 0.0f;
showTime = 3.0f;
uiText.text = message;
activeTimer = true;
}
function Start()
{
uiText = GetComponent(UI.Text);
}
function Update()
{
if (activeTimer)
{
timer += Time.deltaTime;
if (timer > showTime)
{
activeTimer = false;
uiText.text = "";
}
}
}
function showText(m: String)
{
message = m;
startTimer();
}

Вывод из C # Converter, который, кажется, имеет некоторые проблемы:

private float timer;
private float showTime;
private bool  activeTimer;
private string message;
private UI.Text uiText;
void  startTimer (){
timer = 0.0ff;
showTime = 3.0ff;
uiText.text = message;
activeTimer = true;
}
void  Start (){
uiText = GetComponent<UI.Text>();
}
void  Update (){
if (activeTimer)
{
timer += Time.deltaTime;
if (timer > showTime)
{
activeTimer = false;
uiText.text = "";
}
}
}
void  showText ( string m  ){
message = m;
startTimer();
}

1 Ответ

1 голос
/ 25 октября 2019

В скрипте C # вы должны наследовать MonoBehaviour. Сценарий ниже будет работать =)

using UnityEngine;
using UnityEngine.UI;

/// <summary>
/// Display a text for 3 seconds in UI Text.
/// </summary>
class DisplayText : MonoBehaviour
{
    private float timer;
    private float showTime;
    private bool activeTimer;
    private string message;
    private Text uiText;

    void Start()
    {
        uiText = GetComponent<Text>();
    }

    void Update()
    {
        if (activeTimer)
        {
            timer += Time.deltaTime;
            if (timer > showTime)
            {
                activeTimer = false;
                uiText.text = "";
            }
        }
    }

    void startTimer()
    {
        timer = 0.0f;
        showTime = 3.0f;
        uiText.text = message;
        activeTimer = true;
    }

    void showText(string m)
    {
        message = m;
        startTimer();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...