55 lines
1.5 KiB
C#
55 lines
1.5 KiB
C#
|
using System;
|
|||
|
using UnityEngine;
|
|||
|
|
|||
|
namespace NeoFPS
|
|||
|
{
|
|||
|
[HelpURL("https://docs.neofps.com/manual/hudref-mb-hudhider.html")]
|
|||
|
public class HudHider : MonoBehaviour
|
|||
|
{
|
|||
|
private static HudHider s_Instance = null;
|
|||
|
|
|||
|
private bool m_CameraHide = false;
|
|||
|
private bool m_ManualHide = false;
|
|||
|
|
|||
|
private void Awake()
|
|||
|
{
|
|||
|
s_Instance = this;
|
|||
|
|
|||
|
FirstPersonCameraBase.onCurrentCameraChanged += OnCurrentCameraChanged;
|
|||
|
OnCurrentCameraChanged(FirstPersonCameraBase.current);
|
|||
|
}
|
|||
|
|
|||
|
private void OnDestroy()
|
|||
|
{
|
|||
|
FirstPersonCameraBase.onCurrentCameraChanged -= OnCurrentCameraChanged;
|
|||
|
|
|||
|
if (s_Instance == this)
|
|||
|
s_Instance = null;
|
|||
|
}
|
|||
|
|
|||
|
private void OnCurrentCameraChanged(FirstPersonCameraBase cam)
|
|||
|
{
|
|||
|
m_CameraHide = (cam == null);
|
|||
|
gameObject.SetActive(!m_CameraHide && !m_ManualHide);
|
|||
|
}
|
|||
|
|
|||
|
public static void HideHUD()
|
|||
|
{
|
|||
|
if (s_Instance != null)
|
|||
|
{
|
|||
|
s_Instance.m_ManualHide = true;
|
|||
|
s_Instance.gameObject.SetActive(!s_Instance.m_CameraHide && !s_Instance.m_ManualHide);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public static void ShowHUD()
|
|||
|
{
|
|||
|
if (s_Instance != null)
|
|||
|
{
|
|||
|
s_Instance.m_ManualHide = false;
|
|||
|
s_Instance.gameObject.SetActive(!s_Instance.m_CameraHide && !s_Instance.m_ManualHide);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|