ui基本完毕,修了一大把的bug
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
// IngredientDrawerUIE
|
||||
[CustomPropertyDrawer(typeof(TriggerOptions))]
|
||||
public class TriggerOptionsPropertyDrawer : PropertyDrawer
|
||||
{
|
||||
private static bool foldout = true;
|
||||
|
||||
// Draw the property inside the given rect
|
||||
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
||||
{
|
||||
// Create property container element.
|
||||
var minimumCollisionForce = property.FindPropertyRelative("minimumCollisionForce");
|
||||
var triggerType = property.FindPropertyRelative("triggerType");
|
||||
var triggerKey = property.FindPropertyRelative("triggerKey");
|
||||
var filterCollisionsByTag = property.FindPropertyRelative("filterCollisionsByTag");
|
||||
var triggerAllowedTags = property.FindPropertyRelative("triggerAllowedTags");
|
||||
|
||||
EditorGUI.indentLevel = 0;
|
||||
foldout = EditorGUILayout.BeginFoldoutHeaderGroup(foldout, label);
|
||||
|
||||
if (foldout)
|
||||
{
|
||||
EditorGUI.indentLevel = 1;
|
||||
EditorGUILayout.PropertyField(triggerType);
|
||||
|
||||
switch (triggerType.enumValueIndex)
|
||||
{
|
||||
case ((int)TriggerType.Collision):
|
||||
EditorGUILayout.PropertyField(minimumCollisionForce);
|
||||
EditorGUILayout.PropertyField(filterCollisionsByTag, new GUIContent("Limit collisions to selected tags?"));
|
||||
if (filterCollisionsByTag.boolValue)
|
||||
{
|
||||
EditorGUILayout.EndFoldoutHeaderGroup();
|
||||
EditorGUILayout.PropertyField(triggerAllowedTags, new GUIContent("Included Tags"));
|
||||
}
|
||||
break;
|
||||
case ((int)TriggerType.Trigger):
|
||||
EditorGUILayout.PropertyField(filterCollisionsByTag);
|
||||
EditorGUILayout.EndFoldoutHeaderGroup();
|
||||
EditorGUILayout.PropertyField(triggerAllowedTags);
|
||||
break;
|
||||
case ((int)TriggerType.Keyboard):
|
||||
EditorGUILayout.PropertyField(triggerKey);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
EditorGUILayout.EndFoldoutHeaderGroup();
|
||||
EditorGUI.indentLevel = 0;
|
||||
}
|
||||
|
||||
// Hack to prevent extra space at top of property drawer. This is due to using EditorGUILayout
|
||||
// in OnGUI, but I don't want to have to manually specify control sizes
|
||||
public override float GetPropertyHeight(SerializedProperty property, GUIContent label) { return 0; }
|
||||
}
|
||||
Reference in New Issue
Block a user