| | |
| | | { |
| | | float timeProgress = timer / config.scaleChangeTime; |
| | | |
| | | // 使用曲线来调整缩放插值进度 |
| | | float scaleProgress = config.scaleCurve.Evaluate(timeProgress); |
| | | // 根据是否暴击选择对应的缩放曲线 |
| | | AnimationCurve scaleCurve = isCritical ? config.critScaleCurve : config.normalScaleCurve; |
| | | float scaleProgress = scaleCurve.Evaluate(timeProgress); |
| | | Vector3 currentScale = Vector3.Lerp(GetBeginScale(), GetEndScale(), scaleProgress); |
| | | rectTransform.localScale = currentScale * scaleRatio; |
| | | |
| | |
| | | applyColorCallback?.Invoke(GetEndColor()); |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 动画完成回调 |
| | | /// </summary> |
| | |
| | | onFinishCallback = null; |
| | | } |
| | | |
| | | public bool IsValid() |
| | | { |
| | | return ValidateConfig() && rectTransform != null && gameObject != null; |
| | | } |
| | | |
| | | #endregion |
| | | } |