【发布时间】:2019-08-17 07:11:04
【问题描述】:
我有一些结构,如对象 - 4 个子对象 - 每个孩子还有 2 个孩子。我希望为每个子对象更改其颜色的 alpha。
我创建了应该更改 alpha 的 IEnumarator,但是当我测试它时它只会更改为 0.8,而不是 0,而且我还想按时间更改它,例如平滑 2 秒,但它发生得很快
imageComponents = gameObject.GetComponentsInChildren<Image>();
textComponents = gameObject.GetComponentsInChildren<Text>();
IEnumerator HideAllBoosters(Transform _object)
{
foreach (Image image in imageComponents)
{
Color _color = image.GetComponent<Image>().color;
_color = new Color(_color.r, _color.g, _color.b, 0);
image.GetComponent<Image>().color = Color.Lerp(image.color, _color, 10 * Time.deltaTime);
}
foreach (Text text in textComponents)
{
Color _color = text.GetComponent<Text>().color;
_color = new Color(_color.r, _color.g, _color.b, 0);
text.GetComponent<Text>().color = Color.Lerp(text.color, _color, 10 * Time.deltaTime);
}
yield return null;
}
Idk 如何正确地做到这一点,mb 我应该在 Update 中为每个对象更改颜色,但我不确定它是否有利于清晰和简单的代码,所以我要求的是 - 我可以为每个对象使用另一个 IEnumerator 吗?一个更新,比如:
foreach (Image image in imageComponents)
{
StartCourutine(changeAlpha(image));
}
【问题讨论】: