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

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

View File

@@ -318,15 +318,16 @@ namespace Ichni.Editor
{
if (hold.noteAudioSubmodule.generalJudgeAudioList.Contains("DefaultTap"))
{
hold.submoduleList.Remove(hold.noteAudioSubmodule);
hold.noteAudioSubmodule = null;
hold.noteAudioSubmodule = new NoteAudioSubmodule(hold,
new List<string>() { "DefaultEndHold" },
new List<string>(), new List<string>(),
new List<string>(), new List<string>(),
new List<string>() { "DefaultStartHold" });
}
}
hold.submoduleList.Remove(hold.noteAudioSubmodule);
hold.noteAudioSubmodule = null;
hold.noteAudioSubmodule = new NoteAudioSubmodule(hold,
new List<string>(),
new List<string>(), new List<string>(),
new List<string>(), new List<string>(),
new List<string>() { "DefaultStartHold" },
new List<string>() { "DefaultEndHold" });
}
}
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> missAudioList;
public List<string> holdStartAudioList;
public List<string> holdEndAudioList;
public NoteAudioSubmodule_BM()
{
@@ -25,20 +26,23 @@ namespace Ichni.RhythmGame.Beatmap
badAudioList = noteAudioSubmodule.badAudioList;
missAudioList = noteAudioSubmodule.missAudioList;
holdStartAudioList = noteAudioSubmodule.holdStartAudioList;
holdEndAudioList = noteAudioSubmodule.holdEndAudioList;
}
public override void ExecuteBM()
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
(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
public override void DuplicateBM(GameElement attached)
{
(attached as NoteBase).noteAudioSubmodule = new NoteAudioSubmodule((attached as NoteBase),
generalJudgeAudioList, perfectAudioList, goodAudioList, badAudioList, missAudioList, holdStartAudioList);
generalJudgeAudioList, perfectAudioList, goodAudioList, badAudioList, missAudioList,
holdStartAudioList, holdEndAudioList);
}
#endregion
}

View File

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

View File

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

View File

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

View File

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

View File

@@ -290,15 +290,11 @@ namespace Ichni.Editor
{
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 平板分辨率提示
{
EditorManager.instance.uiManager.mainPage.resolutionHints.SetIPadFrame();
}
else if (Keyboard.current.digit3Key.wasPressedThisFrame) // Ctrl + 3 绝对安全区域提示
else if (Keyboard.current.digit2Key.wasPressedThisFrame) // Ctrl + 2 绝对安全区域提示
{
EditorManager.instance.uiManager.mainPage.resolutionHints.SetSafeAreaFrame();
}