MayHeCome/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/NotZeroAttributeDrawer.cs

49 lines
1.6 KiB
C#
Raw Normal View History

2024-12-18 09:55:34 +00:00
using UnityEngine;
using UnityEditor;
namespace Febucci.Attributes
{
[CustomPropertyDrawer(typeof(NotZeroAttribute))]
public class NotZeroAttributeDrawer : PropertyDrawer
{
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
switch (property.propertyType)
{
case SerializedPropertyType.Integer:
int intValue = property.intValue;
intValue = EditorGUI.IntField(position, label, intValue);
if (intValue != 0)
property.intValue = intValue;
break;
case SerializedPropertyType.Float:
float floatValue = property.floatValue;
floatValue = EditorGUI.FloatField(position, label, floatValue);
if (floatValue != 0)
property.floatValue = floatValue;
break;
case SerializedPropertyType.Vector2:
Vector2 vecValue = property.vector2Value;
vecValue = EditorGUI.Vector2Field(position, label, vecValue);
property.vector2Value = new Vector2(
(vecValue.x != 0 || vecValue.y!=0) ? vecValue.x : property.vector2Value.x,
(vecValue.y != 0 || vecValue.x!=0) ? vecValue.y : property.vector2Value.y);
break;
default:
base.OnGUI(position, property, label);
break;
}
}
}
}