Beta Release
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace MSCO
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Hauptmenü reagiert über OnMouseEnter/OnMouseDown auf Collider in der 3D-Szene -
|
||||
/// auch durch unser GUI hindurch (z.B. öffnet sich der Changelog). Solange die Maus über
|
||||
/// unserem Fenster ist, werden die Maus-Events der Kameras abgeschaltet (eventMask = 0).
|
||||
/// </summary>
|
||||
public static class MenuInputBlocker
|
||||
{
|
||||
static readonly Dictionary<Camera, int> savedMasks = new Dictionary<Camera, int>();
|
||||
|
||||
public static bool IsBlocked { get { return savedMasks.Count > 0; } }
|
||||
|
||||
public static void SetBlocked(bool blocked)
|
||||
{
|
||||
if (blocked == IsBlocked) return;
|
||||
|
||||
if (blocked)
|
||||
{
|
||||
foreach (Camera cam in Camera.allCameras)
|
||||
{
|
||||
savedMasks[cam] = cam.eventMask;
|
||||
cam.eventMask = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (KeyValuePair<Camera, int> kv in savedMasks)
|
||||
if (kv.Key != null) kv.Key.eventMask = kv.Value;
|
||||
savedMasks.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user