You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

192 lines
4.8 KiB

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public enum GameState
{
Vertical,
DPUpper,
DPMiddle,
DPlower
}
public class GameManager : Singleton<GameManager>
{
public GameObject[] canvas;
public GameObject[] cameras;
public GameObject[] looks;
public GameState curState;
public GameObject curCamera;
private GameObject curCanvas;
public GameObject curLook;
public float timeflag;
public GameObject btns;
protected override void Awake()
{
base.Awake();
curState = GameState.Vertical;
timeflag = 2;
}
private void OnEnable()
{
//timeflag = 0;
//TaskManager.Instance.StartTask();
}
private void Start()
{
foreach (GameObject obj in canvas)
{
obj.SetActive(false);
}
foreach (GameObject obj in cameras)
{
obj.SetActive(false);
}
foreach (GameObject obj in looks)
{
obj.SetActive(false);
}
}
private void Update()
{
SwitchCamera();
}
void SwitchCamera()
{
if (timeflag<=2) {
timeflag += Time.deltaTime;
}
switch (curState)
{
case GameState.Vertical:
if (curCamera && curCamera != cameras[0])
{
curCamera.SetActive(false);
}
curCamera = cameras[0];
if (curCanvas && curCanvas != canvas[0])
{
curCanvas.SetActive(false);
}
curCanvas = canvas[0];
curLook = null;
foreach (GameObject obj in looks)
{
if (obj.activeInHierarchy) {
obj.SetActive(false);
}
}
break;
case GameState.DPUpper:
if (curCamera && curCamera != cameras[1])
{
curCamera.SetActive(false);
}
curCamera = cameras[1];
if (curCanvas && curCanvas != canvas[1])
{
curCanvas.SetActive(false);
}
curCanvas = canvas[1];
if (curLook && curLook != looks[0])
{
curLook.SetActive(false);
}
curLook = looks[0];
break;
case GameState.DPMiddle:
if (curCamera && curCamera != cameras[2])
{
curCamera.SetActive(false);
}
curCamera = cameras[2];
if (curCanvas && curCanvas != canvas[1])
{
curCanvas.SetActive(false);
}
curCanvas = canvas[1];
if (curLook && curLook != looks[1])
{
curLook.SetActive(false);
}
curLook = looks[1];
break;
case GameState.DPlower:
if (curCamera && curCamera != cameras[3])
{
curCamera.SetActive(false);
}
curCamera = cameras[3];
if (curCanvas && curCanvas != canvas[1])
{
curCanvas.SetActive(false);
}
curCanvas = canvas[1];
if (curLook && curLook != looks[2])
{
curLook.SetActive(false);
}
curLook = looks[2];
break;
}
if (timeflag >= 2)
{
curCanvas.SetActive(true);
}
curCamera.SetActive(true);
if (curLook) {
curLook.SetActive(true);
}
}
public void setCurState(int state)
{
int num = 0;
if (curState == GameState.Vertical)
{
num = 0;
}
else if (curState == GameState.DPUpper)
{
num=1;
}
else if (curState == GameState.DPMiddle)
{
num=2;
}
else if (curState == GameState.DPlower)
{
num=3;
}
if (num == state) return;
curCanvas.SetActive(false);
timeflag = 0;
if (state == 0)
{
curState = GameState.Vertical;
btns.SetActive(false);
}
else if (state == 1)
{
curState = GameState.DPUpper;
btns.SetActive(true);
}
else if (state == 2)
{
curState = GameState.DPMiddle;
btns.SetActive(true);
}
else if (state == 3)
{
curState = GameState.DPlower;
btns.SetActive(true);
}
}
}