This commit is contained in:
SoulliesOfficial
2026-07-14 09:35:37 -04:00
parent c16c2480ff
commit dbe7d99a90
15 changed files with 353 additions and 256 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

@@ -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;
} }
@@ -252,4 +254,4 @@ namespace Ichni.RhythmGame
} }
#endregion #endregion
} }
} }

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();
} }