Я пытаюсь создать простой сценарий, в котором, если я сталкиваюсь с объектом (пока это просто простое поле), он запускает отображение текста на экране с именем «зоны».

Я получаю сообщение об ошибке сценария и не могу понять, что он мне говорит. Я пытался просмотреть различные руководства, но все время появляется что-то статичное, например, имя игрока или счет.

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

Вот мой код:

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

public class ZoneAnnounce : MonoBehaviour {

    // Text Object
    private Text zoneNameText;

    // Exposed Text Variable
    public string zoneName = "Unknown";

    void OnCollisionEnter (Collision col) {

        if ( col.gameObject.name == "Player" ) {
            StartCoroutine(showZoneInfo(zoneName));
        }

    }   

    IEnumerator showZoneInfo (string zoneName) {

        zoneNameText.text = zoneName;

        yield return WaitForSeconds(3);

    }

}

И вот ошибка, которую я получаю:

Assets / ZoneAnnounce.cs (26,16): ошибка CS0119: выражение обозначает тип, в котором ожидалась переменная, значение или группа методов

0
Caleb Palmquist 24 Июл 2017 в 02:00

1 ответ

Лучший ответ

Проблема здесь: yield return WaitForSeconds(3);

WaitForSeconds равно class. Чтобы получить его, вы должны создать его новый экземпляр. Это можно сделать, просто добавив ключевое слово new перед WaitForSeconds.

Измените это на yield return new WaitForSeconds(3);


Если вы уже знаете время ожидания (3 секунды), вы можете создать новый экземпляр WaitForSeconds, а затем использовать его без нового ключевого слова.

WaitForSeconds waitTime = new WaitForSeconds(3);
IEnumerator showZoneInfo(string zoneName)
{

    zoneNameText.text = zoneName;
    yield return waitTime;
}
1
Programmer 24 Июл 2017 в 02:08
Приносим извинения за задержку с ответом. Спасибо.
 – 
Caleb Palmquist
25 Июл 2017 в 20:20