Files
ichni_Creator_Studio/Assets/Scripts/Manager/MusicPlayer.cs
2025-06-21 23:09:34 +08:00

65 lines
1.9 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using Ichni.RhythmGame;
using UnityEngine;
using UnityEngine.InputSystem;
namespace Ichni.Editor
{
public class MusicPlayer : MonoBehaviour
{
public bool isDebugging;
public bool isPlaying;
public AudioSource audioSource;
private void Update()
{
if (isDebugging)
{
EditorManager.instance.songInformation.songTime += Time.deltaTime;
return;
}
if (isPlaying)
{
EditorManager.instance.songInformation.songTime = EditorManager.instance.musicPlayer.audioSource.time;
}
}
public void PlayMusic()
{
isPlaying = !isPlaying;
Trail.SetAllTrails(true, false);
EditorManager.instance.songInformation.songTime = audioSource.time;
if (isPlaying) audioSource.Play();
else PauseMusic();
}
public IEnumerator PlayBackMusic()
{
float startt = audioSource.time;
PlayMusic();
yield return new WaitUntil(() => Keyboard.current.rightAltKey.wasReleasedThisFrame);
audioSource.time = startt;
PauseMusic();
}
public void PauseMusic()
{
isPlaying = false;
Trail.SetAllTrails(false, false);
EditorManager.instance.songInformation.songTime = audioSource.time;
audioSource.Pause();
}
public void StopMusic()
{
isPlaying = false;
Trail.SetAllTrails(false, true);
EditorManager.instance.songInformation.songTime = 0;
audioSource.Stop();
EditorManager.instance.uiManager.timeline.timePointerModule.SetRange(0);
}
}
}