예제 #1
0
        /*--------------------------------------------------------------------------------------------*/
        private void BuildNumpad()
        {
            var numGo = new GameObject("Numpad");

            numGo.transform.SetParent(gameObject.transform, false);
            numGo.transform.localPosition = new Vector3(0.43f, 0, 0);

            numGo.AddComponent <TreeUpdater>();

            HoverLayoutRectRow numRectRow = numGo.AddComponent <HoverLayoutRectRow>();

            numRectRow.Arrangement = HoverLayoutRectRow.ArrangementType.TopToBottom;
            numRectRow.SizeX       = 0.12f;
            numRectRow.SizeY       = 0.15f;

            BuildRow("Row0", numGo.transform, HoverkeyBuilderData.NumRow0);

            ////

            var noKeys = new HoverkeyBuilderKeyInfo[0];

            GameObject botGo = BuildRow("Bottom", numGo.transform, noKeys);
            HoverLayoutRectRelativeSizer botRectSizer =
                botGo.AddComponent <HoverLayoutRectRelativeSizer>();

            botRectSizer.RelativeSizeY = 4;

            GameObject botLeftGo = BuildRow("Left", botGo.transform, noKeys);
            HoverLayoutRectRelativeSizer botLeftRectSizer =
                botLeftGo.AddComponent <HoverLayoutRectRelativeSizer>();

            botLeftRectSizer.RelativeSizeX = 3;
            HoverLayoutRectRow botLeftRow = botLeftGo.GetComponent <HoverLayoutRectRow>();

            botLeftRow.Arrangement = HoverLayoutRectRow.ArrangementType.TopToBottom;

            BuildRow("Row1", botLeftGo.transform, HoverkeyBuilderData.NumRow1);
            BuildRow("Row2", botLeftGo.transform, HoverkeyBuilderData.NumRow2);
            BuildRow("Row3", botLeftGo.transform, HoverkeyBuilderData.NumRow3);
            BuildRow("Row4", botLeftGo.transform, HoverkeyBuilderData.NumRow4);

            GameObject         botRightGo  = BuildRow("Right", botGo.transform, HoverkeyBuilderData.NumCol);
            HoverLayoutRectRow botRightRow = botRightGo.GetComponent <HoverLayoutRectRow>();

            botRightRow.Arrangement = HoverLayoutRectRow.ArrangementType.TopToBottom;
        }
예제 #2
0
        /*--------------------------------------------------------------------------------------------*/
        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);
        }