35 lines
770 B
C#
35 lines
770 B
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public enum InputMode
|
|
{
|
|
Camera,
|
|
ObjectDragging,
|
|
UI,
|
|
Gizmo,
|
|
}
|
|
|
|
public class InputModeManager
|
|
{
|
|
private static readonly List<InputMode> _list = new List<InputMode>();
|
|
|
|
public static InputMode Current => _list.Count > 0 ? _list[_list.Count - 1] : InputMode.Camera;
|
|
|
|
public static void Push(InputMode mode) => _list.Add(mode);
|
|
|
|
public static void Pop(InputMode mode)
|
|
{
|
|
if (_list.Count > 0) _list.Remove(mode);
|
|
}
|
|
|
|
public static bool Has(InputMode mode) => _list.Contains(mode);
|
|
|
|
|
|
public static bool Is(InputMode mode) => Current == mode;
|
|
|
|
public static void debugCurrentList()
|
|
{
|
|
foreach (InputMode mode in _list)
|
|
Debug.Log(mode);
|
|
}
|
|
} |