/*--------------------------------------------------------------------------------------------*/ private GameObject BuildRowItem(Transform pRowTx, HoverkeyBuilderKeyInfo pKeyInfo) { var itemGo = new GameObject(pKeyInfo.DefaultKey + ""); itemGo.transform.SetParent(pRowTx, false); HoverItemBuilder build = itemGo.AddComponent <HoverItemBuilder>(); build.ItemType = pKeyInfo.ItemType; build.ButtonRendererPrefab = ButtonRendererPrefab; build.SliderRendererPrefab = SliderRendererPrefab; build.OnEditorTriggerButtonSelected(); DestroyImmediate(build, false); //// HoverItemData data = itemGo.GetComponent <HoverItemData>(); data.Id = pKeyInfo.ID; data.Label = pKeyInfo.DefaultLabel; itemGo.AddComponent <HoverShapeRect>(); HoverkeyItemLabels labels = itemGo.AddComponent <HoverkeyItemLabels>(); labels.ActionType = pKeyInfo.ActionType; labels.DefaultKey = pKeyInfo.DefaultKey; labels.DefaultLabel = pKeyInfo.DefaultLabel; labels.HasShiftLabel = pKeyInfo.HasShiftLabel; labels.ShiftLabel = pKeyInfo.ShiftLabel; if (pKeyInfo.RelativeSizeX != 1) { HoverLayoutRectRelativeSizer sizer = itemGo.AddComponent <HoverLayoutRectRelativeSizer>(); sizer.RelativeSizeX = pKeyInfo.RelativeSizeX; } HoverCanvas can = itemGo.GetComponentInChildren <HoverCanvas>(); can.Alignment = HoverCanvas.CanvasAlignmentType.Center; can.PaddingX = 0.001f; //// HoverkeyInterface inter = gameObject.GetComponent <HoverkeyInterface>(); HoverItemDataSelector selData = (data as HoverItemDataSelector); HoverItemDataSticky stickyData = (data as HoverItemDataSticky); HoverItemDataCheckbox checkboxData = (data as HoverItemDataCheckbox); if (selData != null) { #if UNITY_EDITOR UnityEditor.Events.UnityEventTools.AddPersistentListener( selData.OnSelectedEvent, inter.HandleItemSelected); #else selData.OnSelectedEvent.AddListener(inter.HandleItemSelected); #endif } else if (stickyData != null) { #if UNITY_EDITOR UnityEditor.Events.UnityEventTools.AddPersistentListener( stickyData.OnSelectedEvent, inter.HandleItemSelected); UnityEditor.Events.UnityEventTools.AddPersistentListener( stickyData.OnDeselectedEvent, inter.HandleItemDeselected); #else stickyData.OnSelectedEvent.AddListener(inter.HandleItemSelected); stickyData.OnDeselectedEvent.AddListener(inter.HandleItemDeselected); #endif } else if (checkboxData != null) { #if UNITY_EDITOR UnityEditor.Events.UnityEventTools.AddPersistentListener( checkboxData.OnSelectedEvent, inter.HandleItemSelected); UnityEditor.Events.UnityEventTools.AddPersistentListener( checkboxData.OnValueChangedEvent, inter.HandleItemValueChanged); #else checkboxData.OnSelectedEvent.AddListener(inter.HandleItemSelected); checkboxData.OnValueChangedEvent.AddListener(inter.HandleItemValueChanged); #endif } return(itemGo); }
/*--------------------------------------------------------------------------------------------*/ private void DrawMainItems() { EditorGUILayout.PropertyField(serializedObject.FindProperty("_Id"), new GUIContent("ID")); EditorGUILayout.PropertyField(serializedObject.FindProperty("_Label")); EditorGUILayout.PropertyField(serializedObject.FindProperty("_IsEnabled")); //// HoverItemDataSelector selectorData = (vData as HoverItemDataSelector); HoverItemDataCheckbox checkboxData = (vData as HoverItemDataCheckbox); HoverItemDataRadio radioData = (vData as HoverItemDataRadio); HoverItemDataSlider sliderData = (vData as HoverItemDataSlider); HoverItemDataSticky stickyData = (vData as HoverItemDataSticky); if (selectorData != null) { EditorGUILayout.PropertyField(serializedObject.FindProperty("_Action")); } else if (checkboxData != null) { EditorGUILayout.PropertyField(serializedObject.FindProperty("_Value"), new GUIContent("Checkbox Value")); } else if (radioData != null) { EditorGUILayout.PropertyField(serializedObject.FindProperty("_GroupId"), new GUIContent("Radio Group ID")); EditorGUILayout.PropertyField(serializedObject.FindProperty("_Value"), new GUIContent("Radio Value")); } else if (sliderData != null) { EditorGUILayout.PropertyField(serializedObject.FindProperty("_LabelFormat"), new GUIContent("Slider Label Format")); EditorGUILayout.PropertyField(serializedObject.FindProperty("_RangeMin"), new GUIContent("Slider Range Min")); EditorGUILayout.PropertyField(serializedObject.FindProperty("_RangeMax"), new GUIContent("Slider Range Max")); float rangeValue = Mathf.Lerp( sliderData.RangeMin, sliderData.RangeMax, sliderData.Value); rangeValue = EditorGUILayout.Slider( "Slider Range Value", rangeValue, sliderData.RangeMin, sliderData.RangeMax); serializedObject.FindProperty("_Value").floatValue = Mathf.InverseLerp(sliderData.RangeMin, sliderData.RangeMax, rangeValue); EditorGUILayout.PropertyField(serializedObject.FindProperty("_Ticks"), new GUIContent("Slider Ticks")); EditorGUILayout.PropertyField(serializedObject.FindProperty("_Snaps"), new GUIContent("Slider Snaps")); EditorGUILayout.PropertyField(serializedObject.FindProperty("_AllowJump"), new GUIContent("Slider Allow Jump")); EditorGUILayout.PropertyField(serializedObject.FindProperty("_FillStartingPoint"), new GUIContent("Slider Fill Starting-Point")); EditorGUILayout.PropertyField(serializedObject.FindProperty("_AllowIdleDeselection"), new GUIContent("Allow Idle Deselection")); } else if (stickyData != null) { EditorGUILayout.PropertyField(serializedObject.FindProperty("_AllowIdleDeselection"), new GUIContent("Allow Idle Deselection")); } }