做网站怎么排版好看,最新新闻热点事件2022年,成都装修报价明细,wordpress页面查询数据1.具体实现
逐步更新一个动画混合参数#xff08;Blend#xff09;#xff0c;使其平滑地过渡到目标值#xff0c;可以实现角色动作的平滑过渡#xff0c;比如从走路过渡到跑步。 private float currentBleng;private float targetBlend;public float accelerSpeed 5;//…1.具体实现
逐步更新一个动画混合参数Blend使其平滑地过渡到目标值可以实现角色动作的平滑过渡比如从走路过渡到跑步。
private float currentBleng;private float targetBlend;public float accelerSpeed 5;//逐步更新d动画混合参数Blend使其平滑地过渡到目标值。通过这种方式可以实现角色动作的平滑过渡比如从走路过渡到跑步private void UpdateMixBlend(){if (Mathf.Abs(currentBleng - targetBlend) ConstName.accelerSpeed * Time.deltaTime){currentBleng targetBlend;}//如果当前混合值大于目标混合值则以 accelerSpeed * Time.deltaTime 的速率递减 currentBlend。else if (currentBlengtargetBlend){currentBleng - accelerSpeed * Time.deltaTime;}else{currentBleng accelerSpeed * Time.deltaTime;}ani.SetFloat(Blend, currentBleng);}
2.关键概念和步骤
2.1平滑过渡判断
if (Mathf.Abs(currentBlend - targetBlend) ConstName.accelerSpeed * Time.deltaTime) { currentBlend targetBlend; }
使用 Mathf.Abs 计算当前混合值 currentBlend 和目标混合值 targetBlend 之间的绝对差距。如果差距小于一定阈值ConstName.accelerSpeed * Time.deltaTime则直接将 currentBlend 设置为 targetBlend以避免过小的增量带来的抖动。 2.2递减或递增 currentBlend: else if (currentBlengtargetBlend){currentBleng - accelerSpeed * Time.deltaTime;}else{currentBleng accelerSpeed * Time.deltaTime;} 如果 currentBlend 大于 targetBlend则以加速速度递减 currentBlend如果 currentBlend 小于 targetBlend加速速度递减递增 currentBlend 2.3更新动画参数 ani.SetFloat(Blend, currentBleng); 将计算后的 currentBlend 值设置到动画控制器中的 Blend 参数上使动画参数平滑过渡到目标值