角色控制器dash unity 3D



我试图实现潇洒机制,但每次我试图运行此代码时,我的统一性都会冻结。有解决方案吗?

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;
}
}

还可以查看编码标准以获得更好的代码质量。

并修复拼写错误。

编码标准

最新更新