Signed-off-by: TRADER_FOER <lhf190@outlook.com>
This commit is contained in:
2026-07-16 10:56:42 +08:00
27 changed files with 43268 additions and 1293 deletions

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 28802a2f6f0ff2942bd2a248b9b68960
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Audio/hold end.wav Normal file

Binary file not shown.

View File

@@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: eeef95cf1b0383642a5b27217fa0e681
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Audio/hold start.wav Normal file

Binary file not shown.

View File

@@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 6fe5a0c30cc449445b852ff0463a4205
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -163,8 +163,7 @@ MonoBehaviour:
type: 3} type: 3}
QuickMoveObj: {fileID: 2260653761532832587, guid: dba2d8dbaab1439469ac4924d33e3397, QuickMoveObj: {fileID: 2260653761532832587, guid: dba2d8dbaab1439469ac4924d33e3397,
type: 3} type: 3}
NodeEditor: {fileID: 6091547238259645747, guid: 55d0ca39526c5e94ebac2e6da0c8d80c, NodeEditor: {fileID: 0}
type: 3}
defaultBackground: {fileID: 21300000, guid: fc6c02e75b66345c29e8a25e2e2bda9c, type: 3} defaultBackground: {fileID: 21300000, guid: fc6c02e75b66345c29e8a25e2e2bda9c, type: 3}
defaultSkyboxMaterial: {fileID: 2100000, guid: 06a20df987b317044a05ea694c976948, defaultSkyboxMaterial: {fileID: 2100000, guid: 06a20df987b317044a05ea694c976948,
type: 2} type: 2}

File diff suppressed because one or more lines are too long

View File

@@ -7,21 +7,15 @@ namespace Ichni.Editor
{ {
public partial class ResolutionHints : MonoBehaviour public partial class ResolutionHints : MonoBehaviour
{ {
public Image phoneFrame;
public Image iPadFrame;
public Image safeAreaFrame; public Image safeAreaFrame;
public GameObject judgeLineHints;
} }
public partial class ResolutionHints public partial class ResolutionHints
{ {
public void SetPhoneFrame() public void SetJudgeLineHints()
{ {
phoneFrame.gameObject.SetActive(!phoneFrame.gameObject.activeSelf); judgeLineHints.SetActive(!judgeLineHints.gameObject.activeSelf);
}
public void SetIPadFrame()
{
iPadFrame.gameObject.SetActive(!iPadFrame.gameObject.activeSelf);
} }
public void SetSafeAreaFrame() public void SetSafeAreaFrame()

View File

@@ -318,15 +318,16 @@ namespace Ichni.Editor
{ {
if (hold.noteAudioSubmodule.generalJudgeAudioList.Contains("DefaultTap")) if (hold.noteAudioSubmodule.generalJudgeAudioList.Contains("DefaultTap"))
{ {
hold.submoduleList.Remove(hold.noteAudioSubmodule); hold.submoduleList.Remove(hold.noteAudioSubmodule);
hold.noteAudioSubmodule = null; hold.noteAudioSubmodule = null;
hold.noteAudioSubmodule = new NoteAudioSubmodule(hold, hold.noteAudioSubmodule = new NoteAudioSubmodule(hold,
new List<string>() { "DefaultEndHold" }, new List<string>(),
new List<string>(), new List<string>(), new List<string>(), new List<string>(),
new List<string>(), new List<string>(), new List<string>(), new List<string>(),
new List<string>() { "DefaultStartHold" }); new List<string>() { "DefaultStartHold" },
} new List<string>() { "DefaultEndHold" });
} }
}
foreach (Flick flick in allFlicks) foreach (Flick flick in allFlicks)
{ {
@@ -345,4 +346,4 @@ namespace Ichni.Editor
} }
} }
} }

View File

@@ -11,6 +11,7 @@ namespace Ichni.RhythmGame.Beatmap
public List<string> badAudioList; public List<string> badAudioList;
public List<string> missAudioList; public List<string> missAudioList;
public List<string> holdStartAudioList; public List<string> holdStartAudioList;
public List<string> holdEndAudioList;
public NoteAudioSubmodule_BM() public NoteAudioSubmodule_BM()
{ {
@@ -25,20 +26,23 @@ namespace Ichni.RhythmGame.Beatmap
badAudioList = noteAudioSubmodule.badAudioList; badAudioList = noteAudioSubmodule.badAudioList;
missAudioList = noteAudioSubmodule.missAudioList; missAudioList = noteAudioSubmodule.missAudioList;
holdStartAudioList = noteAudioSubmodule.holdStartAudioList; holdStartAudioList = noteAudioSubmodule.holdStartAudioList;
holdEndAudioList = noteAudioSubmodule.holdEndAudioList;
} }
public override void ExecuteBM() public override void ExecuteBM()
{ {
attachedElement = GameElement_BM.GetElement(attachedElementGuid); attachedElement = GameElement_BM.GetElement(attachedElementGuid);
(attachedElement as NoteBase).noteAudioSubmodule = new NoteAudioSubmodule((attachedElement as NoteBase), (attachedElement as NoteBase).noteAudioSubmodule = new NoteAudioSubmodule((attachedElement as NoteBase),
generalJudgeAudioList, perfectAudioList, goodAudioList, badAudioList, missAudioList, holdStartAudioList); generalJudgeAudioList, perfectAudioList, goodAudioList, badAudioList, missAudioList,
holdStartAudioList, holdEndAudioList);
} }
#region [Editor ] Editor Interfaces #region [Editor ] Editor Interfaces
public override void DuplicateBM(GameElement attached) public override void DuplicateBM(GameElement attached)
{ {
(attached as NoteBase).noteAudioSubmodule = new NoteAudioSubmodule((attached as NoteBase), (attached as NoteBase).noteAudioSubmodule = new NoteAudioSubmodule((attached as NoteBase),
generalJudgeAudioList, perfectAudioList, goodAudioList, badAudioList, missAudioList, holdStartAudioList); generalJudgeAudioList, perfectAudioList, goodAudioList, badAudioList, missAudioList,
holdStartAudioList, holdEndAudioList);
} }
#endregion #endregion
} }

View File

@@ -42,6 +42,9 @@ namespace Ichni.RhythmGame
builder.Button("Hold Start", () => builder.Button("Hold Start", () =>
inspection.GenerateCompositeParameterWindow(this, "Hold Start Sound List", inspection.GenerateCompositeParameterWindow(this, "Hold Start Sound List",
nameof(holdStartAudioList)).SetAsStringList()); nameof(holdStartAudioList)).SetAsStringList());
builder.Button("Hold End", () =>
inspection.GenerateCompositeParameterWindow(this, "Hold End Sound List",
nameof(holdEndAudioList)).SetAsStringList());
} }
builder.Build(); builder.Build();

View File

@@ -26,10 +26,11 @@ namespace Ichni.RhythmGame
bool isFirstGenerated, GameElement parentElement) bool isFirstGenerated, GameElement parentElement)
{ {
base.Initialize(name, elementGuid, tags, isFirstGenerated, parentElement); base.Initialize(name, elementGuid, tags, isFirstGenerated, parentElement);
if (this.parentElement.submoduleList.Count == 0 || if ((this is Displacement || this is Swirl || this is Scale || this is LookAt) && (this.parentElement.submoduleList.Count == 0 ||
!this.parentElement.submoduleList.Exists(e => e is TransformSubmodule)) !this.parentElement.submoduleList.Exists(e => e is TransformSubmodule)))
{ {
LogWindow.Log("AnimationBase must be attached to a GameElement with TransformSubmodule", Color.red); LogWindow.Log("Transform animation must be attached to a GameElement with TransformSubmodule", Color.red);
LogWindow.Log(this.elementName + " " + this.elementGuid.ToString(), Color.red);
} }
// 向 ElementUpdateScheduler 注册 Phase.Animation // 向 ElementUpdateScheduler 注册 Phase.Animation

View File

@@ -19,6 +19,8 @@ MonoBehaviour:
- {fileID: 8300000, guid: 659cb798f955c8f4bb530bf89f54e2cc, type: 3} - {fileID: 8300000, guid: 659cb798f955c8f4bb530bf89f54e2cc, type: 3}
- {fileID: 8300000, guid: 617b904af4f9aa4479b11e83947d02fd, type: 3} - {fileID: 8300000, guid: 617b904af4f9aa4479b11e83947d02fd, type: 3}
- {fileID: 8300000, guid: 2f7fd91efed73944e8bff00715bd1202, type: 3} - {fileID: 8300000, guid: 2f7fd91efed73944e8bff00715bd1202, type: 3}
- {fileID: 8300000, guid: 6fe5a0c30cc449445b852ff0463a4205, type: 3}
- {fileID: 8300000, guid: eeef95cf1b0383642a5b27217fa0e681, type: 3}
SerializedBytesString: SerializedBytesString:
Prefab: {fileID: 0} Prefab: {fileID: 0}
PrefabModificationsReferencedUnityObjects: [] PrefabModificationsReferencedUnityObjects: []
@@ -82,7 +84,7 @@ MonoBehaviour:
Data: DefaultStartHold Data: DefaultStartHold
- Name: $v - Name: $v
Entry: 10 Entry: 10
Data: 0 Data: 3
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:
@@ -94,7 +96,7 @@ MonoBehaviour:
Data: DefaultEndHold Data: DefaultEndHold
- Name: $v - Name: $v
Entry: 10 Entry: 10
Data: 0 Data: 4
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:

View File

@@ -14,6 +14,7 @@ namespace Ichni.RhythmGame
public List<string> badAudioList; public List<string> badAudioList;
public List<string> missAudioList; public List<string> missAudioList;
public List<string> holdStartAudioList; public List<string> holdStartAudioList;
public List<string> holdEndAudioList;
private NoteBase note => attachedGameElement as NoteBase; private NoteBase note => attachedGameElement as NoteBase;
#endregion #endregion
@@ -27,6 +28,7 @@ namespace Ichni.RhythmGame
badAudioList = new List<string>(); badAudioList = new List<string>();
missAudioList = new List<string>(); missAudioList = new List<string>();
holdStartAudioList = new List<string>(); holdStartAudioList = new List<string>();
holdEndAudioList = new List<string>();
generalJudgeAudioList.Add(defaultAudio); generalJudgeAudioList.Add(defaultAudio);
@@ -38,14 +40,16 @@ namespace Ichni.RhythmGame
public NoteAudioSubmodule(NoteBase attachedGameElement, List<string> generalJudgeAudioList, public NoteAudioSubmodule(NoteBase attachedGameElement, List<string> generalJudgeAudioList,
List<string> perfectAudioList, List<string> goodAudioList, List<string> badAudioList, List<string> perfectAudioList, List<string> goodAudioList, List<string> badAudioList,
List<string> missAudioList, List<string> holdStartAudioList) : base(attachedGameElement) List<string> missAudioList, List<string> holdStartAudioList,
List<string> holdEndAudioList = null) : base(attachedGameElement)
{ {
this.generalJudgeAudioList = generalJudgeAudioList; this.generalJudgeAudioList = generalJudgeAudioList ?? new List<string>();
this.perfectAudioList = perfectAudioList; this.perfectAudioList = perfectAudioList ?? new List<string>();
this.goodAudioList = goodAudioList; this.goodAudioList = goodAudioList ?? new List<string>();
this.badAudioList = badAudioList; this.badAudioList = badAudioList ?? new List<string>();
this.missAudioList = missAudioList; this.missAudioList = missAudioList ?? new List<string>();
this.holdStartAudioList = holdStartAudioList ?? new List<string>(); this.holdStartAudioList = holdStartAudioList ?? new List<string>();
this.holdEndAudioList = holdEndAudioList ?? new List<string>();
if (!HaveSameSubmodule) if (!HaveSameSubmodule)
{ {
@@ -59,6 +63,17 @@ namespace Ichni.RhythmGame
{ {
PlayAudio(holdStartAudioList); PlayAudio(holdStartAudioList);
} }
public void PlayHoldEndAudio()
{
if (holdEndAudioList != null && holdEndAudioList.Count > 0)
{
PlayAudio(holdEndAudioList);
return;
}
PlayAudio(generalJudgeAudioList);
}
public void PlayNoteJudgeAudios(NoteBase.NoteJudgeType judgeType) public void PlayNoteJudgeAudios(NoteBase.NoteJudgeType judgeType)
{ {
@@ -93,4 +108,4 @@ namespace Ichni.RhythmGame
} }
#endregion #endregion
} }
} }

View File

@@ -82,10 +82,11 @@ namespace Ichni.RhythmGame
public override void SetDefaultSubmodules() public override void SetDefaultSubmodules()
{ {
base.SetDefaultSubmodules(); base.SetDefaultSubmodules();
noteAudioSubmodule ??= new NoteAudioSubmodule(this, new List<string>() { "DefaultEndHold" }, noteAudioSubmodule ??= new NoteAudioSubmodule(this, new List<string>(),
new List<string>(), new List<string>(), new List<string>(), new List<string>(),
new List<string>(), new List<string>(), new List<string>(), new List<string>(),
new List<string>() { "DefaultStartHold" }); new List<string>() { "DefaultStartHold" },
new List<string>() { "DefaultEndHold" });
} }
#endregion #endregion
@@ -161,6 +162,7 @@ namespace Ichni.RhythmGame
{ {
isHolding = false; isHolding = false;
isFinalJudged = true; isFinalJudged = true;
noteAudioSubmodule?.PlayHoldEndAudio();
} }
} }
@@ -172,7 +174,7 @@ namespace Ichni.RhythmGame
// 检查是否可以开始hold // 检查是否可以开始hold
if (songTime <= holdEndTime) if (songTime <= holdEndTime)
{ {
noteAudioSubmodule?.PlayNoteJudgeAudios(EditorManager.instance.currentJudgeType); noteAudioSubmodule?.PlayHoldStartAudio();
isHolding = true; isHolding = true;
holdingTime = songTime - exactJudgeTime; holdingTime = songTime - exactJudgeTime;
} }

View File

@@ -238,6 +238,7 @@ namespace Ichni
musicPlayer.audioSource.clip = songInformation.song; musicPlayer.audioSource.clip = songInformation.song;
beatmapContainer.gameElementList.ForEach(gameElement => beatmapContainer.gameElementList.ForEach(gameElement =>
{ {
Debug.Log(gameElement.elementName + " " + gameElement.elementGuid);
gameElement.AfterInitialize(); gameElement.AfterInitialize();
gameElement.Refresh(); gameElement.Refresh();
}); });

View File

@@ -290,15 +290,11 @@ namespace Ichni.Editor
{ {
if (Keyboard.current.leftCtrlKey.isPressed) if (Keyboard.current.leftCtrlKey.isPressed)
{ {
if (Keyboard.current.digit1Key.wasPressedThisFrame) // Ctrl + 1 手机分辨率提示 if (Keyboard.current.digit1Key.wasPressedThisFrame) // Ctrl + 1 判定线提示
{ {
EditorManager.instance.uiManager.mainPage.resolutionHints.SetPhoneFrame(); EditorManager.instance.uiManager.mainPage.resolutionHints.SetJudgeLineHints();
} }
else if (Keyboard.current.digit2Key.wasPressedThisFrame) // Ctrl + 2 平板分辨率提示 else if (Keyboard.current.digit2Key.wasPressedThisFrame) // Ctrl + 2 绝对安全区域提示
{
EditorManager.instance.uiManager.mainPage.resolutionHints.SetIPadFrame();
}
else if (Keyboard.current.digit3Key.wasPressedThisFrame) // Ctrl + 3 绝对安全区域提示
{ {
EditorManager.instance.uiManager.mainPage.resolutionHints.SetSafeAreaFrame(); EditorManager.instance.uiManager.mainPage.resolutionHints.SetSafeAreaFrame();
} }

File diff suppressed because it is too large Load Diff

View File

@@ -6,7 +6,7 @@
"creatorName" : "小优!!!!", "creatorName" : "小优!!!!",
"editorVersion" : "0.1.0", "editorVersion" : "0.1.0",
"createTime" : "2026\/6\/14 14:50:34", "createTime" : "2026\/6\/14 14:50:34",
"lastSaveTime" : "2026\/7\/10 15:01:15", "lastSaveTime" : "2026\/7\/15 1:10:20",
"selectedThemeBundleList" : [ "selectedThemeBundleList" : [
"basic","departure_to_multiverse" "basic","departure_to_multiverse"
], ],

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 1cde48521dfd60843a741be6492c3f72
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,6 +1,6 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
UnityVersion: 6000.3.7f1 UnityVersion: 6000.3.7f1
CRC: 160404636 CRC: 2830559764
HashAppended: 0 HashAppended: 0
AssetBundleManifest: AssetBundleManifest:
AssetBundleInfos: AssetBundleInfos:
@@ -8,15 +8,15 @@ AssetBundleManifest:
Name: basic Name: basic
Dependencies: {} Dependencies: {}
Info_1: Info_1:
Name: metropolis_on_orbit
Dependencies: {}
Info_2:
Name: departure_to_multiverse Name: departure_to_multiverse
Dependencies: Dependencies:
Dependency_0: shapes Dependency_0: shapes
Info_3: Info_2:
Name: shapes Name: metropolis_on_orbit
Dependencies: {} Dependencies: {}
Info_4: Info_3:
Name: unifiedraytracing Name: unifiedraytracing
Dependencies: {} Dependencies: {}
Info_4:
Name: shapes
Dependencies: {}

View File

@@ -1,16 +1,16 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
UnityVersion: 6000.3.7f1 UnityVersion: 6000.3.7f1
CRC: 3638124941 CRC: 170739097
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: 512abf9fbba3b36e548e305dd8626dd2 Hash: efb2a63b46fc84014c1fe307785a1838
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: 51a9c20dab19416e261c53882aece497 Hash: 51a9c20dab19416e261c53882aece497
IncrementalBuildHash: IncrementalBuildHash:
serializedVersion: 2 serializedVersion: 2
Hash: 09c664075a66a3f3c303b1a6a780a1c4 Hash: 6ad136e423316b4e28b06c231c73f24c
HashAppended: 0 HashAppended: 0
ClassTypes: ClassTypes:
- Class: 1 - Class: 1

View File

@@ -1,16 +1,16 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
UnityVersion: 6000.3.7f1 UnityVersion: 6000.3.7f1
CRC: 1473640568 CRC: 978989022
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: f3e7a91b00f9879bf37bcc2f810f8479 Hash: 1b09568bb134c0d52b4a0f5b1b89ca8f
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: 18cfab2a6b4e689dd1e9255aa8b69d98 Hash: 18cfab2a6b4e689dd1e9255aa8b69d98
IncrementalBuildHash: IncrementalBuildHash:
serializedVersion: 2 serializedVersion: 2
Hash: 7709e7ef4e06ade3df72796f7cbe6363 Hash: 516bd98ea3f8ab8f85f5f97b7f6fb625
HashAppended: 0 HashAppended: 0
ClassTypes: ClassTypes:
- Class: 1 - Class: 1
@@ -118,4 +118,4 @@ Assets:
- Assets/ThemeBundles/DepartureToMultiverse/Prefabs/DTM_NoteVisualStay.prefab - Assets/ThemeBundles/DepartureToMultiverse/Prefabs/DTM_NoteVisualStay.prefab
- Assets/ThemeBundles/DepartureToMultiverse/Textures/Skybox/DTM_NoiseStar0.png - Assets/ThemeBundles/DepartureToMultiverse/Textures/Skybox/DTM_NoiseStar0.png
Dependencies: Dependencies:
- C:/ichniEditor-Source/IchniCreatorStudio/Assets/StreamingAssets/ThemeBundles/Windows64/shapes - D:/Projects/IchniCreatorStudio/Assets/StreamingAssets/ThemeBundles/Windows64/shapes

View File

@@ -10,7 +10,7 @@ Hashes:
Hash: 2059feeebcfd643174e01ec401e33f9c Hash: 2059feeebcfd643174e01ec401e33f9c
IncrementalBuildHash: IncrementalBuildHash:
serializedVersion: 2 serializedVersion: 2
Hash: ef1f17e74074fd8562d9e9c62f4de18b Hash: 63eda978819f97c897b2e37a3c9c1106
HashAppended: 0 HashAppended: 0
ClassTypes: ClassTypes:
- Class: 1 - Class: 1