|
|
|
|
|
|
|
|
|
// namespace TNode.Editor{
|
|
|
|
|
// [CustomPropertyDrawer(typeof(BlackboardData))]
|
|
|
|
|
// public class BlackboardDataPropertyDrawer:PropertyDrawer{
|
|
|
|
|
// public float height = 0;
|
|
|
|
|
// public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
|
|
|
|
// {
|
|
|
|
|
// // Using BeginProperty / EndProperty on the parent property means that
|
|
|
|
|
// // prefab override logic works on the entire property.
|
|
|
|
|
// var to = property.serializedObject.targetObject;
|
|
|
|
|
//
|
|
|
|
|
// if (to is RuntimeGraph runtimeGraph){
|
|
|
|
|
// var blackboardData = property.boxedValue;
|
|
|
|
|
// var graphType = runtimeGraph.graphData.GetType();
|
|
|
|
|
//
|
|
|
|
|
// Debug.Log(blackboardData);
|
|
|
|
|
//
|
|
|
|
|
// if (blackboardData == null || blackboardData.GetType()==typeof(BlackboardData))
|
|
|
|
|
// { blackboardData= NodeEditorExtensions.GetAppropriateBlackboardData(graphType);
|
|
|
|
|
// property.boxedValue = blackboardData;
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// var posy = position.y;
|
|
|
|
|
// EditorGUI.BeginProperty(position, label, property);
|
|
|
|
|
//
|
|
|
|
|
// // Draw label
|
|
|
|
|
// EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), label);
|
|
|
|
|
// height = EditorGUIUtility.singleLineHeight;
|
|
|
|
|
//
|
|
|
|
|
// // Don't make child fields be indented
|
|
|
|
|
// var indent = EditorGUI.indentLevel;
|
|
|
|
|
// EditorGUI.indentLevel = 0;
|
|
|
|
|
//
|
|
|
|
|
// //find the blackboard data
|
|
|
|
|
//
|
|
|
|
|
// var blackboardDataFields = blackboardData.GetType().GetFields();
|
|
|
|
|
// posy += EditorGUIUtility.singleLineHeight;
|
|
|
|
|
// foreach (var blackboardDataField in blackboardDataFields){
|
|
|
|
|
// var newPosition = new Rect(position.x, posy, position.width, EditorGUIUtility.singleLineHeight);
|
|
|
|
|
// EditorGUI.PropertyField(newPosition, property.FindPropertyRelative(blackboardDataField.Name), new GUIContent(blackboardDataField.Name));
|
|
|
|
|
// posy += EditorGUIUtility.singleLineHeight;
|
|
|
|
|
// height+=EditorGUIUtility.singleLineHeight;
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// // Set indent back to what it was
|
|
|
|
|
// EditorGUI.indentLevel = indent;
|
|
|
|
|
//
|
|
|
|
|
// EditorGUI.EndProperty();
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
// public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
|
|
|
|
|
// {
|
|
|
|
|
// return base.GetPropertyHeight(property, label) + height;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|