/// <summary> /// 初始化 /// </summary> internal static void Initialize() { ModelManager.Instance.GetParameter = ConfigControl.LoadConfig(); #if UNITY_EDITOR string[] filesName = Tools.PathTools.GetFileName(Tools.PathTools.GetAudioPath). Where((str) => Path.GetExtension(str) != ".meta"). Select((audioName) => Path.GetFileName(audioName)).ToArray(); #else string[] filesName = Tools.PathTools.GetFileName(Tools.PathTools.GetAudioPath). Select(str => Path.GetFileName(str)).ToArray(); #endif ModelManager.Instance.GetLogicDatas = new LogicDatas { GameState = GameState.Init, SongsName = filesName, LyricInfo = null, CycleType = CycleType.LoopPlayback, Index = 0, Timer = 0, CurrentSongIndex = 0 }; Material audioDataMaterial = Resources.Load <Material>("Materials/AudioDataMaterial"); ModelManager.Instance.GetScenesDatas = new ScenesDatas { AudioSource = GameObject.FindObjectOfType <AudioSource>(), VideoPlayer = GameObject.FindObjectOfType <UnityEngine.Video.VideoPlayer>(), AudioDataMaterial = audioDataMaterial, AudioDatas = InitializeAndClear.InitAudioDatas(audioDataMaterial), TrailRenderer = GameObject.FindObjectOfType <TrailRenderer>().transform, LyricItems = GameObject.Find("LyricLayer").transform.GetComponentsInChildren <Text>(), SongName = GameObject.Find("SongName").transform.GetComponent <Text>(), SongTotalTime = GameObject.Find("SongTotalTime").transform.GetComponent <Text>(), SongPlayingTime = GameObject.Find("SongPlayingTime").transform.GetComponent <Text>(), SongTimeSlide = GameObject.Find("SongTimeSlider").transform.GetComponent <Slider>() }; ControllerManager controllerManager = ControllerManager.Instance; controllerManager.RegisterOnUpdate(SongControl.ListeningSongOver); controllerManager.RegisterOnUpdate(AudioVisualizer.RefreshHeartbeat); controllerManager.RegisterOnUpdate(SongLyric.ListeningSongLyric); controllerManager.RegisterOnUpdate(MouseTrail.RefreshTrail); controllerManager.RegisterOnUpdate(AssetsControl.RefreshAssets); controllerManager.RegisterOnUpdate(SongControl.UpdateSongPlayingTime); Parameter parameter = ModelManager.Instance.GetParameter; ScenesDatas scenesDatas = ModelManager.Instance.GetScenesDatas; UILyricControl.ChangeBaseLyricColor(parameter.BaseFontColor, scenesDatas.LyricItems); UILyricControl.ChangeCurrentLyricColor(parameter.CurrentFontColor, scenesDatas.LyricItems); UILyricControl.ChangeLyricFontSize(parameter.FontSize, scenesDatas.LyricItems); ModelManager.Instance.GetLogicDatas.GameState = GameState.StandBy; //Controller.SongControl.PlayOrPauseSong(); }
/// <summary> /// 清空 /// </summary> internal static void Clear() { ControllerManager controllerManager = ControllerManager.Instance; controllerManager.UnRegisterOnUpdate(SongControl.ListeningSongOver); controllerManager.UnRegisterOnUpdate(AudioVisualizer.RefreshHeartbeat); controllerManager.UnRegisterOnUpdate(SongLyric.ListeningSongLyric); controllerManager.UnRegisterOnUpdate(MouseTrail.RefreshTrail); controllerManager.UnRegisterOnUpdate(AssetsControl.RefreshAssets); controllerManager.UnRegisterOnUpdate(SongControl.UpdateSongPlayingTime); ModelManager.Instance.GetLogicDatas = null; ModelManager.Instance.GetParameter = null; ModelManager.Instance.GetScenesDatas = null; }
void Awake() { ControllerManager.instance = this; }