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

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