using System.Collections; using System.Collections.Generic; using Ichni.RhythmGame.Beatmap; using UnityEngine; namespace Ichni.RhythmGame { public class SongInformation : IBaseElement { public AudioClip song; //曲目 public string songName; public string songLocation; //曲名 public float bpm; //每分钟节拍数 public float delay; //设定音乐和谱面延迟Delay秒后开始,在延迟中,SongPosition为负数。 public float songTime; public float songBeat => songTime / 60 * bpm; public BaseElement_BM matchedBM { get; set; } public SongInformation(string songName, float bpm, float delay) { this.songName = songName; this.bpm = bpm; this.delay = delay; songLocation = EditorManager.instance.projectInformation.projectPath + "/" + songName + ".wav"; Debug.Log("Loading song from " + songLocation + " " + ES3.FileExists(songLocation)); song = ES3.LoadAudio(songLocation, AudioType.WAV); } public void SaveBM() { matchedBM = new SongInformation_BM(songName, bpm, delay); } public void SetUpInspector() { throw new System.NotImplementedException(); } public void Refresh() { throw new System.NotImplementedException(); } } namespace Beatmap { public class SongInformation_BM : BaseElement_BM { public string songName; public float bpm; public float delay; public SongInformation_BM() { } public SongInformation_BM(string songName, float bpm, float delay) { this.songName = songName; this.bpm = bpm; this.delay = delay; } public override void ExecuteBM() { EditorManager.instance.songInformation = new SongInformation(songName, bpm, delay); } } } }