38 lines
1.2 KiB
C#
38 lines
1.2 KiB
C#
|
using UnityEngine;
|
|||
|
using UnityEngine.UI;
|
|||
|
using System.Collections;
|
|||
|
using System;
|
|||
|
#if UNITY_EDITOR
|
|||
|
using UnityEditor;
|
|||
|
#endif
|
|||
|
|
|||
|
namespace MoreMountains.Tools
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// An attribute to conditionnally hide fields based on the current selection in an enum.
|
|||
|
/// Usage : [MMEnumCondition("rotationMode", (int)RotationMode.LookAtTarget, (int)RotationMode.RotateToAngles)]
|
|||
|
/// </summary>
|
|||
|
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Class | AttributeTargets.Struct, Inherited = true)]
|
|||
|
public class MMEnumConditionAttribute : PropertyAttribute
|
|||
|
{
|
|||
|
public string ConditionEnum = "";
|
|||
|
public bool Hidden = false;
|
|||
|
|
|||
|
BitArray bitArray = new BitArray(32);
|
|||
|
public bool ContainsBitFlag(int enumValue)
|
|||
|
{
|
|||
|
return bitArray.Get(enumValue);
|
|||
|
}
|
|||
|
|
|||
|
public MMEnumConditionAttribute(string conditionBoolean, params int[] enumValues)
|
|||
|
{
|
|||
|
this.ConditionEnum = conditionBoolean;
|
|||
|
this.Hidden = true;
|
|||
|
|
|||
|
for (int i = 0; i < enumValues.Length; i++)
|
|||
|
{
|
|||
|
bitArray.Set(enumValues[i], true);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|