コード例 #1
0
    private static void DrawPropertyUserInput(DataPrototype.Property property, DataPrototype data)
    {
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.PrefixLabel(property.Name);

        if (DoesInputFieldExistForProperty(property))
        {
            QueryPropertyUserInput(property, data);
        }

        EditorGUILayout.EndHorizontal();
    }
コード例 #2
0
    private static DataPrototype.Property GetProtoPropertyUserInput(DataPrototype.Property property, DataPrototype data)
    {
        GUI.enabled = property.DelegatesToPrototype;

        var currentProtoPropertyOwner = property.ProtoProperty == null ? null : property.ProtoProperty.Owner;
        var protoPropertyOwner        = (DataPrototype)EditorGUILayout.ObjectField(currentProtoPropertyOwner, data.GetType(), true);

        if (protoPropertyOwner != null)
        {
            return(protoPropertyOwner.GetProperty(property.Name));
        }

        return(null);
    }
コード例 #3
0
    private static void QueryPropertyUserInput(DataPrototype.Property property, DataPrototype data)
    {
        var input = GetUnityEditorPropertyInputFieldValue(property);

        if (property.DelegatesToPrototype)
        {
            property.ProtoProperty = GetProtoPropertyUserInput(property, data);
        }
        else
        {
            property.Value = input;
        }

        property.DelegatesToPrototype = GetPrototypeDelegationUserInput(property);
    }
コード例 #4
0
 private static bool GetPrototypeDelegationUserInput(DataPrototype.Property property)
 {
     GUI.enabled = true;
     return(EditorGUILayout.Toggle(property.DelegatesToPrototype, GUILayout.Width(PROTOTYPE_DELEGATION_TOGGLE_WIDTH)));
 }
コード例 #5
0
 private static object GetUnityEditorPropertyInputFieldValue(DataPrototype.Property property)
 {
     GUI.enabled = !property.DelegatesToPrototype;
     return(property.Type.GetUnityEditorInputFieldValue(property.Value));
 }
コード例 #6
0
 private static bool DoesInputFieldExistForProperty(DataPrototype.Property property)
 {
     return(property.Type.IsSubtypeOrEqualToOneOf(VALID_PROPERTY_TYPES));
 }