@@ -79,75 +79,73 @@ namespace Ichni.RhythmGame
|
||||
}
|
||||
protected virtual void Update()
|
||||
{
|
||||
if (isOnTrack)
|
||||
var editor = EditorManager.instance;
|
||||
var cameraManager = editor.cameraManager;
|
||||
float songTime = editor.songInformation.songTime;
|
||||
|
||||
// 轨道位置更新
|
||||
if (isOnTrack && track.trackTimeSubmodule is TrackTimeSubmoduleStatic)
|
||||
{
|
||||
if (track.trackTimeSubmodule is TrackTimeSubmoduleStatic)
|
||||
{
|
||||
UpdateNoteInStaticTrack();
|
||||
}
|
||||
UpdateNoteInStaticTrack();
|
||||
}
|
||||
|
||||
float songTime = EditorManager.instance.songInformation.songTime;
|
||||
|
||||
// 判定状态更新
|
||||
if (isFirstJudged && songTime < exactJudgeTime)
|
||||
{
|
||||
isFirstJudged = false;
|
||||
}
|
||||
|
||||
if (!isFirstJudged && songTime >= exactJudgeTime)
|
||||
else if (!isFirstJudged && songTime >= exactJudgeTime)
|
||||
{
|
||||
if (!isFirstJudged)
|
||||
noteAudioSubmodule?.PlayNoteJudgeAudios(editor.currentJudgeType);
|
||||
isFirstJudged = true;
|
||||
}
|
||||
|
||||
// 判定单元更新
|
||||
if (noteJudgeSubmodule != null && !cameraManager.isSceneCameraActive)
|
||||
{
|
||||
foreach (var unit in noteJudgeSubmodule.judgeUnitList)
|
||||
{
|
||||
noteAudioSubmodule.PlayNoteJudgeAudios(EditorManager.instance.currentJudgeType);
|
||||
isFirstJudged = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (noteJudgeSubmodule != null && !EditorManager.instance.cameraManager.isSceneCameraActive)
|
||||
{
|
||||
foreach (NoteJudgeUnit unit in noteJudgeSubmodule.judgeUnitList.Where(unit => unit.isShowingJudge))
|
||||
{
|
||||
unit.UpdateJudge();
|
||||
if (unit.isShowingJudge) unit.UpdateJudge();
|
||||
}
|
||||
}
|
||||
|
||||
// 视觉效果更新
|
||||
if (noteVisual != null)
|
||||
{
|
||||
noteVisual.effectSubmodule.effectCollection["Generate"].ForEach(e => e.UpdateEffect(exactJudgeTime));
|
||||
noteVisual.effectSubmodule.effectCollection["GeneralJudge"].ForEach(e => e.UpdateEffect(exactJudgeTime));
|
||||
var effects = noteVisual.effectSubmodule.effectCollection;
|
||||
UpdateEffectList(effects["Generate"]);
|
||||
UpdateEffectList(effects["GeneralJudge"]);
|
||||
|
||||
switch (EditorManager.instance.currentJudgeType)
|
||||
switch (editor.currentJudgeType)
|
||||
{
|
||||
case NoteJudgeType.Perfect:
|
||||
noteVisual.effectSubmodule.effectCollection["Perfect"].ForEach(e => e.UpdateEffect(exactJudgeTime));
|
||||
break;
|
||||
case NoteJudgeType.Good:
|
||||
noteVisual.effectSubmodule.effectCollection["Good"].ForEach(e => e.UpdateEffect(exactJudgeTime));
|
||||
break;
|
||||
case NoteJudgeType.Bad:
|
||||
noteVisual.effectSubmodule.effectCollection["Bad"].ForEach(e => e.UpdateEffect(exactJudgeTime));
|
||||
break;
|
||||
case NoteJudgeType.Miss:
|
||||
noteVisual.effectSubmodule.effectCollection["Miss"].ForEach(e => e.UpdateEffect(exactJudgeTime));
|
||||
break;
|
||||
case NoteJudgeType.Perfect: UpdateEffectList(effects["Perfect"]); break;
|
||||
case NoteJudgeType.Good: UpdateEffectList(effects["Good"]); break;
|
||||
case NoteJudgeType.Bad: UpdateEffectList(effects["Bad"]); break;
|
||||
case NoteJudgeType.Miss: UpdateEffectList(effects["Miss"]); break;
|
||||
}
|
||||
|
||||
noteVisual.effectSubmodule.effectCollection["AfterJudge"].ForEach(e => e.UpdateEffect(exactJudgeTime));
|
||||
UpdateEffectList(effects["AfterJudge"]);
|
||||
|
||||
if (EditorManager.instance.cameraManager.haveGameCamera)
|
||||
// 屏幕位置更新(降低频率)
|
||||
if (cameraManager.haveGameCamera)//&& Time.frameCount % 3 == 0)
|
||||
{
|
||||
noteScreenPosition = EditorManager.instance.cameraManager.gameCamera.gameCamera.WorldToScreenPoint(noteVisual.transform.position);
|
||||
noteScreenPosition = cameraManager.gameCamera.gameCamera.WorldToScreenPoint(
|
||||
noteVisual.transform.position);
|
||||
}
|
||||
}
|
||||
//Editor
|
||||
if (noteVisual != null)
|
||||
{
|
||||
|
||||
// 碰撞体状态
|
||||
noteVisual.GetComponent<Collider>().enabled = !isFirstJudged;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// 辅助方法:更新效果列表
|
||||
private void UpdateEffectList(List<EffectBase> effects)
|
||||
{
|
||||
for (int i = 0; i < effects.Count; i++)
|
||||
{
|
||||
effects[i].UpdateEffect(exactJudgeTime);
|
||||
}
|
||||
}
|
||||
public void ExecuteStartJudge()
|
||||
{
|
||||
|
||||
|
||||
Reference in New Issue
Block a user