【发布时间】:2017-09-20 17:18:31
【问题描述】:
我在为 Oculus 设置的 VR 中使用了一个光标。
与交互对象交互时的光标是通过使用颜色淡入四个图像组件之一来做出反应。这是为了表示加载。
我通过执行以下操作进行了此设置:
在按钮上设置了事件触发器。
事件触发器有一个 On Pointer Enter 部分。
on 指针部分将光标加载到其中。
光标由一个父级和四个子级组成。
这四个孩子是脚本中的一个图像列表。
当光标悬停在按钮上时,它们会一起淡入。
这几乎是正确的,但是我希望它们在前一个完成淡入后淡入。
float waitTime = 10.00f;
bool switchOn = false;
public List<Image> CursorLoaders = new List<Image>();
void Update()
{
if (switchOn)
{
for (int i = 0; i <= 3; i++)
{
StartCoroutine(FadeIn(CursorLoaders[i]));
}
}
}
public IEnumerator FadeIn(Image CursorPiece)
{
float ElapsedTime = 0.0f;
float TotalTime = 0.5f;
while (ElapsedTime < TotalTime)
{
ElapsedTime += Time.deltaTime;
CursorPiece.color = Color.Lerp(new Color(CursorPiece.color.r, CursorPiece.color.g, CursorPiece.color.b, 0.0f), new Color(CursorPiece.color.r, CursorPiece.color.g, CursorPiece.color.b, 1), (ElapsedTime / TotalTime));
yield return null;
}
}
public void ButtonCountDown()
{
switchOn = true;
}
我在资产商店中查找了类似的东西,包括 VR 样本 - 它主要使用填充量和方向 - 这很好,但不适合这个。我还在 coRoutine 中创建了 WaitForSeconds,并且我还尝试添加另一个带有等待的协程。我有点挠头。我终于在网上寻找了类似的渐进式渐变示例或一个接一个地更改事物的方法,但无济于事。
【问题讨论】:
-
如何分别为每个部分设置淡入淡出方法,并设置/检查布尔值以查看时间已经足够淡化前一个图像,然后再移动到下一个
-
我也在想同样的事情——但我想知道——会不会更干净。但是,也许您在 co 例程中考虑了这一点;就像一种阻止其他人直到完成的方法。我正在看看我能用它做什么......