using System; using System.Collections.Generic; using System.Diagnostics; using System.Threading.Tasks; using FairyGUI; using NBC; using NBF.Fishing2; using UnityEngine; using UnityEngine.Video; namespace NBF { public class Init : MonoBehaviour { [SerializeField] private VideoPlayer videoPlayer; [SerializeField] private GameObject startCanvas; [SerializeField] private bool playVideo; private void CheckOver(VideoPlayer vp) { Destroy(startCanvas); StartGame(); } private void Awake() { DontDestroyOnLoad(gameObject); App.Init(InitCallback); } private void OnDestroy() { PermanentCommon.Dispose(); } void InitCallback() { ES3.Init(); ES3.Save("NBF", 1); if (!playVideo) { videoPlayer.Stop(); } else { videoPlayer.loopPointReached += CheckOver; } QualitySettings.vSyncCount = 0; InitLanguage(); InitUI(); if (!playVideo) { CheckOver(videoPlayer); } } #region 多语言 private void InitLanguage() { // var map = LanguageConst.languageMap; // Lan.Inst.AddLanguageModule((int)LanguageModuleType.Text, new LanguageText()); // Lan.Inst.AddLanguageModule((int)LanguageModuleType.Image, new LanguageImage()); // Lan.Inst.AddLanguageModule((int)LanguageModuleType.Font, new LanguageFont()); // // foreach (var key in LanguageConst.languageMap.Keys) // { // Lan.Inst.AddLanguage(key); // } // // UI.Inst.SetUILanguage(); // Lan.Inst.AutoUseLanguage(); } #endregion #region UI private void InitUI() { GRoot.inst.SetContentScaleFactor(UIDef.DefaultScreen.Width, UIDef.DefaultScreen.Height, UIContentScaler.ScreenMatchMode.MatchWidthOrHeight); Binder.BindAll(); UIObjectFactory.SetLoaderExtension(typeof(XGLoader)); UIConst.UIPackRootUrl = UIDef.UIRoot; UIConfig.defaultFont = "AlibabaPuHuiTi-3-Medium"; App.UI.SetUILanguage(); UIConfig.modalLayerColor = new Color(0, 0, 0, 0.9f); AddUIPackages(); } private void AddUIPackages() { App.UI.AddPackage("Common/Common"); } #endregion public void StartGame() { Screen.SetResolution(1280, 720, FullScreenMode.Windowed); PermanentCommon.Init(); InputDef.LoadIcon(); // UI.Inst.OpenUI(); LoadData(); OpenUI().Coroutine(); } private void LoadData() { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); var jsonAsset = Resources.Load("config/configs"); ConfigTableHelper.Initialize(jsonAsset.text); stopwatch.Stop(); Log.Info($"解析表格耗时={stopwatch.ElapsedMilliseconds}"); // ConfigAssets.Init(); } private async FTask OpenUI() { await Task.Delay(100); CommonTopPanel.Show(); LoginPanel.Show(); } #region New public ControllerType controllerType = ControllerType.GamePad; public void SetMouseCursor(bool val) { if (val) { if (controllerType == ControllerType.KeyboardMouse) { Cursor.visible = true; } Cursor.lockState = CursorLockMode.None; } else if (controllerType == ControllerType.KeyboardMouse) { Cursor.visible = false; } Cursor.visible = val; if (!val) { Cursor.lockState = CursorLockMode.Confined; } } #endregion } }