using System;
using System.Collections;
using System.Collections.Generic;
using DG.Tweening;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
///
/// 拆装进度
///
public enum Progress
{
主板,硬盘,风扇,CPU,内存,导风罩,显卡,电源,机箱
}
public class GameManager : MonoSingleton
{
public static InteractiveUI actionUI;//当前操作的ui
public static Progress progress;
public List instanceLists;
public static Dictionary instanceMapping;
public Transform cameraPos;
public bool firstEnter = true;
protected override void Awake()
{
base.Awake();
instanceMapping = new Dictionary();
foreach (var instacne in instanceLists)
{
if (!instanceMapping.ContainsKey(instacne.progress))
{
instanceMapping.Add(instacne.progress,instacne);
}
}
instanceLists = null;
foreach (var instance in instanceMapping.Values)
{
instance.gameObject.SetActive(false);
}
}
///
/// 更改状态
///
///
public static void ChangeProgress(Progress pro)
{
if (instanceMapping.ContainsKey(progress))
{
progress = pro;
Debug.Log(progress);
instanceMapping[progress].gameObject.SetActive(true);
instanceMapping[progress].OpenLine();
}
}
///
/// 交互结束回调
///
public void InteractEnd()
{
//操作栏ui关掉 提示特效关掉
UI.Instance.operation.SetActive(false);
instanceMapping[progress].CloseLine();
EffectManager.Instance.DisableTipEffect();
TimeLineManager.Instance.pds[(int)progress].Play();
}
///
/// 下一阶段
///
public void NextProcess()
{
UI.Instance.UpdateJDT();
UI.Instance.CloseOperation();
GameStageManager.Instance.currentStage = GameStage.展示;
if (progress == Progress.机箱)
{
Camera.main.transform.DOMove(cameraPos.position, 2);
Camera.main.transform.DOLocalRotate(cameraPos.localEulerAngles, 2);
UI.Instance.nextPanel.SetActive(true);
UI.Instance.nextPanel.GetComponentInChildren().onClick.AddListener(() =>
{
SceneManager.LoadSceneAsync(1);
});
return;
}
ChangeProgress((Progress)((int)progress + 1));
UI.Instance.operation.SetActive(true);
EffectManager.Instance.EnableTipEffect(instanceMapping[progress].transform);
Camera.main.transform.DOMove(cameraPos.position, 2);
Camera.main.transform.DOLocalRotate(cameraPos.localEulerAngles, 2);
}
public void MoveComputer()
{
TimeLineManager.Instance.openComputer.Play();
if (firstEnter)
{
firstEnter = false;
Invoke("EnterHelp",3);
}
else
{
Debug.Log("change");
GameStageManager.Instance.currentStage = GameStage.展示;
}
}
///
/// 玩家选中电脑进入帮助阶段
///
void EnterHelp()
{
GameStageManager.Instance.currentStage = GameStage.帮助;
ChangeProgress(Progress.主板);
EffectManager.Instance.EnableTipEffect(instanceMapping[progress].transform);
}
}