Example #1
0
        /// <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 void Clear()
 {
     InitializeAndClear.Clear();
 }
 /// <summary>
 /// 初始化
 /// </summary>
 internal void Init()
 {
     InitializeAndClear.Initialize();
 }