73 lines
2.2 KiB
C#
73 lines
2.2 KiB
C#
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);
|
||
}
|
||
}
|
||
}
|
||
} |