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
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);
|
|
}
|
|
}
|
|
|
|
}
|