Пример #1
0
        // Dynamic creation of menu
        public void InitializeMenu(MenuRow parentRow, RowDetails details)
        {
            radius          = Constants.Menu.Radius;
            maxRows         = details.rows;
            maxColumns      = details.columns;
            itemScale       = details.itemScale;
            gapBetweenItems = details.gapBetweenItems;
            startInMiddle   = details.startInMiddle;
            canMove         = details.canMove;
            //transform.Find("mesh").localScale = new Vector3(radius+1f, radius+1f, 3f);

            gameObject.SetActive(false);

            if (parentRow != null)
            {
                belowRow  = parentRow;
                menuItems = belowRow.selectedItem.subMenuItems;
                PositionMenuItems();
                CreateMainButtons();
            }
            else
            {
                PositionMenuItems();
            }
        }
Пример #2
0
        // Use this for initialization
        void Start()
        {
            cam       = Camera.main;
            titleText = title.GetComponent <Text>();

            // Generate starting MenuRow
            currentRow = Instantiate(MenuRowPrefab, transform).GetComponent <MenuRow>();

            currentRow.maxRows    = 1;
            currentRow.maxColumns = 5;
            currentRow.name       = "Home Screen";

            for (int i = 0; i < transform.childCount; i++)
            {
                MenuItem m = transform.GetChild(i).GetComponent <MenuItem>();
                if (m != null)
                {
                    currentRow.menuItems.Add(m);
                }
            }

            // circleRadius, maxRows, maxColumns, mainMenuItemScale, gapBetweenItems, true, true);
            RowDetails rowDetails = new RowDetails(maxRows, maxColumns, mainMenuItemScale, gapBetweenItems, true, true);

            currentRow.InitializeMenu(null, rowDetails);

            currentRow.StartTransitionIn();

            raycaster        = RayCaster.instance;
            raycaster.looker = cam.transform;
            AddRaycasters();
            AddGestureListeners();
        }
Пример #3
0
        public void ToNewRow()
        {
            if (canMove == false || currentRow.canRotate == false)
            {
                return;
            }

            // Maybe simplify this somehow
            if (currentRow.selectedItem.subMenuItems.Count == 0)
            {
                return;
            }

            MenuRow prevRow = currentRow;

            // Generate new MenuRow and set its list of menu items
            currentRow = Instantiate(MenuRowPrefab, transform).GetComponent <MenuRow>();
            currentRow.transform.position = new Vector3(prevRow.transform.position.x, prevRow.transform.position.y, prevRow.transform.position.z);

            //circleRadius, maxRows, maxColumns, prevRow.selectedItem.rowItemSize, prevRow.selectedItem.rowGapSize, prevRow.selectedItem.rowStartInMiddle, prevRow.selectedItem.rowCanMove

            currentRow.InitializeMenu(prevRow, prevRow.selectedItem.newRowDetails);
            currentRow.name = prevRow.selectedItem.itemName;

            StartCoroutine(FadeBetweenRows(prevRow, currentRow, false));
        }
Пример #4
0
        private IEnumerator FadeBetweenRows(MenuRow before, MenuRow after, bool destroyBefore)
        {
            before.StartTransitionOut();

            yield return(StartCoroutine(FadeCanvasGroup(1f, 0f, Constants.Transitions.FadeTime, title)));

            titleText.text = after.name;
            StartCoroutine(FadeCanvasGroup(0f, 1f, Constants.Transitions.FadeTime, title));

            if (destroyBefore)
            {
                before.TerminateMenu(spentMenuContainer);
            }

            after.StartTransitionIn();
        }
Пример #5
0
        public void ToPreviousRow()
        {
            if (canMove == false || currentRow.canRotate == false)
            {
                return;
            }

            if (currentRow.belowRow == null)
            {
                return;
            }

            MenuRow prevRow = currentRow;

            currentRow = currentRow.belowRow;

            StartCoroutine(FadeBetweenRows(prevRow, currentRow, true));
        }