Exemple #1
0
    private bool Initialize()
    {
        Editor = BehaviourTreeEditor.GetInstance();
        if (!Editor)
        {
            EditorGUILayout.HelpBox("Unable to get BehaviourTreeEditor instance!", MessageType.Error);
            return(false);
        }

        Parameters = Editor.GetCurrentAsset().Parameters;

        if (!Editor.CanEditNode(Node))
        {
            EditorGUILayout.HelpBox("Unable to edit this node!", MessageType.Error);
            return(false);
        }

        return(true);
    }
    private bool Initialize(ref Rect position, SerializedProperty property, GUIContent label)
    {
        position.height = base.GetPropertyHeight(property, label);

        Editor = BehaviourTreeEditor.GetInstance();
        if (!Editor)
        {
            EditorGUI.HelpBox(position, "Unable to get BehaviourTreeEditor instance!", MessageType.Error);
            return(false);
        }

        Parameters = Editor.GetCurrentAsset().Parameters.Where(p => p.HoldType.Type == fieldInfo.FieldType).ToList();

        AsNode = (BehaviourTreeNode)property.serializedObject.targetObject;

        Typename = GenericParameter.GetDisplayedName(fieldInfo.FieldType);
        if (Typename == null)
        {
            EditorGUI.HelpBox(position, string.Format("Type {0} is not a known type!", fieldInfo.FieldType), MessageType.Error);
            return(false);
        }

        if (!Editor.CanEditNode(AsNode))
        {
            EditorGUI.HelpBox(position, "Unable to edit this node!", MessageType.Error);
            return(false);
        }

        if (!(attribute is Blackboard.Required))
        {
            EditorGUI.HelpBox(position, "Unable to get Required attribute!", MessageType.Error);
            return(false);
        }

        SetContentForParameters();

        return(true);
    }