C# Unity5中的WaitForSeconds错误
我正在尝试设置一个简单的脚本,如果我与一个对象(现在只是一个简单的框)发生碰撞,它会触发文本,并在屏幕上显示“区域”名称 我得到了一个脚本错误,我似乎不明白它告诉我要做什么。我试着看了各种教程,但不断出现的是一些静态的东西,比如球员的名字或分数 我希望文本在一段时间后淡入淡出,因此,在我试图传递区域名称的末尾有一个额外的函数。我将此脚本附加到每个区域触发器 这是我的密码:C# Unity5中的WaitForSeconds错误,c#,unity3d,unity5,C#,Unity3d,Unity5,我正在尝试设置一个简单的脚本,如果我与一个对象(现在只是一个简单的框)发生碰撞,它会触发文本,并在屏幕上显示“区域”名称 我得到了一个脚本错误,我似乎不明白它告诉我要做什么。我试着看了各种教程,但不断出现的是一些静态的东西,比如球员的名字或分数 我希望文本在一段时间后淡入淡出,因此,在我试图传递区域名称的末尾有一个额外的函数。我将此脚本附加到每个区域触发器 这是我的密码: using System.Collections; using System.Collections.Generic; us
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/zoneanonce.cs(26,16):错误CS0119:表达式表示一种类型,其中需要变量、值或方法组
问题在这里:
yield return WaitForSeconds(3)代码>
WaitForSeconds
是class
。要产生它,您必须创建它的新实例。这可以通过简单地在WaitForSeconds
之前添加new
关键字来实现
将其更改为yield-returnnewwaitforseconds(3)代码>
如果您已经知道等待的时间(3秒),则可以创建WaitForSeconds
的新实例,然后在不使用new关键字的情况下使用它
WaitForSeconds waitTime = new WaitForSeconds(3);
IEnumerator showZoneInfo(string zoneName)
{
zoneNameText.text = zoneName;
yield return waitTime;
}
很抱歉延迟回复。非常感谢。