mirror of
https://github.com/codewriter-packages/Tri-Inspector.git
synced 2025-01-22 00:08:51 -05:00
Add property hide and disable processors
This commit is contained in:
parent
356b11e251
commit
b58fe280b5
3
Editor.Extras/Processors.meta
Normal file
3
Editor.Extras/Processors.meta
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3746e0c31b82450b804ea460d753f4fa
|
||||||
|
timeCreated: 1641384540
|
25
Editor.Extras/Processors/DisableInPlayModeProcessor.cs
Normal file
25
Editor.Extras/Processors/DisableInPlayModeProcessor.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
using Editor.Extras.Processors;
|
||||||
|
using TriInspector;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
[assembly: RegisterTriPropertyDisableProcessor(typeof(DisableInPlayModeProcessor))]
|
||||||
|
[assembly: RegisterTriPropertyDisableProcessor(typeof(EnableInPlayModeProcessor))]
|
||||||
|
|
||||||
|
namespace Editor.Extras.Processors
|
||||||
|
{
|
||||||
|
public class DisableInPlayModeProcessor : TriPropertyDisableProcessor<DisableInPlayModeAttribute>
|
||||||
|
{
|
||||||
|
public override bool IsDisabled(TriProperty property)
|
||||||
|
{
|
||||||
|
return Application.isPlaying;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EnableInPlayModeProcessor : TriPropertyDisableProcessor<EnableInPlayModeAttribute>
|
||||||
|
{
|
||||||
|
public override bool IsDisabled(TriProperty property)
|
||||||
|
{
|
||||||
|
return !Application.isPlaying;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 397dcddedf9a4f91931e5bdc40c668aa
|
||||||
|
timeCreated: 1641385800
|
25
Editor.Extras/Processors/HideInPlayModeProcessor.cs
Normal file
25
Editor.Extras/Processors/HideInPlayModeProcessor.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
using Editor.Extras.Processors;
|
||||||
|
using TriInspector;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
[assembly: RegisterTriPropertyHideProcessor(typeof(HideInPlayModeProcessor))]
|
||||||
|
[assembly: RegisterTriPropertyHideProcessor(typeof(ShowInPlayModeProcessor))]
|
||||||
|
|
||||||
|
namespace Editor.Extras.Processors
|
||||||
|
{
|
||||||
|
public class HideInPlayModeProcessor : TriPropertyHideProcessor<HideInPlayModeAttribute>
|
||||||
|
{
|
||||||
|
public override bool IsHidden(TriProperty property)
|
||||||
|
{
|
||||||
|
return Application.isPlaying;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ShowInPlayModeProcessor : TriPropertyHideProcessor<ShowInPlayModeAttribute>
|
||||||
|
{
|
||||||
|
public override bool IsHidden(TriProperty property)
|
||||||
|
{
|
||||||
|
return !Application.isPlaying;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
3
Editor.Extras/Processors/HideInPlayModeProcessor.cs.meta
Normal file
3
Editor.Extras/Processors/HideInPlayModeProcessor.cs.meta
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 99642f3dada346b48762044cabacc69e
|
||||||
|
timeCreated: 1641384551
|
@ -26,4 +26,26 @@ namespace TriInspector
|
|||||||
|
|
||||||
public Type DrawerType { get; }
|
public Type DrawerType { get; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
|
||||||
|
public class RegisterTriPropertyHideProcessor : Attribute
|
||||||
|
{
|
||||||
|
public RegisterTriPropertyHideProcessor(Type processorType)
|
||||||
|
{
|
||||||
|
ProcessorType = processorType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Type ProcessorType { get; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
|
||||||
|
public class RegisterTriPropertyDisableProcessor : Attribute
|
||||||
|
{
|
||||||
|
public RegisterTriPropertyDisableProcessor(Type processorType)
|
||||||
|
{
|
||||||
|
ProcessorType = processorType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Type ProcessorType { get; }
|
||||||
|
}
|
||||||
}
|
}
|
@ -46,7 +46,7 @@ namespace TriInspector.Elements
|
|||||||
|
|
||||||
var oldEnabled = GUI.enabled;
|
var oldEnabled = GUI.enabled;
|
||||||
|
|
||||||
GUI.enabled = _property.IsEnabled;
|
GUI.enabled &= _property.IsEnabled;
|
||||||
base.OnGUI(position);
|
base.OnGUI(position);
|
||||||
GUI.enabled = oldEnabled;
|
GUI.enabled = oldEnabled;
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,6 @@ namespace TriInspector
|
|||||||
private List<TriProperty> _childrenProperties;
|
private List<TriProperty> _childrenProperties;
|
||||||
|
|
||||||
private GUIContent _displayNameBackingField;
|
private GUIContent _displayNameBackingField;
|
||||||
private bool? _isReadOnlyBackingField;
|
|
||||||
|
|
||||||
internal TriProperty(
|
internal TriProperty(
|
||||||
TriPropertyTree propertyTree,
|
TriPropertyTree propertyTree,
|
||||||
@ -67,17 +66,39 @@ namespace TriInspector
|
|||||||
}
|
}
|
||||||
|
|
||||||
[PublicAPI]
|
[PublicAPI]
|
||||||
public bool IsVisible => true;
|
public bool IsVisible
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
foreach (var processor in _definition.HideProcessors)
|
||||||
|
{
|
||||||
|
if (processor.IsHidden(this))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[PublicAPI]
|
[PublicAPI]
|
||||||
public bool IsEnabled
|
public bool IsEnabled
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (IsReadOnly)
|
if (_definition.IsReadOnly)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach (var processor in _definition.DisableProcessors)
|
||||||
|
{
|
||||||
|
if (processor.IsDisabled(this))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -143,20 +164,6 @@ namespace TriInspector
|
|||||||
[PublicAPI]
|
[PublicAPI]
|
||||||
public TriPropertyTree PropertyTree { get; }
|
public TriPropertyTree PropertyTree { get; }
|
||||||
|
|
||||||
[PublicAPI]
|
|
||||||
public bool IsReadOnly
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (_isReadOnlyBackingField == null)
|
|
||||||
{
|
|
||||||
_isReadOnlyBackingField = _definition.IsReadOnly || _parent.IsReadOnly;
|
|
||||||
}
|
|
||||||
|
|
||||||
return _isReadOnlyBackingField.Value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ApplyChildValueModifications(int targetIndex)
|
public void ApplyChildValueModifications(int targetIndex)
|
||||||
{
|
{
|
||||||
var parentValue = _parent.GetValue(targetIndex);
|
var parentValue = _parent.GetValue(targetIndex);
|
||||||
@ -358,7 +365,6 @@ namespace TriInspector
|
|||||||
public interface ITriPropertyParent
|
public interface ITriPropertyParent
|
||||||
{
|
{
|
||||||
object GetValue(int targetIndex);
|
object GetValue(int targetIndex);
|
||||||
bool IsReadOnly { get; }
|
|
||||||
|
|
||||||
void ApplyChildValueModifications(int targetIndex);
|
void ApplyChildValueModifications(int targetIndex);
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,8 @@ namespace TriInspector
|
|||||||
[CanBeNull] private readonly Action<object, object> _valueSetter;
|
[CanBeNull] private readonly Action<object, object> _valueSetter;
|
||||||
|
|
||||||
private IReadOnlyList<TriCustomDrawer> _drawersBackingField;
|
private IReadOnlyList<TriCustomDrawer> _drawersBackingField;
|
||||||
|
private IReadOnlyList<TriPropertyHideProcessor> _hideProcessorsBackingField;
|
||||||
|
private IReadOnlyList<TriPropertyDisableProcessor> _disableProcessorsBackingField;
|
||||||
|
|
||||||
internal TriPropertyDefinition(int order, FieldInfo fi)
|
internal TriPropertyDefinition(int order, FieldInfo fi)
|
||||||
: this(order, fi.Name, fi.FieldType, fi.GetValue, fi.SetValue, fi.GetCustomAttributes(), false)
|
: this(order, fi.Name, fi.FieldType, fi.GetValue, fi.SetValue, fi.GetCustomAttributes(), false)
|
||||||
@ -68,6 +70,58 @@ namespace TriInspector
|
|||||||
|
|
||||||
public bool IsArray { get; }
|
public bool IsArray { get; }
|
||||||
|
|
||||||
|
public IReadOnlyList<TriPropertyHideProcessor> HideProcessors
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_hideProcessorsBackingField == null)
|
||||||
|
{
|
||||||
|
_hideProcessorsBackingField = (
|
||||||
|
from attribute in Attributes
|
||||||
|
from processor in TriDrawersUtilities.AllHideProcessors
|
||||||
|
where TriDrawersUtilities.IsHideProcessorFor(processor.ProcessorType, attribute)
|
||||||
|
select CreateHideProcessor(processor, attribute)
|
||||||
|
).ToList();
|
||||||
|
|
||||||
|
static TriPropertyHideProcessor CreateHideProcessor(RegisterTriPropertyHideProcessor processor,
|
||||||
|
Attribute attribute)
|
||||||
|
{
|
||||||
|
var instance = (TriPropertyHideProcessor) Activator.CreateInstance(processor.ProcessorType);
|
||||||
|
instance.RawAttribute = attribute;
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return _hideProcessorsBackingField;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public IReadOnlyList<TriPropertyDisableProcessor> DisableProcessors
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_disableProcessorsBackingField == null)
|
||||||
|
{
|
||||||
|
_disableProcessorsBackingField = (
|
||||||
|
from attribute in Attributes
|
||||||
|
from processor in TriDrawersUtilities.AllDisableProcessors
|
||||||
|
where TriDrawersUtilities.IsDisableProcessorFor(processor.ProcessorType, attribute)
|
||||||
|
select CreateDisableProcessor(processor, attribute)
|
||||||
|
).ToList();
|
||||||
|
|
||||||
|
static TriPropertyDisableProcessor CreateDisableProcessor(RegisterTriPropertyDisableProcessor processor,
|
||||||
|
Attribute attribute)
|
||||||
|
{
|
||||||
|
var instance = (TriPropertyDisableProcessor) Activator.CreateInstance(processor.ProcessorType);
|
||||||
|
instance.RawAttribute = attribute;
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return _disableProcessorsBackingField;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public IReadOnlyList<TriCustomDrawer> Drawers
|
public IReadOnlyList<TriCustomDrawer> Drawers
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
16
Editor/TriPropertyDisableProcessor.cs
Normal file
16
Editor/TriPropertyDisableProcessor.cs
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace TriInspector
|
||||||
|
{
|
||||||
|
public abstract class TriPropertyDisableProcessor
|
||||||
|
{
|
||||||
|
internal Attribute RawAttribute { get; set; }
|
||||||
|
|
||||||
|
public abstract bool IsDisabled(TriProperty property);
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract class TriPropertyDisableProcessor<TAttribute> : TriPropertyDisableProcessor
|
||||||
|
where TAttribute : DisableBaseAttribute
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
3
Editor/TriPropertyDisableProcessor.cs.meta
Normal file
3
Editor/TriPropertyDisableProcessor.cs.meta
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2c01ea19c766412ba28df648a968abba
|
||||||
|
timeCreated: 1641385496
|
16
Editor/TriPropertyHideProcessor.cs
Normal file
16
Editor/TriPropertyHideProcessor.cs
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace TriInspector
|
||||||
|
{
|
||||||
|
public abstract class TriPropertyHideProcessor
|
||||||
|
{
|
||||||
|
internal Attribute RawAttribute { get; set; }
|
||||||
|
|
||||||
|
public abstract bool IsHidden(TriProperty property);
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract class TriPropertyHideProcessor<TAttribute> : TriPropertyHideProcessor
|
||||||
|
where TAttribute : HideBaseAttribute
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
3
Editor/TriPropertyHideProcessor.cs.meta
Normal file
3
Editor/TriPropertyHideProcessor.cs.meta
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: de11bb184a7d4c7f9c6a4f2a75756278
|
||||||
|
timeCreated: 1641384283
|
@ -44,7 +44,6 @@ namespace TriInspector
|
|||||||
public TriPropertyTree Root { get; }
|
public TriPropertyTree Root { get; }
|
||||||
|
|
||||||
object ITriPropertyParent.GetValue(int targetIndex) => TargetObjects[targetIndex];
|
object ITriPropertyParent.GetValue(int targetIndex) => TargetObjects[targetIndex];
|
||||||
bool ITriPropertyParent.IsReadOnly => false;
|
|
||||||
|
|
||||||
void ITriPropertyParent.ApplyChildValueModifications(int targetIndex)
|
void ITriPropertyParent.ApplyChildValueModifications(int targetIndex)
|
||||||
{
|
{
|
||||||
|
@ -10,6 +10,8 @@ namespace TriInspector.Utilities
|
|||||||
private static IDictionary<Type, TriGroupDrawer> _allGroupDrawersCacheBackingField;
|
private static IDictionary<Type, TriGroupDrawer> _allGroupDrawersCacheBackingField;
|
||||||
private static IReadOnlyList<RegisterTriDrawerAttribute> _allAttributeDrawerTypesBackingField;
|
private static IReadOnlyList<RegisterTriDrawerAttribute> _allAttributeDrawerTypesBackingField;
|
||||||
private static IReadOnlyList<RegisterTriDrawerAttribute> _allValueDrawerTypesBackingField;
|
private static IReadOnlyList<RegisterTriDrawerAttribute> _allValueDrawerTypesBackingField;
|
||||||
|
private static IReadOnlyList<RegisterTriPropertyHideProcessor> _allHideProcessorTypesBackingField;
|
||||||
|
private static IReadOnlyList<RegisterTriPropertyDisableProcessor> _allDisableProcessorTypesBackingField;
|
||||||
|
|
||||||
private static IDictionary<Type, TriGroupDrawer> AllGroupDrawersCache
|
private static IDictionary<Type, TriGroupDrawer> AllGroupDrawersCache
|
||||||
{
|
{
|
||||||
@ -68,6 +70,42 @@ namespace TriInspector.Utilities
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static IReadOnlyList<RegisterTriPropertyHideProcessor> AllHideProcessors
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_allHideProcessorTypesBackingField == null)
|
||||||
|
{
|
||||||
|
_allHideProcessorTypesBackingField = (
|
||||||
|
from asm in TriReflectionUtilities.Assemblies
|
||||||
|
from attr in asm.GetCustomAttributes<RegisterTriPropertyHideProcessor>()
|
||||||
|
where IsHideProcessorType(attr.ProcessorType, out _)
|
||||||
|
select attr
|
||||||
|
).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
return _allHideProcessorTypesBackingField;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IReadOnlyList<RegisterTriPropertyDisableProcessor> AllDisableProcessors
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_allDisableProcessorTypesBackingField == null)
|
||||||
|
{
|
||||||
|
_allDisableProcessorTypesBackingField = (
|
||||||
|
from asm in TriReflectionUtilities.Assemblies
|
||||||
|
from attr in asm.GetCustomAttributes<RegisterTriPropertyDisableProcessor>()
|
||||||
|
where IsDisableProcessorType(attr.ProcessorType, out _)
|
||||||
|
select attr
|
||||||
|
).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
return _allDisableProcessorTypesBackingField;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static TriPropertyCollectionBaseElement TryCreateGroupElementFor(DeclareGroupBaseAttribute attribute)
|
public static TriPropertyCollectionBaseElement TryCreateGroupElementFor(DeclareGroupBaseAttribute attribute)
|
||||||
{
|
{
|
||||||
if (!AllGroupDrawersCache.TryGetValue(attribute.GetType(), out var attr))
|
if (!AllGroupDrawersCache.TryGetValue(attribute.GetType(), out var attr))
|
||||||
@ -115,40 +153,65 @@ namespace TriInspector.Utilities
|
|||||||
|
|
||||||
private static bool IsValueDrawerType(Type type, out Type valueType)
|
private static bool IsValueDrawerType(Type type, out Type valueType)
|
||||||
{
|
{
|
||||||
valueType = null;
|
return TryGetBaseGenericTargetType(type, typeof(TriValueDrawer<>), out valueType);
|
||||||
|
|
||||||
if (type.IsAbstract)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type.GetConstructor(Type.EmptyTypes) == null)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
var drawerType = type.BaseType;
|
|
||||||
|
|
||||||
if (drawerType == null)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!drawerType.IsGenericType)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (drawerType.GetGenericTypeDefinition() != typeof(TriValueDrawer<>))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
valueType = drawerType.GetGenericArguments()[0];
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool IsAttributeDrawerType(Type type, out Type attributeType)
|
private static bool IsAttributeDrawerType(Type type, out Type attributeType)
|
||||||
|
{
|
||||||
|
return TryGetBaseGenericTargetType(type, typeof(TriAttributeDrawer<>), out attributeType);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool IsHideProcessorType(Type type, out Type attributeType)
|
||||||
|
{
|
||||||
|
return TryGetBaseGenericTargetType(type, typeof(TriPropertyHideProcessor<>), out attributeType);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool IsDisableProcessorType(Type type, out Type attributeType)
|
||||||
|
{
|
||||||
|
return TryGetBaseGenericTargetType(type, typeof(TriPropertyDisableProcessor<>), out attributeType);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsValueDrawerFor(Type drawerType, Type valueType)
|
||||||
|
{
|
||||||
|
if (IsValueDrawerType(drawerType, out var valType))
|
||||||
|
{
|
||||||
|
return valType == valueType;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsAttributeDrawerFor(Type drawerType, Attribute attribute)
|
||||||
|
{
|
||||||
|
if (IsAttributeDrawerType(drawerType, out var attributeType))
|
||||||
|
{
|
||||||
|
return attributeType == attribute.GetType();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsHideProcessorFor(Type processorType, Attribute attribute)
|
||||||
|
{
|
||||||
|
if (IsHideProcessorType(processorType, out var attributeType))
|
||||||
|
{
|
||||||
|
return attributeType == attribute.GetType();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsDisableProcessorFor(Type processorType, Attribute attribute)
|
||||||
|
{
|
||||||
|
if (IsDisableProcessorType(processorType, out var attributeType))
|
||||||
|
{
|
||||||
|
return attributeType == attribute.GetType();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool TryGetBaseGenericTargetType(Type type, Type expectedGenericType, out Type attributeType)
|
||||||
{
|
{
|
||||||
attributeType = null;
|
attributeType = null;
|
||||||
|
|
||||||
@ -174,7 +237,7 @@ namespace TriInspector.Utilities
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (drawerType.GetGenericTypeDefinition() != typeof(TriAttributeDrawer<>))
|
if (drawerType.GetGenericTypeDefinition() != expectedGenericType)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -182,25 +245,5 @@ namespace TriInspector.Utilities
|
|||||||
attributeType = drawerType.GetGenericArguments()[0];
|
attributeType = drawerType.GetGenericArguments()[0];
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsValueDrawerFor(Type drawerType, Type valueType)
|
|
||||||
{
|
|
||||||
if (IsValueDrawerType(drawerType, out var valType))
|
|
||||||
{
|
|
||||||
return valType == valueType;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool IsAttributeDrawerFor(Type drawerType, Attribute attribute)
|
|
||||||
{
|
|
||||||
if (IsAttributeDrawerType(drawerType, out var attributeType))
|
|
||||||
{
|
|
||||||
return attributeType == attribute.GetType();
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
8
Runtime/Attributes/DisableBaseAttribute.cs
Normal file
8
Runtime/Attributes/DisableBaseAttribute.cs
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace TriInspector
|
||||||
|
{
|
||||||
|
public abstract class DisableBaseAttribute : Attribute
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
3
Runtime/Attributes/DisableBaseAttribute.cs.meta
Normal file
3
Runtime/Attributes/DisableBaseAttribute.cs.meta
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 62ef6624296046438d41bb5ef66cc422
|
||||||
|
timeCreated: 1641386025
|
11
Runtime/Attributes/DisableInPlayModeAttribute.cs
Normal file
11
Runtime/Attributes/DisableInPlayModeAttribute.cs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
|
namespace TriInspector
|
||||||
|
{
|
||||||
|
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Method)]
|
||||||
|
[Conditional("UNITY_EDITOR")]
|
||||||
|
public class DisableInPlayModeAttribute : DisableBaseAttribute
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
3
Runtime/Attributes/DisableInPlayModeAttribute.cs.meta
Normal file
3
Runtime/Attributes/DisableInPlayModeAttribute.cs.meta
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fe853178832f4dde824c372a06a22ae0
|
||||||
|
timeCreated: 1641385956
|
11
Runtime/Attributes/EnableInPlayModeAttribute.cs
Normal file
11
Runtime/Attributes/EnableInPlayModeAttribute.cs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
|
namespace TriInspector
|
||||||
|
{
|
||||||
|
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Method)]
|
||||||
|
[Conditional("UNITY_EDITOR")]
|
||||||
|
public class EnableInPlayModeAttribute : DisableBaseAttribute
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
3
Runtime/Attributes/EnableInPlayModeAttribute.cs.meta
Normal file
3
Runtime/Attributes/EnableInPlayModeAttribute.cs.meta
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9dc8b9775fe6475f8d9df0fe00e15c25
|
||||||
|
timeCreated: 1641385940
|
8
Runtime/Attributes/HideBaseAttribute.cs
Normal file
8
Runtime/Attributes/HideBaseAttribute.cs
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace TriInspector
|
||||||
|
{
|
||||||
|
public abstract class HideBaseAttribute : Attribute
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
3
Runtime/Attributes/HideBaseAttribute.cs.meta
Normal file
3
Runtime/Attributes/HideBaseAttribute.cs.meta
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ff02ae4b7c9a4f2598212bef121bb141
|
||||||
|
timeCreated: 1641386002
|
11
Runtime/Attributes/HideInPlayModeAttribute.cs
Normal file
11
Runtime/Attributes/HideInPlayModeAttribute.cs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
|
namespace TriInspector
|
||||||
|
{
|
||||||
|
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Method)]
|
||||||
|
[Conditional("UNITY_EDITOR")]
|
||||||
|
public class HideInPlayModeAttribute : HideBaseAttribute
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
3
Runtime/Attributes/HideInPlayModeAttribute.cs.meta
Normal file
3
Runtime/Attributes/HideInPlayModeAttribute.cs.meta
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6686c4df436342e8a75b5ace13a2c590
|
||||||
|
timeCreated: 1641385927
|
11
Runtime/Attributes/ShowInPlayModeAttribute.cs
Normal file
11
Runtime/Attributes/ShowInPlayModeAttribute.cs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
|
namespace TriInspector
|
||||||
|
{
|
||||||
|
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Method)]
|
||||||
|
[Conditional("UNITY_EDITOR")]
|
||||||
|
public class ShowInPlayModeAttribute : HideBaseAttribute
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
3
Runtime/Attributes/ShowInPlayModeAttribute.cs.meta
Normal file
3
Runtime/Attributes/ShowInPlayModeAttribute.cs.meta
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1129642ac27240c8844f2865f1d38e92
|
||||||
|
timeCreated: 1641384123
|
Loading…
Reference in New Issue
Block a user