/// <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> /// <param name="attributeName">属性名称</param> /// <param name="valueColor">颜色值</param> internal static void OnSettingValueChange(string attributeName, Color valueColor) { Parameter parameter = ModelManager.Instance.GetParameter; ScenesDatas scenesDatas = ModelManager.Instance.GetScenesDatas; switch (attributeName) { case MainColorInputField: { parameter.MainColor = valueColor; scenesDatas.AudioDataMaterial.SetColor(_MainColor, valueColor); } break; case ViceColorInputField: { parameter.ViceColor = valueColor; scenesDatas.AudioDataMaterial.SetColor(_ViceColor, valueColor); } break; case BaseFontColorInputField: { parameter.BaseFontColor = valueColor; UILyricControl.ChangeBaseLyricColor(valueColor, scenesDatas.LyricItems); } break; case CurrentFontColorInputField: { parameter.CurrentFontColor = valueColor; UILyricControl.ChangeCurrentLyricColor(valueColor, scenesDatas.LyricItems); } break; default: break; } }
/// <summary> /// 取消 /// </summary> internal static void Cancel() { Parameter parameter = ModelManager.Instance.GetParameter; ScenesDatas scenesDatas = ModelManager.Instance.GetScenesDatas; if (parameter.Radius != radiusSliderCache) { parameter.Radius = radiusSliderCache; } if (parameter.OffsetX != offsetXSliderCache) { parameter.OffsetX = offsetXSliderCache; } if (parameter.OffsetY != offsetYSliderCache) { parameter.OffsetY = offsetYSliderCache; } if (parameter.AudioDataCount != audioDataCountSliderCache) { parameter.AudioDataCount = audioDataCountSliderCache; } if (parameter.LineWidth != lineWidthSliderCache) { parameter.LineWidth = lineWidthSliderCache; } if (parameter.MinHight != minHightSliderCache) { parameter.MinHight = minHightSliderCache; } if (parameter.MaxHight != maxHightSliderCache) { parameter.MaxHight = maxHightSliderCache; } if (parameter.ColorBrightness != colorBrightnessSliderCache) { parameter.ColorBrightness = colorBrightnessSliderCache; scenesDatas.AudioDataMaterial.SetFloat(_Brightness, colorBrightnessSliderCache); } if (parameter.MainColor != mainColorInputFieldCache) { parameter.MainColor = mainColorInputFieldCache; scenesDatas.AudioDataMaterial.SetColor(_MainColor, mainColorInputFieldCache); } if (parameter.ViceColor != viceColorInputFieldCache) { parameter.ViceColor = viceColorInputFieldCache; scenesDatas.AudioDataMaterial.SetColor(_ViceColor, viceColorInputFieldCache); } if (parameter.UpdateInterval != updateIntervalSliderCache) { parameter.UpdateInterval = updateIntervalSliderCache; } if (parameter.AmplificationFactor != amplificationFactorSliderCache) { parameter.AmplificationFactor = amplificationFactorSliderCache; } if (parameter.RotateSpeed != rotateSpeedSliderCache) { parameter.RotateSpeed = rotateSpeedSliderCache; } if (parameter.BaseFontColor != baseFontColorInputFieldCache) { parameter.BaseFontColor = baseFontColorInputFieldCache; UILyricControl.ChangeBaseLyricColor(baseFontColorInputFieldCache, scenesDatas.LyricItems); } if (parameter.CurrentFontColor != currentFontColorInputFieldCache) { parameter.CurrentFontColor = currentFontColorInputFieldCache; UILyricControl.ChangeCurrentLyricColor(currentFontColorInputFieldCache, scenesDatas.LyricItems); } if (parameter.FontSize != fontSizeSliderCache) { parameter.FontSize = fontSizeSliderCache; UILyricControl.ChangeLyricFontSize(fontSizeSliderCache, scenesDatas.LyricItems); } }
/// <summary> /// 重置 /// </summary> internal static void Reset(Dictionary <string, AudioPlayer.View.UIBehaviour> uiControls) { Parameter parameter = ModelManager.Instance.GetParameter; parameter.Radius = 3.5f; parameter.OffsetX = 0.0f; parameter.OffsetY = 0.7f; parameter.AudioDataCount = 64; parameter.LineWidth = 0.02f; parameter.MinHight = 0.14f; parameter.MaxHight = 1.4f; parameter.ColorBrightness = 3.4f; parameter.MainColor = Color.blue; parameter.ViceColor = Color.green; parameter.UpdateInterval = 0.08f; parameter.AmplificationFactor = 14.0f; parameter.RotateSpeed = 10.0f; parameter.BaseFontColor = new Color(50.0f / 255.0f, 50.0f / 255.0f, 50.0f / 255.0f, 1.0f); parameter.CurrentFontColor = new Color(163.0f / 255.0f, 1.0f, 6.0f / 255.0f, 255.0f); parameter.FontSize = 30; if (uiControls.ContainsKey(RadiusSlider)) { uiControls[RadiusSlider].GetSlider().value = parameter.Radius; } if (uiControls.ContainsKey(OffsetXSlider)) { uiControls[OffsetXSlider].GetSlider().value = parameter.OffsetX; } if (uiControls.ContainsKey(OffsetYSlider)) { uiControls[OffsetYSlider].GetSlider().value = parameter.OffsetY; } if (uiControls.ContainsKey(AudioDataCountSlider)) { uiControls[AudioDataCountSlider].GetSlider().value = parameter.AudioDataCount % 64; } if (uiControls.ContainsKey(LineWidthSlider)) { uiControls[LineWidthSlider].GetSlider().value = parameter.LineWidth; } if (uiControls.ContainsKey(MinHightSlider)) { uiControls[MinHightSlider].GetSlider().value = parameter.MinHight; } if (uiControls.ContainsKey(MaxHightSlider)) { uiControls[MaxHightSlider].GetSlider().value = parameter.MaxHight; } if (uiControls.ContainsKey(ColorBrightnessSlider)) { uiControls[ColorBrightnessSlider].GetSlider().value = parameter.ColorBrightness; } if (uiControls.ContainsKey(UpdateIntervalSlider)) { uiControls[UpdateIntervalSlider].GetSlider().value = parameter.UpdateInterval; } if (uiControls.ContainsKey(AmplificationFactorSlider)) { uiControls[AmplificationFactorSlider].GetSlider().value = parameter.AmplificationFactor; } if (uiControls.ContainsKey(RotateSpeedSlider)) { uiControls[RotateSpeedSlider].GetSlider().value = parameter.RotateSpeed; } if (uiControls.ContainsKey(FontSizeSlider)) { uiControls[FontSizeSlider].GetSlider().value = parameter.FontSize; } ScenesDatas scenesDatas = ModelManager.Instance.GetScenesDatas; scenesDatas.AudioDataMaterial.SetFloat(_Brightness, 3.4f); scenesDatas.AudioDataMaterial.SetColor(_MainColor, Color.blue); scenesDatas.AudioDataMaterial.SetColor(_ViceColor, Color.green); UILyricControl.ChangeBaseLyricColor(parameter.BaseFontColor, scenesDatas.LyricItems); UILyricControl.ChangeCurrentLyricColor(parameter.CurrentFontColor, scenesDatas.LyricItems); UILyricControl.ChangeLyricFontSize(parameter.FontSize, scenesDatas.LyricItems); }