Signed-off-by: TRADER_FOER <lhf190@outlook.com>
This commit is contained in:
2026-06-12 16:26:58 +08:00
22 changed files with 21301 additions and 20080 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using Ichni.Editor;
using Lean.Pool;
using UnityEngine;
@@ -32,6 +33,17 @@ namespace Ichni.RhythmGame
substantialObject.FirstSetUpObject(isFirstGenerated);
substantialObject.SetEditorSubmodules();
if (isFirstGenerated) substantialObject.AfterInitialize();
// 在 NoteVisual 的 AfterInitialize + Recover 全部完成后,
// 立即强制父 Note 执行 ManualUpdate让效果状态机根据当前 songTime
// 将 noteMain 驱动至正确的可见状态,而非等待下一帧 NoteManager.ManualTick。
if (isFirstGenerated && substantialObject is NoteVisualBase noteVisual && noteVisual.note != null)
{
NoteBase note = noteVisual.note;
note.gameObject.SetActive(true);
note.ManualUpdate(EditorManager.instance.songInformation.songTime);
}
return substantialObject;
}

View File

@@ -206,6 +206,23 @@ namespace Ichni.RhythmGame
#endregion
#region [] Specific Manager Callbacks
/// <summary>
/// 当 NoteVisual 被动态挂载或替换后,重新缓存效果列表并刷新 NoteScheduler 注册。
/// 解决手动添加 NoteVisual 后,父 Note 的 generateEffects 等缓存仍为 null 导致特效无法驱动的问题。
/// </summary>
public void RefreshNoteVisualCaches()
{
generateEffects = GetEffectListSafe("Generate");
generalJudgeEffects = GetEffectListSafe("GeneralJudge");
perfectEffects = GetEffectListSafe("Perfect");
goodEffects = GetEffectListSafe("Good");
badEffects = GetEffectListSafe("Bad");
missEffects = GetEffectListSafe("Miss");
afterJudgeEffects = GetEffectListSafe("AfterJudge");
AddinNoteManager(false);
}
public void AddinNoteManager(bool isNewOne = true)
{
if (generateEffects != null)
@@ -243,15 +260,24 @@ namespace Ichni.RhythmGame
finishTime = Mathf.Max(finishTime, finishEffects[i].effectTime);
}
float activationTime = exactJudgeTime - beyondTime - 0.1f;
float endTime = (this is Hold hold ? hold.holdEndTime : exactJudgeTime) + finishTime + 0.1f;
if (exactJudgeTime - beyondTime - 0.5f > -EditorManager.instance.songInformation.delay)
{
gameObject.SetActive(false);
var noteScheduler = CoreServices.UpdateScheduler.NoteScheduler;
if (isNewOne)
noteScheduler.RegisterNote(this, exactJudgeTime - beyondTime - 0.1f, (this is Hold hold ? hold.holdEndTime : exactJudgeTime) + finishTime + 0.1f);
noteScheduler.RegisterNote(this, activationTime, endTime);
else
noteScheduler.ChangeNoteInfo(this, exactJudgeTime - beyondTime - 0.1f, (this is Hold hold ? hold.holdEndTime : exactJudgeTime) + finishTime + 0.1f);
noteScheduler.ChangeNoteInfo(this, activationTime, endTime);
}
else if (!isNewOne)
{
// 条件不满足(早期 Note时仍须更新 NoteManager 的时间窗口,
// 否则 beyondTime 变化后窗口不一致ManualTick 会错误地隐藏 Note。
var noteScheduler = CoreServices.UpdateScheduler.NoteScheduler;
noteScheduler.ChangeNoteInfo(this, activationTime, endTime);
}
}

View File

@@ -44,6 +44,20 @@ namespace Ichni.RhythmGame
base.SetDefaultSubmodules();
effectSubmodule = new EffectSubmodule(this, EffectSubmodule.EffectSubmodulePreset.Note);
}
/// <summary>
/// NoteVisual 初始化完毕后,通知父 Note 重新缓存效果列表。
/// 解决手动生成 NoteVisual 时,父 Note 的 generateEffects 等缓存为 null 导致特效不被驱动的问题。
/// </summary>
public override void AfterInitialize()
{
base.AfterInitialize();
if (note != null)
{
note.RefreshNoteVisualCaches();
}
}
#endregion
#region [] Visual Behaviors
@@ -56,6 +70,18 @@ namespace Ichni.RhythmGame
{
}
public override void OnDelete()
{
base.OnDelete();
// 清除父 Note 对已删除 NoteVisual 的引用,防止悬空引用和 NullReferenceException
if (note != null)
{
note.noteVisual = null;
note.RefreshNoteVisualCaches();
}
}
#endregion
}
}

View File

@@ -45,6 +45,8 @@ namespace Ichni.RhythmGame
this.trackDisplay = UnityEngine.Object.Instantiate(EditorManager.instance.basePrefabs.trackDisplay, track.transform).GetComponent<SplineRenderer>();
this.trackDisplay.spline = path;
this.trackDisplay.size = 0.1f;
// 与 TrackRendererSubmodule 保持一致LateUpdate 模式消除一帧延迟
this.trackDisplay.updateMethod = SplineUser.UpdateMethod.LateUpdate;
this.SetDisplay(isShowingDisplay);

View File

@@ -27,7 +27,9 @@ namespace Ichni.RhythmGame
this.splineRenderer.doubleSided = true;
this.splineRenderer.clipFrom = 0;
this.splineRenderer.clipTo = 1;
this.splineRenderer.updateMethod = SplineUser.UpdateMethod.Update;
// LateUpdate 模式保证 MeshGenerator 在 SplineComputer.Update() 重采样之后才重建网格,
// 消除 Update 模式下因 MonoBehaviour 执行顺序不确定导致的一帧延迟。
this.splineRenderer.updateMethod = SplineUser.UpdateMethod.LateUpdate;
this.meshRenderer.material = renderMaterial;
this.splineRenderer.color = Color.white;
this.uvRotation = 0f;

View File

@@ -24,7 +24,9 @@ namespace Ichni.RhythmGame
this.pathGenerator.doubleSided = true;
this.pathGenerator.clipFrom = 0;
this.pathGenerator.clipTo = 1;
this.pathGenerator.updateMethod = SplineUser.UpdateMethod.Update;
// LateUpdate 模式保证 MeshGenerator 在 SplineComputer.Update() 重采样之后才重建网格,
// 消除 Update 模式下因 MonoBehaviour 执行顺序不确定导致的一帧延迟。
this.pathGenerator.updateMethod = SplineUser.UpdateMethod.LateUpdate;
this.meshRenderer.material = renderMaterial;
this.pathGenerator.color = Color.white;
this.uvRotation = 90f;

View File

@@ -24,7 +24,9 @@ namespace Ichni.RhythmGame
this.surface.doubleSided = true;
this.surface.clipFrom = 0;
this.surface.clipTo = 1;
this.surface.updateMethod = SplineUser.UpdateMethod.Update;
// LateUpdate 模式保证 MeshGenerator 在 SplineComputer.Update() 重采样之后才重建网格,
// 消除 Update 模式下因 MonoBehaviour 执行顺序不确定导致的一帧延迟。
this.surface.updateMethod = SplineUser.UpdateMethod.LateUpdate;
this.meshRenderer.material = renderMaterial;
this.surface.color = Color.white;
this.surface.uvRotation = 90;

View File

@@ -27,7 +27,9 @@ namespace Ichni.RhythmGame
this.tubeGenerator.doubleSided = true;
this.tubeGenerator.clipFrom = 0;
this.tubeGenerator.clipTo = 1;
this.tubeGenerator.updateMethod = SplineUser.UpdateMethod.Update;
// LateUpdate 模式保证 MeshGenerator 在 SplineComputer.Update() 重采样之后才重建网格,
// 消除 Update 模式下因 MonoBehaviour 执行顺序不确定导致的一帧延迟。
this.tubeGenerator.updateMethod = SplineUser.UpdateMethod.LateUpdate;
this.meshRenderer.material = renderMaterial;
this.tubeGenerator.color = Color.white;
this.tubeGenerator.uvRotation = 90;

File diff suppressed because it is too large Load Diff

View File

@@ -223994,267 +223994,6 @@
"attachedElementGuid" : {
"value" : "8c04fe0a-ad31-4b2e-a23d-593fca422e20"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.Displacement_BM,Assembly-CSharp",
"positionX" : {
"animatedFloatList" : [
{
"startValue" : 0,
"endValue" : 0,
"startTime" : 0,
"endTime" : 1,
"animationCurveType" : 0
},{
"startValue" : 0,
"endValue" : 0,
"startTime" : 5.7,
"endTime" : 6,
"animationCurveType" : 0
}
]
},
"positionY" : {
"animatedFloatList" : [
{
"startValue" : 0,
"endValue" : 0,
"startTime" : 0,
"endTime" : 1,
"animationCurveType" : 0
},{
"startValue" : 0,
"endValue" : 0,
"startTime" : 5.7,
"endTime" : 6,
"animationCurveType" : 0
},{
"startValue" : 0,
"endValue" : 0,
"startTime" : 6,
"endTime" : 6.3,
"animationCurveType" : 0
},{
"startValue" : 0,
"endValue" : 12,
"startTime" : 6.3,
"endTime" : 7.8,
"animationCurveType" : 8
}
]
},
"positionZ" : {
"animatedFloatList" : [
{
"startValue" : 0,
"endValue" : 0,
"startTime" : 0,
"endTime" : 1,
"animationCurveType" : 0
}
]
},
"elementName" : "New Displacement",
"tags" : [
],
"elementGuid" : {
"value" : "6d931ad9-a766-40dd-914c-d603ad7dda16"
},
"attachedElementGuid" : {
"value" : "6dc29160-a595-4538-85f6-e1f8b37d20a4"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
"isOverridingDuration" : false,
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "6d931ad9-a766-40dd-914c-d603ad7dda16"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.Tap_BM,Assembly-CSharp",
"exactJudgeTime" : 0,
"elementName" : "New Tap",
"tags" : [
],
"elementGuid" : {
"value" : "ce418d4e-bdcf-4967-9a48-4ddf4f0081c2"
},
"attachedElementGuid" : {
"value" : "8adad930-7e5b-4532-82f0-f4f901c47cb8"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
"isOverridingDuration" : false,
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "ce418d4e-bdcf-4967-9a48-4ddf4f0081c2"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.NoteAudioSubmodule_BM,Assembly-CSharp",
"generalJudgeAudioList" : [
"DefaultTap"
],
"perfectAudioList" : [
],
"goodAudioList" : [
],
"badAudioList" : [
],
"missAudioList" : [
],
"holdStartAudioList" : [
],
"attachedElementGuid" : {
"value" : "ce418d4e-bdcf-4967-9a48-4ddf4f0081c2"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.NoteJudgeSubmodule_BM,Assembly-CSharp",
"judgeUnitList" : [
{
"__type" : "Ichni.RhythmGame.Beatmap.TouchAreaJudgeUnit_BM,Assembly-CSharp",
"areaRadius" : 500
}
],
"attachedElementGuid" : {
"value" : "ce418d4e-bdcf-4967-9a48-4ddf4f0081c2"
}
},{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteVisual_BM,Assembly-CSharp",
"isHighlighted" : false,
"themeBundleName" : "departure_to_multiverse",
"objectName" : "DTM_NoteVisualTap",
"elementName" : "New Note Visual",
"tags" : [
],
"elementGuid" : {
"value" : "0a820191-8731-4817-abf0-f0029c982a2c"
},
"attachedElementGuid" : {
"value" : "ce418d4e-bdcf-4967-9a48-4ddf4f0081c2"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 0,
"y" : 0,
"z" : 0
},
"originalEulerAngles" : {
"x" : 0,
"y" : 0,
"z" : 0
},
"originalScale" : {
"x" : 1,
"y" : 1,
"z" : 1
},
"attachedElementGuid" : {
"value" : "0a820191-8731-4817-abf0-f0029c982a2c"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
"isOverridingDuration" : false,
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "0a820191-8731-4817-abf0-f0029c982a2c"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp",
"originalBaseColor" : {
"r" : 1,
"g" : 1,
"b" : 1,
"a" : 1
},
"emissionEnabled" : false,
"originalEmissionColor" : {
"r" : 0,
"g" : 0,
"b" : 0,
"a" : 1
},
"originalEmissionIntensity" : 0,
"attachedElementGuid" : {
"value" : "0a820191-8731-4817-abf0-f0029c982a2c"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.EffectSubmodule_BM,Assembly-CSharp",
"effectCollection" : {"Generate":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteGenerateExpand_BM,Assembly-CSharp",
"generateTime" : 1,
"effectTime" : 0.3
}
],"GeneralJudge":[
],"StartHold":[
],"Holding":[
],"Perfect":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNotePerfectBurst_BM,Assembly-CSharp",
"effectTime" : 0
}
],"Good":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteGoodBurst_BM,Assembly-CSharp",
"effectTime" : 0
}
],"Bad":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteBadBurst_BM,Assembly-CSharp",
"effectTime" : 0
},{
"__type" : "Ichni.RhythmGame.Beatmap.BloomEffect_BM,Assembly-CSharp",
"peak" : 2,
"intensityCurve" : {
"keys" : [
{
"time" : 0,
"value" : 0,
"inTangent" : 0,
"outTangent" : 0
},{
"time" : 0.7524999,
"value" : 0.62,
"inTangent" : 0.9516109,
"outTangent" : -1.787543
},{
"time" : 1,
"value" : 0,
"inTangent" : 0,
"outTangent" : 0
}
],
"preWrapMode" : 8,
"postWrapMode" : 8
},
"effectTime" : 1
}
],"Miss":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteMissTransparent_BM,Assembly-CSharp",
"effectTime" : 0.2
}
],"AfterJudge":[
]
},
"attachedElementGuid" : {
"value" : "0a820191-8731-4817-abf0-f0029c982a2c"
}
}
],
"attachedElementGuid" : {

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 19a0077163112d34a9e3d465c59deaeb
guid: fbd52e1410bc99944b7524268744bf77
DefaultImporter:
externalObjects: {}
userData:

View File

@@ -486,7 +486,7 @@
},{
"__type" : "Ichni.RhythmGame.Beatmap.CrossTrackPoint_BM,Assembly-CSharp",
"trackSwitch" : {
"value" : 5,
"value" : 2,
"animations" : [
{
"value" : 0,
@@ -510,7 +510,7 @@
]
},
"trackPercent" : {
"value" : 1,
"value" : 0.0704722852,
"animations" : [
{
"startValue" : 0,
@@ -551,8 +551,8 @@
}
],
"isSwitchingReturnType" : false,
"lastReturnType" : 3,
"returnType" : 3
"lastReturnType" : 1,
"returnType" : 1
},
"MotionAngles" : false,
"elementName" : "New Cross Track Point",
@@ -199799,6 +199799,477 @@
"attachedElementGuid" : {
"value" : "7ee5427a-b0a4-4323-a054-e593fa4388a9"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.Tap_BM,Assembly-CSharp",
"exactJudgeTime" : 4,
"elementName" : "New Tap",
"tags" : [
],
"elementGuid" : {
"value" : "06a02173-cb5a-4806-9659-02ab381a935e"
},
"attachedElementGuid" : {
"value" : "a4ca6cb1-3088-4a2b-9ed1-72d09b7c958c"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
"isOverridingDuration" : false,
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "06a02173-cb5a-4806-9659-02ab381a935e"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.NoteJudgeSubmodule_BM,Assembly-CSharp",
"judgeUnitList" : [
{
"__type" : "Ichni.RhythmGame.Beatmap.TouchAreaJudgeUnit_BM,Assembly-CSharp",
"areaRadius" : 600
}
],
"attachedElementGuid" : {
"value" : "06a02173-cb5a-4806-9659-02ab381a935e"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.NoteAudioSubmodule_BM,Assembly-CSharp",
"generalJudgeAudioList" : [
"DefaultTap"
],
"perfectAudioList" : [
],
"goodAudioList" : [
],
"badAudioList" : [
],
"missAudioList" : [
],
"holdStartAudioList" : [
],
"attachedElementGuid" : {
"value" : "06a02173-cb5a-4806-9659-02ab381a935e"
}
},{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteVisual_BM,Assembly-CSharp",
"isHighlighted" : false,
"themeBundleName" : "departure_to_multiverse",
"objectName" : "DTM_NoteVisualTap",
"elementName" : "New Note Visual",
"tags" : [
],
"elementGuid" : {
"value" : "71674887-7b2b-4b16-ab1d-dd2e36af2eb2"
},
"attachedElementGuid" : {
"value" : "06a02173-cb5a-4806-9659-02ab381a935e"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 0,
"y" : 0,
"z" : 0
},
"originalEulerAngles" : {
"x" : 0,
"y" : 0,
"z" : 0
},
"originalScale" : {
"x" : 1,
"y" : 1,
"z" : 1
},
"attachedElementGuid" : {
"value" : "71674887-7b2b-4b16-ab1d-dd2e36af2eb2"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
"isOverridingDuration" : false,
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "71674887-7b2b-4b16-ab1d-dd2e36af2eb2"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp",
"originalBaseColor" : {
"r" : 1,
"g" : 1,
"b" : 1,
"a" : 1
},
"emissionEnabled" : false,
"originalEmissionColor" : {
"r" : 0,
"g" : 0,
"b" : 0,
"a" : 1
},
"originalEmissionIntensity" : 0,
"attachedElementGuid" : {
"value" : "71674887-7b2b-4b16-ab1d-dd2e36af2eb2"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.EffectSubmodule_BM,Assembly-CSharp",
"effectCollection" : {"Generate":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteGenerateExpand_BM,Assembly-CSharp",
"generateTime" : 1,
"effectTime" : 0.2
}
],"GeneralJudge":[
],"StartHold":[
],"Holding":[
],"Perfect":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNotePerfectBurst_BM,Assembly-CSharp",
"effectTime" : 0
}
],"Good":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteGoodBurst_BM,Assembly-CSharp",
"effectTime" : 0
}
],"Bad":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteBadBurst_BM,Assembly-CSharp",
"effectTime" : 0
}
],"Miss":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteMissTransparent_BM,Assembly-CSharp",
"effectTime" : 0.2
}
],"AfterJudge":[
]
},
"attachedElementGuid" : {
"value" : "71674887-7b2b-4b16-ab1d-dd2e36af2eb2"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.Flick_BM,Assembly-CSharp",
"availableFlickDirections" : [
],
"exactJudgeTime" : 4.5,
"elementName" : "New Flick",
"tags" : [
],
"elementGuid" : {
"value" : "f394b21d-b7c4-44c6-96ea-5fc5c10d9e25"
},
"attachedElementGuid" : {
"value" : "a4ca6cb1-3088-4a2b-9ed1-72d09b7c958c"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
"isOverridingDuration" : false,
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "f394b21d-b7c4-44c6-96ea-5fc5c10d9e25"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.NoteJudgeSubmodule_BM,Assembly-CSharp",
"judgeUnitList" : [
{
"__type" : "Ichni.RhythmGame.Beatmap.TouchAreaJudgeUnit_BM,Assembly-CSharp",
"areaRadius" : 600
}
],
"attachedElementGuid" : {
"value" : "f394b21d-b7c4-44c6-96ea-5fc5c10d9e25"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.NoteAudioSubmodule_BM,Assembly-CSharp",
"generalJudgeAudioList" : [
"DefaultFlick"
],
"perfectAudioList" : [
],
"goodAudioList" : [
],
"badAudioList" : [
],
"missAudioList" : [
],
"holdStartAudioList" : [
],
"attachedElementGuid" : {
"value" : "f394b21d-b7c4-44c6-96ea-5fc5c10d9e25"
}
},{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteVisual_BM,Assembly-CSharp",
"isHighlighted" : false,
"themeBundleName" : "departure_to_multiverse",
"objectName" : "DTM_NoteVisualFlick",
"elementName" : "New Note Visual",
"tags" : [
],
"elementGuid" : {
"value" : "424dfc35-dee9-4d76-9f3d-854956cf3627"
},
"attachedElementGuid" : {
"value" : "f394b21d-b7c4-44c6-96ea-5fc5c10d9e25"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 0,
"y" : 0,
"z" : 0
},
"originalEulerAngles" : {
"x" : 0,
"y" : 0,
"z" : 0
},
"originalScale" : {
"x" : 1,
"y" : 1,
"z" : 1
},
"attachedElementGuid" : {
"value" : "424dfc35-dee9-4d76-9f3d-854956cf3627"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
"isOverridingDuration" : false,
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "424dfc35-dee9-4d76-9f3d-854956cf3627"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp",
"originalBaseColor" : {
"r" : 1,
"g" : 1,
"b" : 1,
"a" : 1
},
"emissionEnabled" : false,
"originalEmissionColor" : {
"r" : 0,
"g" : 0,
"b" : 0,
"a" : 1
},
"originalEmissionIntensity" : 0,
"attachedElementGuid" : {
"value" : "424dfc35-dee9-4d76-9f3d-854956cf3627"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.EffectSubmodule_BM,Assembly-CSharp",
"effectCollection" : {"Generate":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteGenerateExpand_BM,Assembly-CSharp",
"generateTime" : 0.5,
"effectTime" : 0.2
}
],"GeneralJudge":[
],"StartHold":[
],"Holding":[
],"Perfect":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNotePerfectBurst_BM,Assembly-CSharp",
"effectTime" : 0
}
],"Good":[
],"Bad":[
],"Miss":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteMissTransparent_BM,Assembly-CSharp",
"effectTime" : 0.2
}
],"AfterJudge":[
]
},
"attachedElementGuid" : {
"value" : "424dfc35-dee9-4d76-9f3d-854956cf3627"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.Tap_BM,Assembly-CSharp",
"exactJudgeTime" : 4.2,
"elementName" : "New Tap",
"tags" : [
],
"elementGuid" : {
"value" : "6fc9f259-6f80-482d-86c2-1f0705a47e8e"
},
"attachedElementGuid" : {
"value" : "a4ca6cb1-3088-4a2b-9ed1-72d09b7c958c"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
"isOverridingDuration" : false,
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "6fc9f259-6f80-482d-86c2-1f0705a47e8e"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.NoteJudgeSubmodule_BM,Assembly-CSharp",
"judgeUnitList" : [
{
"__type" : "Ichni.RhythmGame.Beatmap.TouchAreaJudgeUnit_BM,Assembly-CSharp",
"areaRadius" : 600
}
],
"attachedElementGuid" : {
"value" : "6fc9f259-6f80-482d-86c2-1f0705a47e8e"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.NoteAudioSubmodule_BM,Assembly-CSharp",
"generalJudgeAudioList" : [
"DefaultTap"
],
"perfectAudioList" : [
],
"goodAudioList" : [
],
"badAudioList" : [
],
"missAudioList" : [
],
"holdStartAudioList" : [
],
"attachedElementGuid" : {
"value" : "6fc9f259-6f80-482d-86c2-1f0705a47e8e"
}
},{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteVisual_BM,Assembly-CSharp",
"isHighlighted" : false,
"themeBundleName" : "departure_to_multiverse",
"objectName" : "DTM_NoteVisualTap",
"elementName" : "New Note Visual",
"tags" : [
],
"elementGuid" : {
"value" : "2f79b32f-e5e1-4ca3-b1aa-d70f3a41caee"
},
"attachedElementGuid" : {
"value" : "6fc9f259-6f80-482d-86c2-1f0705a47e8e"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 0,
"y" : 0,
"z" : 0
},
"originalEulerAngles" : {
"x" : 0,
"y" : 0,
"z" : 0
},
"originalScale" : {
"x" : 1,
"y" : 1,
"z" : 1
},
"attachedElementGuid" : {
"value" : "2f79b32f-e5e1-4ca3-b1aa-d70f3a41caee"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
"isOverridingDuration" : false,
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "2f79b32f-e5e1-4ca3-b1aa-d70f3a41caee"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp",
"originalBaseColor" : {
"r" : 1,
"g" : 1,
"b" : 1,
"a" : 1
},
"emissionEnabled" : false,
"originalEmissionColor" : {
"r" : 0,
"g" : 0,
"b" : 0,
"a" : 1
},
"originalEmissionIntensity" : 0,
"attachedElementGuid" : {
"value" : "2f79b32f-e5e1-4ca3-b1aa-d70f3a41caee"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.EffectSubmodule_BM,Assembly-CSharp",
"effectCollection" : {"Generate":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteGenerateExpand_BM,Assembly-CSharp",
"generateTime" : 1,
"effectTime" : 0.2
}
],"GeneralJudge":[
],"StartHold":[
],"Holding":[
],"Perfect":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNotePerfectBurst_BM,Assembly-CSharp",
"effectTime" : 0
}
],"Good":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteGoodBurst_BM,Assembly-CSharp",
"effectTime" : 0
}
],"Bad":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteBadBurst_BM,Assembly-CSharp",
"effectTime" : 0
}
],"Miss":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteMissTransparent_BM,Assembly-CSharp",
"effectTime" : 0.2
}
],"AfterJudge":[
]
},
"attachedElementGuid" : {
"value" : "2f79b32f-e5e1-4ca3-b1aa-d70f3a41caee"
}
}
],
"attachedElementGuid" : {

View File

@@ -6,7 +6,7 @@
"creatorName" : "U_Mora",
"editorVersion" : "0.1.0",
"createTime" : "2026\/1\/6 22:14:38",
"lastSaveTime" : "2026\/5\/29 20:18:32",
"lastSaveTime" : "6\/12\/2026 2:43:35 AM",
"selectedThemeBundleList" : [
"basic","departure_to_multiverse"
],

View File

@@ -1,6 +1,6 @@
ManifestFileVersion: 0
UnityVersion: 6000.3.7f1
CRC: 2709437798
CRC: 3622409616
HashAppended: 0
AssetBundleManifest:
AssetBundleInfos:

View File

@@ -1,16 +1,16 @@
ManifestFileVersion: 0
UnityVersion: 6000.3.7f1
CRC: 676293838
CRC: 582696466
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: f0364044c623ed1d5aaeb559a7c009e6
Hash: bf570dc2fdd32aa5271fd3ce50d49ba4
TypeTreeHash:
serializedVersion: 2
Hash: 0c8f2af2122906b6fb7d5b5413f3c41f
IncrementalBuildHash:
serializedVersion: 2
Hash: fc0e6b6f033e9bd46f9e46bed69eabba
Hash: 3c1b6e5fafd24712daa0e9e5731f3684
HashAppended: 0
ClassTypes:
- Class: 1

View File

@@ -17,7 +17,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!4 &448133524246398677
Transform:
m_ObjectHideFlags: 0
@@ -10004,7 +10004,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!4 &4577072593820393137
Transform:
m_ObjectHideFlags: 0
@@ -19762,7 +19762,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!4 &4577072594143320191
Transform:
m_ObjectHideFlags: 0
@@ -24668,7 +24668,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!4 &4577072594657777397
Transform:
m_ObjectHideFlags: 0

View File

@@ -10,14 +10,9 @@
"overrideReferences": false,
"precompiledReferences": [
"Newtonsoft.Json.dll",
"Microsoft.CSharp.dll",
"Microsoft.CodeAnalysis.dll",
"Microsoft.CodeAnalysis.CSharp.dll",
"System.Collections.Immutable.dll",
"System.Reflection.Metadata.dll",
"System.Runtime.CompilerServices.Unsafe.dll"
"Microsoft.CSharp.dll"
],
"autoReferenced": true,
"autoReferenced": false,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false

View File

@@ -14,7 +14,7 @@
"bezi3d"
],
"unity": "2018.3",
"version": "0.90.0",
"version": "0.92.1",
"type": "library",
"hideInEditor": false,
"dependencies": {