1. Bug:协程阻塞游戏主线程
我在测试 Switchable 的时候发现我的过渡并没有达到应有的效果,几乎是瞬间就从起点值到达了终点值,没有平滑
我把平滑时间延长了之后发现游戏有明显的阻塞,这和我对协程的第一印象相悖
原代码
使用 IEnumerator 函数用于协程
/// <summary>
/// 模式过渡:使变量在不同预设值之间切换
/// </summary>
/// <param name="mode">预设模式</param>
/// <returns></returns>
private IEnumerator ModeTransition(T mode)
{
float time = ModeTransitionTime;
while(time > 0)
{
time -= Time.deltaTime;
Debug.Log(time);
foreach (ISwitchable switchable in switchableList)
{
switchable.SwitchValue(mode);
}
}
yield return null;
}
协程启动方式
/// <summary>
/// 行动模式
/// </summary>
[ShowInInspector]
[Tooltip("行动模式")]
private T mode;