Beispiel #1
0
        private bool CheckComponentEventSelectable(Enum arg)
        {
            if (selectComponentData == null)
            {
                return(false);
            }
            EUIEventType eventType = (EUIEventType)arg;

            if (selectComponentData.SelectType >= EUIComponentType.GameObject && selectComponentData.SelectType < EUIComponentType.Button)
            {
                if (eventType >= EUIEventType.PointerEnter && eventType <= EUIEventType.Deselect)
                {
                    return(true);
                }
            }
            else if (selectComponentData.SelectType.Equals(EUIComponentType.Button))
            {
                if (eventType == EUIEventType.Click)
                {
                    return(true);
                }
            }
            else if (selectComponentData.SelectType.Equals(EUIComponentType.InputField))
            {
                if (eventType == EUIEventType.ValueChanged || eventType == EUIEventType.EndEdit)
                {
                    return(true);
                }
            }
            else
            {
                if (eventType == EUIEventType.ValueChanged)
                {
                    return(true);
                }
            }
            return(false);
        }
Beispiel #2
0
 private string DefaultEventHandlerName(string componentName, EUIEventType eventType)
 {
     return(string.Concat("on", eventType.ToString(), "_", componentName));
 }
Beispiel #3
0
 private void ComponentView()
 {
     EditorGUILayout.BeginVertical();
     EditorGUILayout.BeginHorizontal();
     EditorGUIUtility.labelWidth  = 80f;
     selectComponentData.IsSelect = EditorGUILayout.Toggle("生成Lua成员", selectComponentData.IsSelect, GUILayout.MaxWidth(120));
     EditorGUIUtility.labelWidth  = 0f;
     EditorGUILayout.LabelField("路径:" + selectComponentData.ComponentPath, GUILayout.MaxWidth(300));
     EditorGUIUtility.labelWidth    = 60f;
     selectComponentData.SelectType = (EUIComponentType)EditorGUILayout.EnumPopup("组件类型", selectComponentData.SelectType, GUILayout.MaxWidth(160));
     EditorGUIUtility.labelWidth    = 0f;
     if (selectComponentData.SelectType != lastSelectComponentType)
     {
         ResetSelectComponentEvent();
         lastSelectComponentType = selectComponentData.SelectType;
     }
     EditorGUILayout.EndHorizontal();
     EditorGUILayout.BeginVertical("box", GUILayout.Width(600), GUILayout.Height(320));
     removeEventIndex = -1;
     for (int i = 0; i < selectComponentData.EventDatas.Count; i++)
     {
         EditorGUILayout.BeginHorizontal();
         //selectComponentData.SelectEvents[i] = (EUIEventType)EditorGUILayout.EnumPopup(eventLabelContent, selectComponentData.SelectEvents[i], CheckComponentEventSelectable, false, GUILayout.MaxWidth(200));
         EUIEventType lastEventType = selectComponentData.EventDatas[i].EventType;
         EditorGUIUtility.labelWidth = 60f;
         selectComponentData.EventDatas[i].EventType = (EUIEventType)EditorGUILayout.EnumPopup(eventLabelContent, selectComponentData.EventDatas[i].EventType, CheckComponentEventSelectable, false, GUILayout.MaxWidth(200));
         if (lastEventType != selectComponentData.EventDatas[i].EventType)
         {
             selectComponentData.EventDatas[i].EventHandlerName = DefaultEventHandlerName(selectComponentData.ComponentName, selectComponentData.EventDatas[i].EventType);
         }
         EditorGUIUtility.labelWidth = 80f;
         selectComponentData.EventDatas[i].EventHandlerName = EditorGUILayout.TextField("事件处理方法", selectComponentData.EventDatas[i].EventHandlerName, GUILayout.MaxWidth(300));
         EditorGUIUtility.labelWidth = 0f;
         if (GUILayout.Button("移除", GUILayout.Width(60)))
         {
             removeEventIndex = i;
         }
         EditorGUILayout.EndHorizontal();
     }
     if (removeEventIndex != -1)
     {
         selectComponentData.EventDatas.RemoveAt(removeEventIndex);
     }
     EditorGUILayout.EndVertical();
     if (GUILayout.Button("添加事件", GUILayout.Width(120)))
     {
         if (selectComponentData.SelectType >= EUIComponentType.GameObject && selectComponentData.SelectType < EUIComponentType.Button)
         {
             UIComponentEventAssetData newEvent = new UIComponentEventAssetData();
             newEvent.EventType        = EUIEventType.PointerClick;
             newEvent.EventHandlerName = DefaultEventHandlerName(selectComponentData.ComponentName, newEvent.EventType);
             selectComponentData.EventDatas.Add(newEvent);
         }
         else if (selectComponentData.SelectType == EUIComponentType.Button)
         {
             UIComponentEventAssetData newEvent = new UIComponentEventAssetData();
             newEvent.EventType        = EUIEventType.Click;
             newEvent.EventHandlerName = DefaultEventHandlerName(selectComponentData.ComponentName, newEvent.EventType);
             selectComponentData.EventDatas.Add(newEvent);
             selectComponentData.IsSelect = true;
         }
         else
         {
             UIComponentEventAssetData newEvent = new UIComponentEventAssetData();
             newEvent.EventType        = EUIEventType.ValueChanged;
             newEvent.EventHandlerName = DefaultEventHandlerName(selectComponentData.ComponentName, newEvent.EventType);
             selectComponentData.EventDatas.Add(newEvent);
             selectComponentData.IsSelect = true;
         }
     }
     EditorGUILayout.EndVertical();
 }