Flexible修改,主题包更新

This commit is contained in:
SoulliesOfficial
2025-03-09 23:31:32 -04:00
parent 206698dd79
commit 2e7fca088d
36 changed files with 46658 additions and 10071 deletions

View File

@@ -48,10 +48,10 @@ namespace Ichni.RhythmGame
colorB.UpdateFlexibleFloat(songTime);
colorA.UpdateFlexibleFloat(songTime);
if (colorR.returnType is FlexibleReturnType.MiddleExecuting or FlexibleReturnType.After or FlexibleReturnType.Before ||
colorG.returnType is FlexibleReturnType.MiddleExecuting or FlexibleReturnType.After or FlexibleReturnType.Before ||
colorB.returnType is FlexibleReturnType.MiddleExecuting or FlexibleReturnType.After or FlexibleReturnType.Before ||
colorA.returnType is FlexibleReturnType.MiddleExecuting or FlexibleReturnType.After or FlexibleReturnType.Before)
if ((colorR.returnType is FlexibleReturnType.MiddleExecuting || colorR.isSwitchingReturnType) ||
(colorG.returnType is FlexibleReturnType.MiddleExecuting || colorG.isSwitchingReturnType) ||
(colorB.returnType is FlexibleReturnType.MiddleExecuting || colorB.isSwitchingReturnType) ||
(colorA.returnType is FlexibleReturnType.MiddleExecuting || colorA.isSwitchingReturnType))
{
animationReturnType = FlexibleReturnType.MiddleExecuting;

View File

@@ -47,10 +47,10 @@ namespace Ichni.RhythmGame
colorB.UpdateFlexibleFloat(songTime);
colorI.UpdateFlexibleFloat(songTime);
if (colorR.returnType is FlexibleReturnType.MiddleExecuting or FlexibleReturnType.After or FlexibleReturnType.Before ||
colorG.returnType is FlexibleReturnType.MiddleExecuting or FlexibleReturnType.After or FlexibleReturnType.Before ||
colorB.returnType is FlexibleReturnType.MiddleExecuting or FlexibleReturnType.After or FlexibleReturnType.Before ||
colorI.returnType is FlexibleReturnType.MiddleExecuting or FlexibleReturnType.After or FlexibleReturnType.Before)
if ((colorR.returnType is FlexibleReturnType.MiddleExecuting || colorR.isSwitchingReturnType) ||
(colorG.returnType is FlexibleReturnType.MiddleExecuting || colorG.isSwitchingReturnType) ||
(colorB.returnType is FlexibleReturnType.MiddleExecuting || colorB.isSwitchingReturnType) ||
(colorI.returnType is FlexibleReturnType.MiddleExecuting || colorI.isSwitchingReturnType))
{
animationReturnType = FlexibleReturnType.MiddleExecuting;

View File

@@ -45,9 +45,9 @@ namespace Ichni.RhythmGame
positionY.UpdateFlexibleFloat(songTime);
positionZ.UpdateFlexibleFloat(songTime);
if (positionX.returnType is FlexibleReturnType.MiddleExecuting or FlexibleReturnType.After or FlexibleReturnType.Before ||
positionY.returnType is FlexibleReturnType.MiddleExecuting or FlexibleReturnType.After or FlexibleReturnType.Before ||
positionZ.returnType is FlexibleReturnType.MiddleExecuting or FlexibleReturnType.After or FlexibleReturnType.Before)
if ((positionX.returnType is FlexibleReturnType.MiddleExecuting || positionX.isSwitchingReturnType) ||
(positionY.returnType is FlexibleReturnType.MiddleExecuting || positionY.isSwitchingReturnType) ||
(positionZ.returnType is FlexibleReturnType.MiddleExecuting || positionZ.isSwitchingReturnType))
{
animationReturnType = FlexibleReturnType.MiddleExecuting;
Vector3 currentPosition = new Vector3(positionX.value, positionY.value, positionZ.value);

View File

@@ -45,9 +45,9 @@ namespace Ichni.RhythmGame
scaleY.UpdateFlexibleFloat(songTime);
scaleZ.UpdateFlexibleFloat(songTime);
if (scaleX.returnType is FlexibleReturnType.MiddleExecuting or FlexibleReturnType.After or FlexibleReturnType.Before ||
scaleY.returnType is FlexibleReturnType.MiddleExecuting or FlexibleReturnType.After or FlexibleReturnType.Before ||
scaleZ.returnType is FlexibleReturnType.MiddleExecuting or FlexibleReturnType.After or FlexibleReturnType.Before)
if ((scaleX.returnType is FlexibleReturnType.MiddleExecuting || scaleX.isSwitchingReturnType) ||
(scaleY.returnType is FlexibleReturnType.MiddleExecuting || scaleY.isSwitchingReturnType) ||
(scaleZ.returnType is FlexibleReturnType.MiddleExecuting || scaleZ.isSwitchingReturnType))
{
animationReturnType = FlexibleReturnType.MiddleExecuting;
Vector3 currentScale = new Vector3(scaleX.value, scaleY.value, scaleZ.value);

View File

@@ -47,9 +47,9 @@ namespace Ichni.RhythmGame
eulerAngleY.UpdateFlexibleFloat(songTime);
eulerAngleZ.UpdateFlexibleFloat(songTime);
if (eulerAngleX.returnType is FlexibleReturnType.MiddleExecuting or FlexibleReturnType.After or FlexibleReturnType.Before ||
eulerAngleY.returnType is FlexibleReturnType.MiddleExecuting or FlexibleReturnType.After or FlexibleReturnType.Before ||
eulerAngleZ.returnType is FlexibleReturnType.MiddleExecuting or FlexibleReturnType.After or FlexibleReturnType.Before)
if ((eulerAngleX.returnType is FlexibleReturnType.MiddleExecuting || eulerAngleX.isSwitchingReturnType) ||
(eulerAngleY.returnType is FlexibleReturnType.MiddleExecuting || eulerAngleY.isSwitchingReturnType) ||
(eulerAngleZ.returnType is FlexibleReturnType.MiddleExecuting || eulerAngleZ.isSwitchingReturnType))
{
animationReturnType = FlexibleReturnType.MiddleExecuting;
Vector3 currentEulerAngles = new Vector3(eulerAngleX.value, eulerAngleY.value, eulerAngleZ.value);

View File

@@ -48,6 +48,8 @@ namespace Ichni.RhythmGame
public float value;
public int currentAnimationIndex;
public List<AnimatedFloat> animations;
public bool isSwitchingReturnType;
public FlexibleReturnType lastReturnType;
public FlexibleReturnType returnType;
public FlexibleFloat()
@@ -77,6 +79,8 @@ namespace Ichni.RhythmGame
/// <param name="歌曲时间"></param>
public void UpdateFlexibleFloat(float nowTime)
{
if(isSwitchingReturnType) isSwitchingReturnType = false;
AnimatedFloat nowAnimatedFloat = GetAnimatedFloat(nowTime); //获取当前时间点对应的AnimatedFloat
if (nowAnimatedFloat != null) //如果能获取到,表明当前时间点存在动画
{
@@ -84,7 +88,11 @@ namespace Ichni.RhythmGame
float nowPercent = AnimationCurveEvaluator.Evaluate(nowAnimatedFloat.animationCurveType,
(nowTime - nowAnimatedFloat.startTime) / nowAnimatedFloat.totalTime);
value = nowAnimatedFloat.startValue + nowPercent * nowAnimatedFloat.differenceValue; //计算value
returnType = FlexibleReturnType.MiddleExecuting;
if (lastReturnType != returnType) isSwitchingReturnType = true;
lastReturnType = returnType;
return;
}
@@ -104,6 +112,9 @@ namespace Ichni.RhythmGame
}
returnType = FlexibleReturnType.Before;
if (lastReturnType != returnType) isSwitchingReturnType = true;
lastReturnType = returnType;
return;
}
@@ -118,6 +129,9 @@ namespace Ichni.RhythmGame
}
returnType = FlexibleReturnType.After;
if (lastReturnType != returnType) isSwitchingReturnType = true;
lastReturnType = returnType;
return;
}
@@ -127,6 +141,9 @@ namespace Ichni.RhythmGame
}
returnType = FlexibleReturnType.MiddleInterval;
if (lastReturnType != returnType) isSwitchingReturnType = true;
lastReturnType = returnType;
return;
}

View File

@@ -1,13 +1,14 @@
using System.Collections;
using System.Collections.Generic;
using Ichni.RhythmGame.Beatmap;
using UnityEditor;
using UnityEngine;
namespace Ichni.RhythmGame
{
public class ProjectInformation : IBaseElement
{
public static string EditorVersion = "0.1.0";
public string projectName;
public string creatorName;
public string editorVersion;
@@ -39,7 +40,7 @@ namespace Ichni.RhythmGame
public void SaveBM()
{
matchedBM = new ProjectInformation_BM(projectName, creatorName, PlayerSettings.bundleVersion,
matchedBM = new ProjectInformation_BM(projectName, creatorName, "0.1.0",
createTime, lastSaveTime, selectedThemeBundleList);
}