|
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using XWFramework.Tools;
|
|
|
|
|
using System;
|
|
|
|
|
namespace Level1
|
|
|
|
|
{
|
|
|
|
|
[DefaultExecutionOrder(-10)]
|
|
|
|
|
public class GameManager : MonoSingleton<GameManager>
|
|
|
|
|
{
|
|
|
|
|
public GameObject btn;
|
|
|
|
|
public delegate void BaseDelegate();
|
|
|
|
|
|
|
|
|
|
[NonSerialized]
|
|
|
|
|
public UI ui;
|
|
|
|
|
[NonSerialized]
|
|
|
|
|
public CameraManager cameraManager;
|
|
|
|
|
[NonSerialized]
|
|
|
|
|
public DataManager dataManager;
|
|
|
|
|
[NonSerialized]
|
|
|
|
|
public AudioManager audioManager;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 玩家移动,NPC移动,车子移动
|
|
|
|
|
/// </summary>
|
|
|
|
|
public static BaseDelegate StartGame;
|
|
|
|
|
public Dictionary<int, BaseDelegate> questionCallBack = new Dictionary<int, BaseDelegate>();
|
|
|
|
|
|
|
|
|
|
public PlayerController player;
|
|
|
|
|
[NonSerialized]
|
|
|
|
|
public int questionIndex = 0;
|
|
|
|
|
public Transform bjz;
|
|
|
|
|
public GameObject sjz;
|
|
|
|
|
public Animator animator;
|
|
|
|
|
public GameObject[] needTransferObj;
|
|
|
|
|
|
|
|
|
|
protected override void Awake()
|
|
|
|
|
{
|
|
|
|
|
base.Awake();
|
|
|
|
|
ui = GetComponentInChildren<UI>();
|
|
|
|
|
cameraManager = GetComponentInChildren<CameraManager>();
|
|
|
|
|
dataManager = GetComponentInChildren<DataManager>();
|
|
|
|
|
audioManager = GetComponentInChildren<AudioManager>();
|
|
|
|
|
InitQuestionCallBack();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void InitQuestionCallBack() {
|
|
|
|
|
questionCallBack.Add(0, Choose);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#region 进程
|
|
|
|
|
private void Start()
|
|
|
|
|
{
|
|
|
|
|
btn.SetActive(true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void ClickStart() {
|
|
|
|
|
StartGame();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void PlayerArrive() {
|
|
|
|
|
ui.Show(UIType.Toggle);
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region QuestionPanel
|
|
|
|
|
public Question GetQuestion() {
|
|
|
|
|
return dataManager.questionData[questionIndex];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void QuestionCallBack() {
|
|
|
|
|
questionCallBack[questionIndex]();
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 答题回调
|
|
|
|
|
|
|
|
|
|
void Choose() {
|
|
|
|
|
player.gameObject.SetActive(false);
|
|
|
|
|
sjz.SetActive(true);
|
|
|
|
|
animator.SetTrigger("Yaotou");
|
|
|
|
|
ui.Show(UIType.Info);
|
|
|
|
|
StartCoroutine(Wait(2f,()=> {
|
|
|
|
|
ui.Show(UIType.Safe);
|
|
|
|
|
}));
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 调整maskPanel
|
|
|
|
|
/// 转移物体
|
|
|
|
|
/// 调整摄像机视角
|
|
|
|
|
/// </summary>
|
|
|
|
|
public void Transfer() {
|
|
|
|
|
ui.Show(UIType.Mask);
|
|
|
|
|
ui.uiDicts[UIType.Mask].GetComponent<MaskPanel>().OpenMask(0.5f);
|
|
|
|
|
StartCoroutine(Wait(1f, () => {
|
|
|
|
|
cameraManager.SetLookAt(bjz).ChangePosition(0.75f, 56.27f, 10);
|
|
|
|
|
foreach (var obj in needTransferObj)
|
|
|
|
|
{
|
|
|
|
|
obj.transform.position += new Vector3(-12, 0.185f, 0);
|
|
|
|
|
}
|
|
|
|
|
sjz.SetActive(true);
|
|
|
|
|
ui.ShowErrorTip("恭喜通关",60);
|
|
|
|
|
audioManager.PlayEnd();
|
|
|
|
|
ui.ShowTip(dataManager.dialogues[2]);
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
StartCoroutine(Wait(2.5f, () =>
|
|
|
|
|
{
|
|
|
|
|
EduCoderTool.WebConnecter.Singleton.SendResultToWeb(true);
|
|
|
|
|
}));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
IEnumerator Wait(float t, Action action)
|
|
|
|
|
{
|
|
|
|
|
yield return new WaitForSeconds(t);
|
|
|
|
|
action();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|