【修复】叽里咕噜说啥呢听不懂

Signed-off-by: TRAfoer <lhf190@outlook.com>
This commit is contained in:
2025-08-14 21:27:15 +08:00
18 changed files with 507829 additions and 14609 deletions

View File

@@ -45,9 +45,16 @@ namespace Ichni.RhythmGame
positionY.UpdateFlexibleFloat(songTime);
positionZ.UpdateFlexibleFloat(songTime);
if ((positionX.returnType is FlexibleReturnType.MiddleExecuting || positionX.isSwitchingReturnType) ||
(positionY.returnType is FlexibleReturnType.MiddleExecuting || positionY.isSwitchingReturnType) ||
(positionZ.returnType is FlexibleReturnType.MiddleExecuting || positionZ.isSwitchingReturnType))
if (positionX.returnType is FlexibleReturnType.MiddleExecuting ||
positionY.returnType is FlexibleReturnType.MiddleExecuting ||
positionZ.returnType is FlexibleReturnType.MiddleExecuting)
{
animationReturnType = FlexibleReturnType.MiddleExecuting;
Vector3 currentPosition = new Vector3(positionX.value, positionY.value, positionZ.value);
targetTransformSubmodule.positionOffset += currentPosition;
targetTransformSubmodule.positionDirtyMark = true;
}
else if (positionX.isSwitchingReturnType || positionY.isSwitchingReturnType || positionZ.isSwitchingReturnType)
{
animationReturnType = FlexibleReturnType.MiddleExecuting;
Vector3 currentPosition = new Vector3(positionX.value, positionY.value, positionZ.value);

View File

@@ -45,9 +45,16 @@ namespace Ichni.RhythmGame
scaleY.UpdateFlexibleFloat(songTime);
scaleZ.UpdateFlexibleFloat(songTime);
if ((scaleX.returnType is FlexibleReturnType.MiddleExecuting || scaleX.isSwitchingReturnType) ||
(scaleY.returnType is FlexibleReturnType.MiddleExecuting || scaleY.isSwitchingReturnType) ||
(scaleZ.returnType is FlexibleReturnType.MiddleExecuting || scaleZ.isSwitchingReturnType))
if (scaleX.returnType is FlexibleReturnType.MiddleExecuting ||
scaleY.returnType is FlexibleReturnType.MiddleExecuting ||
scaleZ.returnType is FlexibleReturnType.MiddleExecuting)
{
animationReturnType = FlexibleReturnType.MiddleExecuting;
Vector3 currentScale = new Vector3(scaleX.value, scaleY.value, scaleZ.value);
targetTransformSubmodule.scaleOffset += currentScale;
targetTransformSubmodule.scaleDirtyMark = true;
}
else if (scaleX.isSwitchingReturnType || scaleY.isSwitchingReturnType || scaleZ.isSwitchingReturnType)
{
animationReturnType = FlexibleReturnType.MiddleExecuting;
Vector3 currentScale = new Vector3(scaleX.value, scaleY.value, scaleZ.value);

View File

@@ -44,9 +44,16 @@ namespace Ichni.RhythmGame
eulerAngleY.UpdateFlexibleFloat(songTime);
eulerAngleZ.UpdateFlexibleFloat(songTime);
if (eulerAngleX.returnType is FlexibleReturnType.MiddleExecuting || eulerAngleX.isSwitchingReturnType ||
(eulerAngleY.returnType is FlexibleReturnType.MiddleExecuting || eulerAngleY.isSwitchingReturnType) ||
(eulerAngleZ.returnType is FlexibleReturnType.MiddleExecuting || eulerAngleZ.isSwitchingReturnType))
if (eulerAngleX.returnType is FlexibleReturnType.MiddleExecuting ||
eulerAngleY.returnType is FlexibleReturnType.MiddleExecuting ||
eulerAngleZ.returnType is FlexibleReturnType.MiddleExecuting)
{
animationReturnType = FlexibleReturnType.MiddleExecuting;
Vector3 currentEulerAngles = new Vector3(eulerAngleX.value, eulerAngleY.value, eulerAngleZ.value);
targetTransformSubmodule.eulerAnglesOffset += currentEulerAngles;
targetTransformSubmodule.eulerAnglesDirtyMark = true;
}
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);

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b06ede4b8c5751e438191b94eb2a6d6a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c1ffb98d8628c58409b40ff695a58f0f
guid: 06b59e3e279fe5d41bba601c3d5772e8
DefaultImporter:
externalObjects: {}
userData:

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +1,2 @@
?¾=çšéUdË<64>é5Ú¡dKÔQ¿ùP:¯ô—lçÈ5'yˆjW[®-
¸<EFBFBD>Ö¥¤Ôxmù½ÓmÛÑ8ÉÛ¹¡j3Àˆ+_r{XRÈÉl¿H5S~€âP8–ÈÊ’ÉÎ
`ב1c¶iֺ+<2B>^zןר0״ZTKֹDv<E2808F>Jm כ×7lQ]V•Gֶu°לvֿ@ז4X[עלS<>DZאk¨l<C2A8>7r<37>:ִµױ¢;<3B>)X~+8ֵֿeס$ס¬¡LB•קlf<6C>j‰Kyֳ<79>W˜ח?<>Ft!G×^x9?½ִ£µ{¶ץ<C2B6>B-}{E׳ו l=חva4l~¡®¦7׃g³ררD«m<6D>׃<33>ק·¡„‏­‰×£װ~
¯–ְ@<40><EFBFBD><E280A1>ֵfIד@<0E>Gזִ­<C2AD>ֻ<EFBFBD>r־/8

File diff suppressed because it is too large Load Diff

View File

@@ -3,8 +3,8 @@
"__type" : "Ichni.RhythmGame.Beatmap.SongInformation_BM,Assembly-CSharp",
"value" : {
"songName" : "LWS2 - SHENG.wav",
"bpm" : 85,
"delay" : 2,
"bpm" : 170,
"delay" : 1,
"offset" : 0,
"attachedElementGuid" : {
"value" : "00000000-0000-0000-0000-000000000000"

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,7 @@
"__type" : "Ichni.RhythmGame.Beatmap.SongInformation_BM,Assembly-CSharp",
"value" : {
"songName" : "Space Rain.wav",
"bpm" : 180,
"bpm" : 181.818,
"delay" : 0,
"offset" : 0,
"attachedElementGuid" : {