c# - Unity 点击并传递 WaitForSeconds
问题描述
我正在制作简单的 2d 游戏。这是开场。(徽标图像显示)。如果鼠标单击(0)时间过去和其他图像显示,我想。我该怎么做 ?
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class OpeningCanvasScript : MonoBehaviour
{
void Start()
{
StartCoroutine(otherImage());
}
private void Deactivate()
{
for (int i = 0; i < transform.childCount; i++)
{
transform.GetChild(i).gameObject.SetActive(false);
}
}
private IEnumerator otherImage()
{
for (int i = 0; i < transform.childCount; i++)
{
Deactivate();
transform.GetChild(i).gameObject.SetActive(true);
yield return new WaitForSeconds(3f);
// I want to if mouse click down (0) Time passes and other image show
}
SceneManager.LoadScene(2);
}
}```
解决方案
我想我是这样做的
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class OpeningCanvasScript : MonoBehaviour
{
bool finished = false;
void Start()
{
StartCoroutine(otherImage());
}
private void Deactivate()
{
for (int i = 0; i < transform.childCount; i++)
{
transform.GetChild(i).gameObject.SetActive(false);
}
}
private void Update()
{
if (Input.GetMouseButtonDown(0))
{
finished = true;
}
}
private IEnumerator otherImage()
{
for (int i = 0; i < transform.childCount; i++)
{
finished = false;
Deactivate();
transform.GetChild(i).gameObject.SetActive(true);
StartCoroutine(waitSeconds());
yield return new WaitUntil(()=>finished);
}
SceneManager.LoadScene(2);
}
private IEnumerator waitSeconds()
{
yield return new WaitForSeconds(3f);
finished = true;
}
}
推荐阅读
- amazon-web-services - 将网关连接到 AWS IoT
- c# - 用星号打印一个直角三角形c#
- c++ - 内部结构初始化不起作用 - C++
- excel - 通过 SSIS 目录 (SSISDB) 加载大型 Excel 文件时,SSIS 包执行失败
- html - 棱角材料设计的面板
- crystal-lang - 以 JSON 形式返回 Granite 验证错误
- google-ad-manager - 在 DFP gpt 代码中同时设置页面级 setTargeting 和广告位级 setTargeting 是否有效?
- android - 无需 Root 以编程方式启用/禁用移动数据(棒棒糖及更高版本)
- python - 使用 Python 将子文件夹中的图像复制到另一个
- c++ - C++:1-定义一个变量来保存和打印答案,2-和只打印答案有什么不同?