Namespace: | Sirenix.OdinInspector.Editor |
Assembly: | Sirenix.OdinInspector.Editor |
public abstract class PropertyValueEntry<TValue> : PropertyValueEntry, IPropertyValueEntry<TValue>, IPropertyValueEntry, IDisposable, IValueEntryActualValueSetter<TValue>, IValueEntryActualValueSetter
The type of the value.
protected PropertyValueEntry()
protected static readonly IAtomHandler<TValue> AtomHandler
public static readonly Func<TValue, TValue, bool> EqualityComparer
protected static readonly bool ValueIsMarkedAtomic
protected static readonly bool ValueIsPrimitive
protected static readonly bool ValueIsValueType
protected TValue[] AtomValuesArray { get; }
protected TValue[] InternalValuesArray { get; }
public override bool IsMarkedAtomic { get; }
protected TValue[] OriginalAtomValuesArray { get; }
protected TValue[] OriginalValuesArray { get; }
A strongly typed smart value that represents the first element of the value entry's value collection, but has "smart logic" for setting the value that detects relevant changes and applies them in parallel.
This lets you often just use the smart value instead of having to deal with the tedium of multiple parallel values.
public TValue SmartValue { get; set; }
protected bool ValueIsUnityObject { get; }
public IPropertyValueCollection<TValue> Values { get; }
A weakly typed smart value that represents the first element of the value entry's value collection, but has "smart logic" for setting the value that detects relevant changes and applies them in parallel.
This lets you often just use the smart value instead of having to deal with the tedium of multiple parallel values.
public override object WeakSmartValue { get; set; }
public override sealed IPropertyValueCollection WeakValues { get; }
protected override void Initialize()
protected abstract void SetActualValueImplementation(int index, TValue value)
System.Int32 | index | |
TValue | value |
Determines whether the value at the given selection index is different from the given prefab value, as is relevant for prefab modification checks.
If the value is a reference type, null and type difference is checked. If value is a value type, a comparer from GetEqualityComparerDelegate<T>() is used.
This method is best ignored unless you know what you are doing.
public bool ValueIsPrefabDifferent(TValue value, int index)
TValue | value | The value to check differences against. |
System.Int32 | index | The selection index to compare against. |
System.Boolean |
Determines whether the value at the given selection index is different from the given prefab value, as is relevant for prefab modification checks.
If the value is a reference type, null and type difference is checked. If value is a value type, a comparer from GetEqualityComparerDelegate<T>() is used.
This method is best ignored unless you know what you are doing.
public override bool ValueIsPrefabDifferent(object value, int index)
System.Object | value | The value to check differences against. |
System.Int32 | index | The selection index to compare against. |
System.Boolean |
Checks whether the values in this value entry are equal to the values in another value entry.
Note, both value entries must have the same value type, and must represent values that are .NET value types.
public override bool ValueTypeValuesAreEqual(IPropertyValueEntry other)
Sirenix.OdinInspector.Editor.IPropertyValueEntry | other |
System.Boolean |