Files
Fishing2/Assets/Scripts/Init.cs

167 lines
4.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Threading.Tasks;
using FairyGUI;
using Fantasy.Async;
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);
}
private void Awake()
{
DontDestroyOnLoad(gameObject);
Game.SetInitCallback(gameObject, 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);
}
StartGame();
}
#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<UILangeageConfig>();
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.verticalScrollBar = "ui://6hgkvlauoomej";
UIConfig.defaultFont = "AlibabaPuHuiTi-3-Medium";
UI.Inst.SetUILanguage<UILangeageConfig>();
UIConfig.modalLayerColor = new Color(0, 0, 0, 0.99f);
AddUIPackages();
}
private void AddUIPackages()
{
UI.Inst.AddPackage("Common/Common");
UI.Inst.AddPackage("CommonNew/CommonNew");
UI.Inst.AddPackage("CommonFlag/CommonFlag");
UI.Inst.AddPackage("CommonIcon/CommonIcon");
}
#endregion
public void StartGame()
{
gameObject.AddComponent<InputManager>();
Screen.SetResolution(1920, 1080, FullScreenMode.FullScreenWindow);
PermanentCommon.Init();
InputDef.LoadIcon();
// UI.Inst.OpenUI<FishingShopPanel>();
LoadData();
OpenUI().Coroutine();
}
private void LoadData()
{
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
var jsonAsset = Resources.Load<TextAsset>("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();
// PreviewPanel.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
}
}