public enObjectAction DisplaySelectActionMenu(Vector3 actionMenuCenter, enObjectAction[] actions) { int positionChangeX = 15; int positionChangeY = 0; foreach (enObjectAction action in actions) { if (DisplaySelectActionButton(new Rect(actionMenuCenter.x+positionChangeX, Screen.height-actionMenuCenter.y+positionChangeY, 100, 20), new GUIContent(action.ToString()), "Button")) { return action; } positionChangeY += 25; } return enObjectAction.NoAction; }
/** * Draws action selection menu */ public enObjectAction DisplaySelectActionMenu(Vector3 actionMenuCenter, enObjectAction[] actions) { //GUI.skin = gameSkin; //int positionChangeX = 15; //int positionChangeY = 0; float r = 40; for (int i = 0; i < actions.Length; i++) { enObjectAction action = actions[i]; float posX = actionMenuCenter.x; float posY = actionMenuCenter.y; switch (i) { case 1: // up-right posY += (float) System.Math.Sqrt(System.Math.Pow(r,2)-System.Math.Pow((r/2),2)); posX += r/2; break; case 2: // right posX += r; break; case 3: // left posX -= r; break; case 4: // down-left posY -= (float) System.Math.Sqrt(System.Math.Pow(r,2)-System.Math.Pow((r/2),2)); posX -= r/2; break; case 5: // down-right posY -= (float) System.Math.Sqrt(System.Math.Pow(r,2)-System.Math.Pow((r/2),2)); posX += r/2; break; default: // up-left posY += (float) System.Math.Sqrt(System.Math.Pow(r,2)-System.Math.Pow((r/2),2)); posX -= r/2; break; } if (DisplaySelectActionButton(new Rect(posX-20, Screen.height-posY-20, 40, 40), objectActionToButton[action], buttonStyle)) { return action; } //positionChangeY += 35; } return enObjectAction.NoAction; }