/*--------------------------------------------------------------------------------------------*/ private void BuildRowNavItem(GameObject pRowGo, string pId, string pLabel, GameObject pNavToRowGo) { GameObject itemGo = BuildRowItem(pRowGo, pId, pLabel, HoverItem.HoverItemType.Selector); HoverpanelInterface inter = gameObject.GetComponent <HoverpanelInterface>(); bool isBack = (pNavToRowGo == null); HoverItemDataSelector data = itemGo.GetComponent <HoverItemDataSelector>(); data.Action = (isBack ? SelectorActionType.NavigateOut : SelectorActionType.NavigateIn); #if UNITY_EDITOR UnityEditor.Events.UnityEventTools.AddPersistentListener( data.OnSelectedEvent, inter.OnRowSwitched); #else data.OnSelectedEvent.AddListener(inter.OnRowSwitched); #endif HoverpanelRowSwitchingInfo rowSwitch = itemGo.AddComponent <HoverpanelRowSwitchingInfo>(); rowSwitch.NavigateBack = isBack; rowSwitch.NavigateToRow = (isBack ? null : pNavToRowGo.GetComponent <HoverLayoutRectRow>()); rowSwitch.RowEntryTransition = (isBack ? HoverpanelRowSwitchingInfo.RowEntryType.SlideFromFront : HoverpanelRowSwitchingInfo.RowEntryType.SlideFromBack ); if (!isBack) { HoverCanvas can = itemGo.GetComponentInChildren <HoverCanvas>(); can.Alignment = HoverCanvas.CanvasAlignmentType.TextLeftAndIconRight; } }
void Start() { selectOpenBrowserState = selectOpenBrowser.GetComponent <HoverItemSelectionState>(); selectTaskViewState = selectTaskView.GetComponent <HoverItemSelectionState>(); selectMinMaxWindowsState = selectMinMaxWindows.GetComponent <HoverItemSelectionState>(); selectMinMaxWindowsLabel = selectMinMaxWindows.GetComponent <HoverItemDataSelector>(); launchExe = new LaunchExecutable(); isMinimized = false; }
/*--------------------------------------------------------------------------------------------*/ private void BuildBackItem(GameObject pItemGo) { HoverItemBuilder build = pItemGo.AddComponent <HoverItemBuilder>(); build.ItemType = HoverItem.HoverItemType.Selector; build.ButtonRendererPrefab = ButtonRendererPrefab; build.OnEditorTriggerButtonSelected(); DestroyImmediate(build, false); //// HovercastInterface inter = gameObject.GetComponent <HovercastInterface>(); HoverItemDataSelector data = pItemGo.GetComponent <HoverItemDataSelector>(); data.Id = "HovercastBackItem"; data.Label = ""; data.Action = SelectorActionType.NavigateOut; #if UNITY_EDITOR UnityEditor.Events.UnityEventTools.AddPersistentListener( data.OnSelectedEvent, inter.OnRowSwitched); #else data.OnSelectedEvent.AddListener(inter.OnRowSwitched); #endif HoverFillButtonArcUpdater fillArcUp = pItemGo.GetComponentInChildren <HoverFillButtonArcUpdater>(); fillArcUp.EdgePosition = HoverFillButtonArcUpdater.EdgePositionType.Outer; HoverCanvas can = pItemGo.GetComponentInChildren <HoverCanvas>(); can.Alignment = HoverCanvas.CanvasAlignmentType.Custom; can.IconOuter.transform.localPosition = new Vector3(-40, 0, 0); HoverShapeArc shapeArc = pItemGo.AddComponent <HoverShapeArc>(); shapeArc.OuterRadius = 0.015f; shapeArc.InnerRadius = 0; shapeArc.ArcDegrees = 360; HovercastRowSwitchingInfo rowSwitch = pItemGo.AddComponent <HovercastRowSwitchingInfo>(); rowSwitch.NavigateBack = true; rowSwitch.RowEntryTransition = HovercastRowSwitchingInfo.RowEntryType.FromInside; pItemGo.AddComponent <HoverIndicatorOverrider>(); }
/*--------------------------------------------------------------------------------------------*/ private void UpdateOverrider(HoverItemDataSelector pBackItem, float pTriggerStrength) { HoverIndicatorOverrider indOver = pBackItem.GetComponent <HoverIndicatorOverrider>(); if (indOver == null) { return; } float minStren = (vIsTriggered ? TriggerAgainThreshold : 0); float stren = pTriggerStrength; indOver.Controllers.Set(HoverIndicatorOverrider.MinHightlightProgressName, this); indOver.Controllers.Set(HoverIndicatorOverrider.MinSelectionProgressName, this); indOver.MinHightlightProgress = stren; indOver.MinSelectionProgress = Mathf.InverseLerp(minStren, 1, stren); }
/*--------------------------------------------------------------------------------------------*/ 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 BuildOpenItem(GameObject pItemGo) { HoverItemBuilder build = pItemGo.AddComponent <HoverItemBuilder>(); build.ItemType = HoverItem.HoverItemType.Selector; build.ButtonRendererPrefab = ButtonRendererPrefab; build.PerformBuild(); //// HovercastInterface inter = gameObject.GetComponent <HovercastInterface>(); HoverItemDataSelector data = pItemGo.GetComponent <HoverItemDataSelector>(); data.Id = "HovercastOpenItem"; data.Label = ""; #if UNITY_EDITOR UnityEditor.Events.UnityEventTools.AddPersistentListener( data.OnSelectedEvent, inter.OnOpenToggled); #else data.OnSelectedEvent.AddListener(inter.OnRowSwitched); #endif HoverCanvas can = pItemGo.GetComponentInChildren <HoverCanvas>(); var iconPivotGo = new GameObject("IconPivot"); iconPivotGo.transform.SetParent(can.transform, false); var iconOpenGo = new GameObject("IconOpen"); iconOpenGo.transform.SetParent(iconPivotGo.transform, false); var iconCloseGo = new GameObject("IconClose"); iconCloseGo.transform.SetParent(iconPivotGo.transform, false); RectTransform iconPivotRectTx = iconPivotGo.AddComponent <RectTransform>(); iconPivotRectTx.localPosition = new Vector3(-47.5f, 0, 0); iconPivotRectTx.localScale = new Vector3(2.2f, 2.2f, 1); iconPivotRectTx.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 100); iconPivotRectTx.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 100); RectTransform iconOpenRectTx = iconOpenGo.AddComponent <RectTransform>(); iconOpenRectTx.localPosition = new Vector3(19, 0, 0); iconOpenRectTx.localRotation = Quaternion.Euler(0, 0, -45); iconOpenRectTx.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 40); iconOpenRectTx.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 40); RectTransform iconCloseRectTx = iconCloseGo.AddComponent <RectTransform>(); iconCloseRectTx.localPosition = new Vector3(19, 0, 0); iconCloseRectTx.localRotation = Quaternion.Euler(0, 0, -45); iconCloseRectTx.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 40); iconCloseRectTx.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 40); RawImage openImage = iconOpenGo.AddComponent <RawImage>(); openImage.material = Resources.Load <Material>("Materials/HovercastIconsMaterial"); openImage.uvRect = new Rect(0.002f, 0.002f, 0.496f, 0.996f); RawImage closeImage = iconCloseGo.AddComponent <RawImage>(); closeImage.material = openImage.material; closeImage.uvRect = new Rect(0.502f, 0.002f, 0.496f, 0.996f); //// HoverShapeArc shapeArc = pItemGo.AddComponent <HoverShapeArc>(); shapeArc.OuterRadius = 0.02f; shapeArc.InnerRadius = 0; shapeArc.ArcDegrees = 360; HovercastOpenIcons icons = pItemGo.AddComponent <HovercastOpenIcons>(); icons.OpenIcon = iconOpenGo; icons.CloseIcon = iconCloseGo; }
/*--------------------------------------------------------------------------------------------*/ 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")); } }