// 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(); } }
// 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(); }
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)); }
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(); }
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)); }