This commit is contained in:
SoulliesOfficial
2025-08-14 04:30:13 -04:00
parent 72a722a83f
commit 9f30e54ece
8 changed files with 16099 additions and 17711 deletions

View File

@@ -54,12 +54,7 @@ namespace Ichni.RhythmGame
targetTransformSubmodule.positionOffset += currentPosition;
targetTransformSubmodule.positionDirtyMark = true;
}
else if ((positionX.isSwitchingReturnType ||
positionY.isSwitchingReturnType ||
positionZ.isSwitchingReturnType) &&
(positionX.returnType is not FlexibleReturnType.MiddleExecuting &&
positionY.returnType is not FlexibleReturnType.MiddleExecuting &&
positionZ.returnType is not FlexibleReturnType.MiddleExecuting))
else if (positionX.isSwitchingReturnType || positionY.isSwitchingReturnType || positionZ.isSwitchingReturnType)
{
animationReturnType = FlexibleReturnType.MiddleExecuting;
Vector3 currentPosition = new Vector3(positionX.value, positionY.value, positionZ.value);

View File

@@ -54,12 +54,7 @@ namespace Ichni.RhythmGame
targetTransformSubmodule.scaleOffset += currentScale;
targetTransformSubmodule.scaleDirtyMark = true;
}
else if ((scaleX.isSwitchingReturnType ||
scaleY.isSwitchingReturnType ||
scaleZ.isSwitchingReturnType) &&
(scaleX.returnType is not FlexibleReturnType.MiddleExecuting &&
scaleY.returnType is not FlexibleReturnType.MiddleExecuting &&
scaleZ.returnType is not FlexibleReturnType.MiddleExecuting))
else if (scaleX.isSwitchingReturnType || scaleY.isSwitchingReturnType || scaleZ.isSwitchingReturnType)
{
animationReturnType = FlexibleReturnType.MiddleExecuting;
Vector3 currentScale = new Vector3(scaleX.value, scaleY.value, scaleZ.value);

View File

@@ -53,12 +53,7 @@ namespace Ichni.RhythmGame
targetTransformSubmodule.eulerAnglesOffset += currentEulerAngles;
targetTransformSubmodule.eulerAnglesDirtyMark = true;
}
else if ((eulerAngleX.isSwitchingReturnType ||
eulerAngleY.isSwitchingReturnType ||
eulerAngleZ.isSwitchingReturnType) &&
(eulerAngleX.returnType is not FlexibleReturnType.MiddleExecuting &&
eulerAngleY.returnType is not FlexibleReturnType.MiddleExecuting &&
eulerAngleZ.returnType is not FlexibleReturnType.MiddleExecuting))
else if (eulerAngleX.isSwitchingReturnType || eulerAngleY.isSwitchingReturnType || eulerAngleZ.isSwitchingReturnType)
{
animationReturnType = FlexibleReturnType.MiddleExecuting;
Vector3 currentEulerAngles = new Vector3(eulerAngleX.value, eulerAngleY.value, eulerAngleZ.value);

View File

@@ -2,6 +2,7 @@ using System;
using System.Collections;
using System.Collections.Generic;
using Ichni.RhythmGame.Beatmap;
using UnityEngine;
namespace Ichni.RhythmGame
@@ -84,6 +85,15 @@ namespace Ichni.RhythmGame
AnimatedFloat nowAnimatedFloat = GetAnimatedFloat(nowTime); //获取当前时间点对应的AnimatedFloat
if (nowAnimatedFloat != null) //如果能获取到,表明当前时间点存在动画
{
if (nowTime + Time.deltaTime >= nowAnimatedFloat.endTime)
{
value = nowAnimatedFloat.endValue;
returnType = FlexibleReturnType.After;
if (lastReturnType != returnType) isSwitchingReturnType = true;
lastReturnType = returnType;
return;
}
//获取songTime时间点时基于动画曲线的AnimatedFloat比例点->01
float nowPercent = AnimationCurveEvaluator.Evaluate(nowAnimatedFloat.animationCurveType,
(nowTime - nowAnimatedFloat.startTime) / nowAnimatedFloat.totalTime);