改东西

Signed-off-by: TRAfoer <lhf190@outlook.com>
This commit is contained in:
2025-07-09 17:02:47 +08:00
parent bcf96b1c02
commit 1a632aea4a
9 changed files with 183 additions and 1705 deletions

View File

@@ -3561,15 +3561,15 @@ MonoBehaviour:
UseGUIDsList: []
- guid: 30dde730c51f742719fcc5c36eb811e5
type: 2
m_fileInfoHash: 6184.cs
m_fileInfoHash: 6618.cs
m_assetbundle:
m_addressable:
m_atlas:
m_fileSize: 6184
m_assetChangeTS: 0
m_fileInfoReadTS: 1750510518
m_fileWriteTS: 1744660762
m_cachefileWriteTS: 1744660762
m_fileSize: 6618
m_assetChangeTS: 1752049660
m_fileInfoReadTS: 1752049675
m_fileWriteTS: 1752034540
m_cachefileWriteTS: 1752034540
refreshStamp: 2
UseGUIDsList: []
- guid: 30fdb7163494e28429d56613fe407bf4
@@ -15330,15 +15330,15 @@ MonoBehaviour:
UseGUIDsList: []
- guid: 1119784540bef4e73b37c7cb9f597065
type: 2
m_fileInfoHash: 5887.cs
m_fileInfoHash: 6277.cs
m_assetbundle:
m_addressable:
m_atlas:
m_fileSize: 5887
m_assetChangeTS: 0
m_fileInfoReadTS: 1750510517
m_fileWriteTS: 1744661245
m_cachefileWriteTS: 1744661245
m_fileSize: 6277
m_assetChangeTS: 1752049660
m_fileInfoReadTS: 1752049675
m_fileWriteTS: 1752034540
m_cachefileWriteTS: 1752034540
refreshStamp: 2
UseGUIDsList: []
- guid: 1139f30c04130724d998e1bae48d15c6
@@ -32070,15 +32070,15 @@ MonoBehaviour:
UseGUIDsList: []
- guid: 42c83e2f698b543f98d2cfcfb1ac5228
type: 2
m_fileInfoHash: 8188.cs
m_fileInfoHash: 8549.cs
m_assetbundle:
m_addressable:
m_atlas:
m_fileSize: 8188
m_assetChangeTS: 0
m_fileInfoReadTS: 1750510515
m_fileWriteTS: 1742680962
m_cachefileWriteTS: 1742680962
m_fileSize: 8549
m_assetChangeTS: 1752050328
m_fileInfoReadTS: 1752050344
m_fileWriteTS: 1752050326
m_cachefileWriteTS: 1752050326
refreshStamp: 2
UseGUIDsList: []
- guid: 42f876c7bad484946a19cce672fc2ff4
@@ -59798,15 +59798,15 @@ MonoBehaviour:
UseGUIDsList: []
- guid: 54748045ed19d4ea6889de9b617f6f8b
type: 2
m_fileInfoHash: 7542.cs
m_fileInfoHash: 7772.cs
m_assetbundle:
m_addressable:
m_atlas:
m_fileSize: 7542
m_assetChangeTS: 1751271829
m_fileInfoReadTS: 1751271844
m_fileWriteTS: 1751271824
m_cachefileWriteTS: 1751271824
m_fileSize: 7772
m_assetChangeTS: 1752050695
m_fileInfoReadTS: 1752050710
m_fileWriteTS: 1752050619
m_cachefileWriteTS: 1752050619
refreshStamp: 2
UseGUIDsList: []
- guid: 5474cb78511de04459cac50d50b9d9e0
@@ -94629,15 +94629,15 @@ MonoBehaviour:
UseGUIDsList: []
- guid: e6daf69621681491bb09cc72e2ff4bdb
type: 2
m_fileInfoHash: 6102.cs
m_fileInfoHash: 6548.cs
m_assetbundle:
m_addressable:
m_atlas:
m_fileSize: 6102
m_assetChangeTS: 0
m_fileInfoReadTS: 1750510509
m_fileWriteTS: 1748767729
m_cachefileWriteTS: 1748767729
m_fileSize: 6548
m_assetChangeTS: 1752049660
m_fileInfoReadTS: 1752049675
m_fileWriteTS: 1752034540
m_cachefileWriteTS: 1752034540
refreshStamp: 2
UseGUIDsList: []
- guid: e60bdd1e4f6314d2382f323172110798
@@ -143522,15 +143522,15 @@ MonoBehaviour:
UseGUIDsList: []
- guid: 7ab6cd8f9a2e77c49a158e16014f9cec
type: 9
m_fileInfoHash: 2188644.json
m_fileInfoHash: 2189235.json
m_assetbundle:
m_addressable:
m_atlas:
m_fileSize: 2188644
m_assetChangeTS: 1752039696
m_fileInfoReadTS: 1752039704
m_fileWriteTS: 1752039410
m_cachefileWriteTS: 1752039410
m_fileSize: 2189235
m_assetChangeTS: 1752050049
m_fileInfoReadTS: 1752050067
m_fileWriteTS: 1752050027
m_cachefileWriteTS: 1752050027
refreshStamp: 2
UseGUIDsList: []
- guid: 7af6ac3e6b51b8d4aab04adc85b8de2f
@@ -217260,15 +217260,15 @@ MonoBehaviour:
UseGUIDsList: []
- guid: 0fcb60107ebf5574aa5fe168f6e3978e
type: 9
m_fileInfoHash: 2188492.json
m_fileInfoHash: 2188800.json
m_assetbundle:
m_addressable:
m_atlas:
m_fileSize: 2188492
m_assetChangeTS: 1752037080
m_fileInfoReadTS: 1752037086
m_fileWriteTS: 1752037080
m_cachefileWriteTS: 1752037080
m_fileSize: 2188800
m_assetChangeTS: 1752050695
m_fileInfoReadTS: 1752050710
m_fileWriteTS: 1752050691
m_cachefileWriteTS: 1752050691
refreshStamp: 2
UseGUIDsList: []
- guid: a343a8560a860bf4188c8f63103f455a
@@ -218968,10 +218968,10 @@ MonoBehaviour:
m_addressable:
m_atlas:
m_fileSize: 103409263
m_assetChangeTS: 1751656724
m_fileInfoReadTS: 1751656728
m_fileWriteTS: 1462850098
m_cachefileWriteTS: 1462850098
m_assetChangeTS: 1752049173
m_fileInfoReadTS: 1752049188
m_fileWriteTS: 1752048890
m_cachefileWriteTS: 1752048890
refreshStamp: 2
UseGUIDsList: []
- guid: e3803bb09417e274c8e5e4032ef83d26
@@ -218998,10 +218998,10 @@ MonoBehaviour:
m_addressable:
m_atlas:
m_fileSize: 106112187
m_assetChangeTS: 1751656724
m_fileInfoReadTS: 1751656728
m_fileWriteTS: 1462849939
m_cachefileWriteTS: 1462849939
m_assetChangeTS: 1752049173
m_fileInfoReadTS: 1752049188
m_fileWriteTS: 1752048875
m_cachefileWriteTS: 1752048875
refreshStamp: 2
UseGUIDsList: []
- guid: 7e4bd626d275b194d84ee33867002b0d
@@ -219011,10 +219011,10 @@ MonoBehaviour:
m_addressable:
m_atlas:
m_fileSize: 83976525
m_assetChangeTS: 1751656724
m_fileInfoReadTS: 1751656728
m_fileWriteTS: 1462850038
m_cachefileWriteTS: 1462850038
m_assetChangeTS: 1752049173
m_fileInfoReadTS: 1752049188
m_fileWriteTS: 1752048885
m_cachefileWriteTS: 1752048885
refreshStamp: 2
UseGUIDsList: []
- guid: 7ba462c2dc80b544eacfdc537aab22c6
@@ -219024,10 +219024,10 @@ MonoBehaviour:
m_addressable:
m_atlas:
m_fileSize: 102330649
m_assetChangeTS: 1751656724
m_fileInfoReadTS: 1751656728
m_fileWriteTS: 1462850002
m_cachefileWriteTS: 1462850002
m_assetChangeTS: 1752049173
m_fileInfoReadTS: 1752049188
m_fileWriteTS: 1752048880
m_cachefileWriteTS: 1752048880
refreshStamp: 2
UseGUIDsList: []
- guid: dc9261620080e854ab74885effac8c30
@@ -219037,10 +219037,10 @@ MonoBehaviour:
m_addressable:
m_atlas:
m_fileSize: 105929585
m_assetChangeTS: 1751999378
m_fileInfoReadTS: 1751999586
m_fileWriteTS: 1751999377
m_cachefileWriteTS: 1751999377
m_assetChangeTS: 1752049173
m_fileInfoReadTS: 1752049188
m_fileWriteTS: 1752048869
m_cachefileWriteTS: 1752048869
refreshStamp: 2
UseGUIDsList: []
- guid: 229055b6b8f50a0498f16f0ae39b18e9

View File

@@ -81,6 +81,13 @@ namespace Ichni.Editor
public Vector2 vector2;
public void FindTab(GameElement targetElement)
{
if (targetElement.connectedTab != null)
{
// 如果已经有Tab了直接选中
targetElement.connectedTab.SelectGameElement();
getTabPos(targetElement.connectedTab);
return;
}
targetElement.ScanAndAddEnableTypes();
if (!EditorManager.instance.ExpandWhileClick)
{
@@ -144,11 +151,17 @@ namespace Ichni.Editor
yield return null;
}
yield return null; // 等待一帧确保UI更新
getTabPos(targetElement.connectedTab);
}
void getTabPos(HierarchyTab finalTab)
{
HierarchyTab finalTab = targetElement.connectedTab;
// 修正定位算法
yield return null; // 等待布局刷新
RectTransform tabRect = finalTab.GetComponent<RectTransform>();
RectTransform containerRect = tabContainer;
RectTransform viewportRect = scrollRect.viewport != null ? scrollRect.viewport : scrollRect.GetComponent<RectTransform>();
@@ -170,7 +183,7 @@ namespace Ichni.Editor
scrollRect.verticalNormalizedPosition = normalized;
finalTab.SelectGameElement();
}
}
}
}

View File

@@ -56,6 +56,13 @@ namespace Ichni.RhythmGame
}
else
{
if (!EditorManager.instance.musicPlayer.isPlaying && animationReturnType != FlexibleReturnType.MiddleInterval)
{
Vector3 currentPosition = new Vector3(positionX.value, positionY.value, positionZ.value);
targetTransformSubmodule.positionOffset.Add(currentPosition);
targetTransformSubmodule.positionDirtyMark = true;
}
animationReturnType = FlexibleReturnType.MiddleInterval;
}
}

View File

@@ -28,7 +28,7 @@ namespace Ichni.RhythmGame
scale.animationReturnType = FlexibleReturnType.Before;
scale.targetTransformSubmodule = (animatedObject as IHaveTransformSubmodule).transformSubmodule;
//scale.timeDurationSubmodule.SetDuration(scaleX, scaleY, scaleZ);
return scale;
@@ -56,10 +56,17 @@ namespace Ichni.RhythmGame
}
else
{
if (!EditorManager.instance.musicPlayer.isPlaying && animationReturnType != FlexibleReturnType.MiddleInterval)
{
Vector3 currentScale = new Vector3(scaleX.value, scaleY.value, scaleZ.value);
targetTransformSubmodule.scaleOffset.Add(currentScale);
targetTransformSubmodule.scaleDirtyMark = true;
}
animationReturnType = FlexibleReturnType.MiddleInterval;
}
}
public override void ApplyTimeOffset(float offset)
{
base.ApplyTimeOffset(offset);
@@ -73,7 +80,7 @@ namespace Ichni.RhythmGame
{
public override void SaveBM()
{
matchedBM = new Scale_BM(elementName, elementGuid, tags, parentElement.matchedBM as GameElement_BM,
matchedBM = new Scale_BM(elementName, elementGuid, tags, parentElement.matchedBM as GameElement_BM,
scaleX.ConvertToBM(), scaleY.ConvertToBM(), scaleZ.ConvertToBM());
}
@@ -98,7 +105,7 @@ namespace Ichni.RhythmGame
var graphicEditor = inspector.GenerateButton(this, subcontainer, "GraphicEditor", () =>
{
inspector.GenerateGraphicalFlexibleFloatWindow(this, "Scale",
new FlexibleFloat[] { scaleX, scaleY, scaleZ },
new FlexibleFloat[] { scaleX, scaleY, scaleZ },
new string[] { "ScaleX", "ScaleY", "ScaleZ" });
});
}
@@ -115,7 +122,7 @@ namespace Ichni.RhythmGame
}
public Scale_BM(string elementName, Guid elementGuid, List<string> tags, GameElement_BM attachedElement,
public Scale_BM(string elementName, Guid elementGuid, List<string> tags, GameElement_BM attachedElement,
FlexibleFloat_BM scaleX, FlexibleFloat_BM scaleY, FlexibleFloat_BM scaleZ)
: base(elementName, elementGuid, tags, attachedElement)
{

View File

@@ -55,6 +55,13 @@ namespace Ichni.RhythmGame
}
else
{
if (!EditorManager.instance.musicPlayer.isPlaying && animationReturnType != FlexibleReturnType.MiddleInterval)
{
Vector3 currentRotation = new Vector3(eulerAngleX.value, eulerAngleY.value, eulerAngleZ.value);
targetTransformSubmodule.eulerAnglesOffset.Add(currentRotation);
targetTransformSubmodule.eulerAnglesDirtyMark = true;
}
animationReturnType = FlexibleReturnType.MiddleInterval;
}
}

View File

@@ -12,10 +12,10 @@ namespace Ichni.RhythmGame
public float startValue, endValue; //起止值
public float startTime, endTime; //起止时间
public AnimationCurveType animationCurveType; //动画曲线类型
public float differenceValue => endValue - startValue; //差值
public float totalTime => endTime - startTime; //总时间
public AnimatedFloat(float startTime, float endTime, float startValue, float endValue,
AnimationCurveType animationCurveType)
@@ -26,7 +26,7 @@ namespace Ichni.RhythmGame
this.endTime = endTime;
this.animationCurveType = animationCurveType;
}
public void ApplyTimeOffset(float offset)
{
startTime += offset;
@@ -79,8 +79,8 @@ namespace Ichni.RhythmGame
/// <param name="歌曲时间"></param>
public void UpdateFlexibleFloat(float nowTime)
{
if(isSwitchingReturnType) isSwitchingReturnType = false;
if (isSwitchingReturnType) isSwitchingReturnType = false;
AnimatedFloat nowAnimatedFloat = GetAnimatedFloat(nowTime); //获取当前时间点对应的AnimatedFloat
if (nowAnimatedFloat != null) //如果能获取到,表明当前时间点存在动画
{
@@ -88,11 +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;
}
@@ -114,7 +114,7 @@ namespace Ichni.RhythmGame
returnType = FlexibleReturnType.Before;
if (lastReturnType != returnType) isSwitchingReturnType = true;
lastReturnType = returnType;
return;
}
@@ -131,10 +131,10 @@ namespace Ichni.RhythmGame
returnType = FlexibleReturnType.After;
if (lastReturnType != returnType) isSwitchingReturnType = true;
lastReturnType = returnType;
return;
}
SetLateAnimatedFloat(nowTime); //如果当前时间点在动画之间设置currentAnimationIndex
if (currentAnimationIndex >= 0) //如果当前时间点在动画之间
{
value = animations[currentAnimationIndex].endValue;
@@ -143,7 +143,7 @@ namespace Ichni.RhythmGame
returnType = FlexibleReturnType.MiddleInterval;
if (lastReturnType != returnType) isSwitchingReturnType = true;
lastReturnType = returnType;
return;
}
@@ -171,15 +171,27 @@ namespace Ichni.RhythmGame
return null;
}
void SetLateAnimatedFloat(float nowTime)
{
for (int i = 0; i < animations.Count - 1; i++)
{
if (nowTime >= animations[i].startTime && nowTime <= animations[i + 1].startTime)
{
currentAnimationIndex = i;
return;
}
}
return;
}
/// <summary>
/// 转换为Beatmap存档类型
/// </summary>
public FlexibleFloat_BM ConvertToBM()
{
FlexibleFloat_BM flexibleFloat_BM = new FlexibleFloat_BM();
foreach (AnimatedFloat animatedFloat in animations)
{
flexibleFloat_BM.animatedFloatList.Add(new AnimatedFloat(animatedFloat.startTime, animatedFloat.endTime,

View File

@@ -78683,6 +78683,30 @@
"attachedElementGuid" : {
"value" : "78202e41-44cf-4314-9ee9-8edee92c664a"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.SkyboxSubsetter_BM,Assembly-CSharp",
"skyBoxThemeBundleList" : [
"departure_to_multiverse"
],
"skyboxNameList" : [
"DTM_Particle_SquareFilled"
],
"blendTimeList" : [
20
],
"blendSpeedList" : [
1
],
"elementName" : "New Skybox Subsetter",
"tags" : [
],
"elementGuid" : {
"value" : "171a976f-7b7d-4ccf-a766-9587ef8c9da7"
},
"attachedElementGuid" : {
"value" : "044b34e9-31c8-40a8-8eb1-d5f744f8f295"
}
}
],
"attachedElementGuid" : {

View File

@@ -2987,6 +2987,12 @@
"startTime" : 46.8000031,
"endTime" : 48,
"animationCurveType" : 1
},{
"startValue" : 0,
"endValue" : 180,
"startTime" : 56.4,
"endTime" : 57.6,
"animationCurveType" : 3
}
]
},
@@ -65526,6 +65532,18 @@
"startTime" : 28.8,
"endTime" : 32,
"animationCurveType" : 0
},{
"startValue" : 0,
"endValue" : 1,
"startTime" : 28.8,
"endTime" : 32,
"animationCurveType" : 0
},{
"startValue" : 0,
"endValue" : 1,
"startTime" : 28.8,
"endTime" : 32,
"animationCurveType" : 0
}
]
},

File diff suppressed because one or more lines are too long