协同作用
触发执行一段代码,中间等待一定时间后再继续执行。
步骤:
- 【创建】一个方法,要求方法返回:
IEnumerator类型
- 将代码段放入方法中
- 在需要等待的位置,【插入】返回值:
yield return new WaitForSeconds(等待时间);
- 使用【协同函数】调用方法:
StartCoroutine(方法);
代码实例
public class SynergyTest : MonoBehaviour
{
public AudioClip clip1;
public AudioClip clip2;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
//按W键顺序播放两段音乐
if (Input.GetKeyDown(KeyCode.W))
{
//使用协同函数调用播放方法
StartCoroutine(PlayClip());
}
}
/// <summary>
/// 播放clip1和clip2两段音乐
/// </summary>
/// <returns>返回值为等待时间</returns>
IEnumerator PlayClip()
{
//定点播放clip1音乐
AudioSource.PlayClipAtPoint(clip1, new Vector3(10, 10, 10));
//返回等待时间,时间一到继续执行后面的代码
yield return new WaitForSeconds(clip1.length);
//定点播放clip2音乐
AudioSource.PlayClipAtPoint(clip2, new Vector3(-10, -10, -10));
}
}