我试图实现潇洒机制,但每次我试图运行此代码时,我的统一性都会冻结。有解决方案吗?
if(Input.GetKeyDown(KeyCode.LeftShift)){
StartCoroutine(DashCorutine());
}
}
private IEnumerator DashCorutine()
{
float starttime = Time.time;
while(starttime + dashTime > Time.time){
Vector3 moveDerection= transform.forward*dashlength;
controller.Move(moveDerection *Time.deltaTime*dashSpeed);
}
yield return null;
}
}
在while循环中添加一个yield
。
循环时需要在内部添加yield break
private IEnumerator DashCorutine()
{
float startTime = Time.time;
while (startTime + dashTime > Time.time)
{
Vector3 moveDirection = transform.forward * dashLength;
controller.Move(moveDirection * Time.deltaTime * dashSpeed);
yield break;
}
}
还可以查看编码标准以获得更好的代码质量。
并修复拼写错误。
编码标准