Unity中实现MeshRenderer 4次闪烁功能运行异常问题求助
问题根因
- 协程名称不匹配:
Start()方法中调用StartCoroutine(Blink()),但实际定义的协程方法名为BlinkLid(),对应协程根本没有被启动,你写的闪烁逻辑完全没有执行。 - 协程内部逻辑错误:即使修正名称,现有逻辑每次将
mr.enabled设为true后没有添加等待时间,会直接进入下一次循环立刻设为false,人眼无法捕捉到启用状态,最终呈现的效果就是MeshRenderer一直处于禁用状态。
修复方案
先修正协程名称匹配问题,再调整协程内部的等待逻辑,即可实现0.25秒为间隔闪烁4次的效果:
MeshRenderer mr; void Start () { mr = this.gameObject.GetComponent<MeshRenderer> (); // 启动的协程名称需要和定义的方法名完全匹配 StartCoroutine (BlinkLid ()); } IEnumerator BlinkLid () { for (int i = 0; i < 4; i++) { mr.enabled = false; yield return new WaitForSeconds (0.25f); mr.enabled = true; yield return new WaitForSeconds (0.25f); } // 若需要闪烁结束后保持禁用状态,可取消下方注释 // mr.enabled = false; }
内容的提问来源于stack exchange,提问作者Sana
相关产品推荐
相关产品推荐

