OvertakingLegend/Assets/Script/HallScene.cs

110 lines
3.7 KiB
C#

using Sirenix.OdinInspector;
using System.Collections;
using System.Collections.Generic;
using System.Threading;
using UnityEngine;
/// <summary>
/// 大厅场景
/// </summary>
public class HallScene : MonoBehaviour
{
/// <summary>
/// 玩家
/// </summary>
[HideInInspector] public Player player;
/// <summary>
/// 仓库
/// </summary>
private Warehouse warehouse;
private void Awake()
{
Init();
Scenes.Instance.hallScene = this;
}
private void Init()
{
if (UserDataManager.Instance.userData.guidance.isOverInitialEntry)
{
UIManager.Instance.DesProcess();
}
else
{
UIManager.Instance.SetPostProcessVolume(false);
}
AudioManager.Instance.SetBackgroundMusic(YooAssetManager.Instance.LoadAssetSync<AudioClip>(PackagesName.GameData,"HallBGM"));
Scenes.Instance.SetGameState(E_GameState.Start);
WarehouseInit();
Scenes.Instance.PlayerCarInit(warehouse.generatePoints.position);
player = Scenes.Instance.player;
player.SetNode();
player.TurnToHallCamear();
}
/// <summary>
/// 漂移
/// </summary>
public void Drifting()
{
player.Drifting();
player.skinCar.SetAllLight(true);
}
/// <summary>
/// 仓库初始化
/// </summary>
public void WarehouseInit()
{
warehouse=Instantiate(YooAssetManager.Instance.LoadAssetSync<GameObject>(PackagesName.GameData, "Warehouse_" + Random.Range(1, 3)).GetComponent<Warehouse>());
warehouse.transform.position = Vector3.zero;
}
/// <summary>
/// 跳转初始化
/// </summary>
public void SkipInit()
{
UIManager.Instance.AsynShowUI<MainUI>();
UIManager.Instance.AsynShowUI<TopmostLayerUI>();
UIManager.Instance.AsynShowUI<GeneralUI>();
Scenes.Instance.hallScene.Drifting();
}
/// <summary>
///进入游戏场景
/// </summary>
public void EnterTheGameScene()
{
UserDataManager.Instance.AddGameNumber();
UIManager.Instance.DeleteUI<MainUI>();
UIManager.Instance.DeleteUI<GeneralUI>();
UIManager.Instance.DeleteUI<ShopUI>();
UIManager.Instance.ResourcesShowUI<LoadUI>();
ScenesLoadManager.Instance.AsynLoadScene(MyConstant.GameScene, () =>
{
LoadUI loadUI = UIManager.Instance.GetUI<LoadUI>();
loadUI.SetAction(() =>
{
UIManager.Instance.AsynShowUI<GameUI>((ui) =>
{
ui.SetCountDownkeepOut(true);
});
CachePoolManager.Instance.Prestrain(YooAssetManager.Instance.LoadAssetSync<GameObject>(PackagesName.GameData, "NPCCar"), 10);
CachePoolManager.Instance.Prestrain(YooAssetManager.Instance.LoadAssetSync<GameObject>(PackagesName.GameData, "MudTanker"), 1);
CachePoolManager.Instance.Prestrain(YooAssetManager.Instance.LoadAssetSync<GameObject>(PackagesName.GameData, "Train"), 1);
CachePoolManager.Instance.Prestrain(YooAssetManager.Instance.LoadAssetSync<GameObject>(PackagesName.GameData, "fx_explosion"), 1);
CachePoolManager.Instance.Prestrain(YooAssetManager.Instance.LoadAssetSync<GameObject>(PackagesName.GameData, "fx_bump"), 1);
CachePoolManager.Instance.Prestrain(YooAssetManager.Instance.LoadAssetSync<GameObject>(PackagesName.GameData, "fx_speed"), 1);
}, () =>
{
Scenes.Instance.gameScene.CountDown();
});
loadUI.Load();
});
}
}