コード例 #1
0
        /*--------------------------------------------------------------------------------------------*/
        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;
            }
        }
コード例 #2
0
 void Start()
 {
     selectOpenBrowserState   = selectOpenBrowser.GetComponent <HoverItemSelectionState>();
     selectTaskViewState      = selectTaskView.GetComponent <HoverItemSelectionState>();
     selectMinMaxWindowsState = selectMinMaxWindows.GetComponent <HoverItemSelectionState>();
     selectMinMaxWindowsLabel = selectMinMaxWindows.GetComponent <HoverItemDataSelector>();
     launchExe   = new LaunchExecutable();
     isMinimized = false;
 }
コード例 #3
0
        /*--------------------------------------------------------------------------------------------*/
        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>();
        }
コード例 #4
0
        /*--------------------------------------------------------------------------------------------*/
        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);
        }
コード例 #5
0
ファイル: HoverkeyBuilder.cs プロジェクト: OranBar/MyRoom
        /*--------------------------------------------------------------------------------------------*/
        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);
        }
コード例 #6
0
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        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;
        }
コード例 #7
0
        /*--------------------------------------------------------------------------------------------*/
        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"));
            }
        }