/** * Instantiates submenu items. */ IEnumerator CreateSubMenu() { buttonArray = new GameObject[numbOfMenuItems]; for (int i = 0; i < numbOfMenuItems; i++) { MenuItemVals itemVals = CalcItemLocationOnArc(i, numbOfMenuItems); Vector3 itemPosition = itemVals.Position; itemPosition = itemPosition + menuInstance.transform.position; MenuBtn btn = new MenuBtn(); btn.SetStartEndPos(menuInstance.transform.position, itemPosition); btn.SetAngleFromMenuStart(itemVals.Angle); GameObject clone = Instantiate(btnPrefab, itemPosition, Quaternion.identity, menuInstance.transform); clone.name = i.ToString(); btn.SetName(clone.name); // GameObject clone = Instantiate(btnPrefab, menuInstance.transform.position, Quaternion.identity, menuInstance.transform); Vector3 endPos = itemPosition + menuInstance.transform.position; // LerpClones(clone, menuInstance.transform.position, endPos); buttonArray[i] = clone; } readyToLerp = true; Debug.Log(readyToLerp); startTime = Time.time; distanceLength = Vector3.Distance(menuInstance.transform.position, buttonArray[0].transform.position); Debug.Log("distanceLength"); Debug.Log(distanceLength); yield return(new WaitForSeconds(1f)); }
/** * Calculates submenu item location along arc */ private MenuItemVals CalcItemLocationOnArc(int index, int len) { incrementAngleValue = (Mathf.PI / 2f) / len + 0.1f; float touchAngle = rad2Degs * Mathf.Deg2Rad; if (index == 0) { pointAngle = touchAngle - (incrementAngleValue * (len / 2)); } else { pointAngle = pointAngle + incrementAngleValue; } float x = Mathf.Cos(pointAngle) * 2f; float y = Mathf.Sin(pointAngle) * 2f; Vector3 screen = new Vector3(x, y, menuInstance.transform.position.z); MenuItemVals vals = new MenuItemVals(pointAngle, screen); return(vals); }