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.
77 lines
1.8 KiB
77 lines
1.8 KiB
using DG.Tweening;
|
|
using UnityEngine;
|
|
|
|
public class CoverCamera : MonoBehaviour
|
|
{
|
|
private static CoverCamera instance;
|
|
|
|
private static int CoverCnt = 0;
|
|
|
|
private GameObject goCover;
|
|
private DOTweenAnimation dtaRotate;
|
|
|
|
public static void Init()
|
|
{
|
|
if (Instance != null && instance.goCover == null)
|
|
{
|
|
instance.goCover = instance.gameObject;
|
|
instance.dtaRotate = instance.transform.GetChild(0).GetChild(0).GetComponent<DOTweenAnimation>();
|
|
}
|
|
}
|
|
|
|
public static void SetCamera(Camera camui)
|
|
{
|
|
instance.GetComponent<Canvas>().worldCamera = camui;
|
|
}
|
|
|
|
// 커버 상태.
|
|
public static bool IsOn() => CoverCnt > 0;
|
|
|
|
// 커버 켜기.
|
|
public static void Hold()
|
|
{
|
|
CoverCnt++;
|
|
if (!instance.goCover.activeSelf)
|
|
{
|
|
instance.dtaRotate.DOPlay();
|
|
instance.goCover.SetActive(true);
|
|
}
|
|
}
|
|
|
|
// 커버 끄기.
|
|
public static void Release()
|
|
{
|
|
CoverCnt--;
|
|
if (CoverCnt < 0)
|
|
CoverCnt = 0;
|
|
if (CoverCnt <= 0 && instance.goCover.activeSelf)
|
|
{
|
|
instance.dtaRotate.DOPause();
|
|
instance.goCover.SetActive(false);
|
|
}
|
|
}
|
|
|
|
public static void Reset()
|
|
{
|
|
CoverCnt = 0;
|
|
instance.goCover.SetActive(false);
|
|
}
|
|
|
|
public static CoverCamera Instance
|
|
{
|
|
get
|
|
{
|
|
if (instance == null)
|
|
{
|
|
instance = FindObjectOfType(typeof(CoverCamera)) as CoverCamera;
|
|
|
|
if (instance == null)
|
|
{
|
|
instance = Instantiate(Resources.Load<CoverCamera>("CoverCamera"));
|
|
DontDestroyOnLoad(instance.gameObject);
|
|
}
|
|
}
|
|
return instance;
|
|
}
|
|
}
|
|
}
|