Unity5 中的 WaitForSeconds 错误
WaitForSeconds Error in Unity5
我正在尝试设置一个简单的脚本,如果我与一个对象(现在只是一个简单的框)发生碰撞,它会触发文本以 "zone" 名称显示在屏幕上。
我遇到脚本错误,我似乎无法弄清楚它要我做什么。我尝试查看各种教程,但不断出现的是一些静态的内容,例如玩家姓名或分数。
我希望文本稍微淡出一点,因此我试图将区域名称传递给末尾的额外功能。我将此脚本附加到每个区域触发器。
这是我的代码:
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): error CS0119: Expression denotes a type, where a variable, value or method group was expected
问题在这里:yield return WaitForSeconds(3);
WaitForSeconds
是 class
。要产生它,您必须创建它的新实例。这可以通过简单地在 WaitForSeconds
.
之前添加 new
关键字来完成
将其更改为 yield return new WaitForSeconds(3);
如果您已经知道要等待的时间(3 秒),您可以创建 WaitForSeconds
的新实例,然后在不使用 new 关键字的情况下使用它。
WaitForSeconds waitTime = new WaitForSeconds(3);
IEnumerator showZoneInfo(string zoneName)
{
zoneNameText.text = zoneName;
yield return waitTime;
}
我正在尝试设置一个简单的脚本,如果我与一个对象(现在只是一个简单的框)发生碰撞,它会触发文本以 "zone" 名称显示在屏幕上。
我遇到脚本错误,我似乎无法弄清楚它要我做什么。我尝试查看各种教程,但不断出现的是一些静态的内容,例如玩家姓名或分数。
我希望文本稍微淡出一点,因此我试图将区域名称传递给末尾的额外功能。我将此脚本附加到每个区域触发器。
这是我的代码:
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): error CS0119: Expression denotes a type, where a variable, value or method group was expected
问题在这里:yield return WaitForSeconds(3);
WaitForSeconds
是 class
。要产生它,您必须创建它的新实例。这可以通过简单地在 WaitForSeconds
.
new
关键字来完成
将其更改为 yield return new WaitForSeconds(3);
如果您已经知道要等待的时间(3 秒),您可以创建 WaitForSeconds
的新实例,然后在不使用 new 关键字的情况下使用它。
WaitForSeconds waitTime = new WaitForSeconds(3);
IEnumerator showZoneInfo(string zoneName)
{
zoneNameText.text = zoneName;
yield return waitTime;
}