收拾烂摊子

增加编队初步,改动了判定系统,编队UI组装好
This commit is contained in:
FloatGaming
2025-09-28 00:23:05 +08:00
parent 1d818fa4eb
commit 98510eef0f
53 changed files with 10492 additions and 60 deletions
@@ -18,6 +18,8 @@ public class NoteSpawner : MonoBehaviour
public float spawnOffset = 0f; // 生成音符时的时间偏移量
public float bpm;
public NoteJudgeConfig judgeConfig; // 判定区间配置,需在 Inspector 赋值
private Beatmap beatmap;
private float startTime; // 存储歌曲开始时间
private bool isSpawning = false;
@@ -106,7 +108,7 @@ public class NoteSpawner : MonoBehaviour
if (noteScript != null)
{
float noteSpawnTime = Time.time;
noteScript.Setup(key, noteData.trackIndex, CalculateSpeed(), noteData.time, noteData.color);
noteScript.Setup(key, noteData.trackIndex, CalculateSpeed(), noteData.time, noteData.color, judgeConfig);
Debug.Log($"到达时间:{noteSpawnTime + (60f / bpm) * 4}");
}
else
@@ -142,6 +144,7 @@ public class NoteSpawner : MonoBehaviour
float segmentInterval = (60f / bpm) / 4f;
int segmentCount = Mathf.CeilToInt(noteData.length / segmentInterval);
Transform spawnPoint = spawnPoints[noteData.trackIndex];
// 修正:scheduledEndTime 应为游戏时间轴上的绝对时间(noteData.time + noteData.length
float scheduledEndTime = noteData.time + noteData.length;
// 生成唯一 id
@@ -160,7 +163,7 @@ public class NoteSpawner : MonoBehaviour
HoldNote holdNote = startObj.GetComponent<HoldNote>();
if (holdNote != null)
{
holdNote.Setup(holdNoteId, noteData.trackIndex, CalculateSpeed(), noteData.time, 0f, false, scheduledEndTime, noteData.color, key, "start");
holdNote.Setup(holdNoteId, noteData.trackIndex, CalculateSpeed(), noteData.time, 0f, false, scheduledEndTime, noteData.color, key, "start", judgeConfig);
}
else
{
@@ -188,7 +191,7 @@ public class NoteSpawner : MonoBehaviour
HoldNote holdSeg = segObj.GetComponent<HoldNote>();
if (holdSeg != null)
{
holdSeg.Setup(holdNoteId, noteData.trackIndex, CalculateSpeed(), noteData.time, segmentDelay, isEndSegment, scheduledEndTime, noteData.color, key, partType);
holdSeg.Setup(holdNoteId, noteData.trackIndex, CalculateSpeed(), noteData.time, segmentDelay, isEndSegment, scheduledEndTime, noteData.color, key, partType, judgeConfig);
}
else
{