Files
Fishing2/Assets/Scripts/Startup/App.cs
2025-05-19 17:31:53 +08:00

148 lines
4.0 KiB
C#

using System.Collections;
using System.Reflection;
using FairyGUI;
using NBC;
using NBF;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.Video;
namespace NBF
{
public enum ControllerType
{
KeyboardMouse = 0,
GamePad = 1
}
public class App : MonoBehaviour
{
public static App Inst { get; private set; }
[SerializeField] private VideoPlayer videoPlayer;
[SerializeField] private GameObject startCanvas;
[SerializeField] private bool playVideo;
private void CheckOver(VideoPlayer vp)
{
Destroy(startCanvas);
StartGame();
}
private void Awake()
{
Inst = this;
DontDestroyOnLoad(gameObject);
// new GameObject("GameManager").AddComponent<GameManager>();
}
void Start()
{
ES3.Init();
ES3.Save("NBF", 1);
if (!playVideo)
{
videoPlayer.Stop();
}
else
{
videoPlayer.loopPointReached += CheckOver;
}
QualitySettings.vSyncCount = 0;
// Application.targetFrameRate = 120;
// NBC.Asset.Const.Offline = true;
// yield return NBC.Asset.Assets.Initialize();
Init();
if (!playVideo)
{
CheckOver(videoPlayer);
}
}
private void Init()
{
InitUI();
}
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-55-Regular";
UI.Inst.SetUILanguage<UILangeageConfig>();
UIConfig.modalLayerColor = new Color(0, 0, 0, 0.9f);
AddUIPackages();
}
private void AddUIPackages()
{
UI.Inst.AddPackage("Common/Common");
}
public void StartGame()
{
// UI.Inst.OpenUI<LoadPanel>();
LoadData();
Fishing.Inst.Go(1);
}
private void LoadData()
{
ConfigAssets.Init();
// var cfgAssets = Resources.Load<CfgAssets>("config/CfgAssets");
// var playerCache = Resources.Load<PlayerCacheData>("config/PlayerCache");
// GameManager.Instance._playerData = playerCache.PlayerData;
var inputManager = this.GetComponent<InputManager>();
if (inputManager == null)
{
inputManager = gameObject.AddComponent<InputManager>();
}
GameModel.Inst.Init();
// var inventoryManager = GetComponent<InventoryManager>();
// if (inventoryManager == null)
// {
// inventoryManager = gameObject.AddComponent<InventoryManager>();
// }
//InventoryManager
}
#region New
public ControllerType controllerType = ControllerType.GamePad;
public void SetMouseCurrsor(bool val)
{
if (val)
{
// InputManager inputManager = FindObjectOfType<InputManager>();
if (controllerType == ControllerType.KeyboardMouse)
{
Cursor.visible = true;
}
// inputManager.SetCursorPositionToScreenCenter();
Cursor.lockState = CursorLockMode.None;
}
else if (controllerType == ControllerType.KeyboardMouse)
{
Cursor.visible = false;
}
Cursor.visible = val;
if (!val)
{
Cursor.lockState = CursorLockMode.Confined;
}
}
#endregion
}
}