Exemple #1
0
    public static DelegateMessage EventField(string label, DelegateMessage evt, GameObject dynParamSource)
    {
        EditorGUILayout.BeginVertical();

        if (label != null)
        {
            EditorGUILayout.PrefixLabel(label);
        }

        EditorGUILayout.BeginHorizontal();

        DelegateMessage newEvt = (DelegateMessage)evt.Clone();

        EventField_ContextPicker(newEvt);


        // SELECT EVENT TYPES
        GameObject target = (evt.targetId == -1) ? evt.overrideTarget:dynParamSource;

        DelegateDescriptor[] eventTypes = EditorDelegateUtil.FindEventsForObject(target);


        // SELECT EVENT & PARAMS
        DelegateDescriptor ed = EventField_EventDescriptorPopup(eventTypes, newEvt);

        EditorGUILayout.EndHorizontal();
        EventField_Parameters(ed, newEvt, dynParamSource);
        EditorGUILayout.EndVertical();

        return(newEvt);
    }