/// <summary> /// <para>Inicia la animacion de los botones</para> /// </summary> /// <param name="interac">Interaccion</param> /// <returns></returns> private IEnumerator AnimacionBtns(Interactivo interac) // Inicia la animacion de los botones { // Representamos los botones for (int n = 0; n < interac.opciones.Length; n++) { // Instanciar el boton BtnMenuCircular newBtn = Instantiate(btnPrefab) as BtnMenuCircular; // Fijar el padre del boton newBtn.transform.SetParent(transform, false); // Algoritmo de ordenacion circular // Crea una circunferencia de un circulo y la divide por el numero opciones float theta = (2 * Mathf.PI / interac.opciones.Length) * n; float xPos = Mathf.Sin(theta); float yPos = Mathf.Cos(theta); // Asignacion de la posicion del boton newBtn.transform.localPosition = new Vector3(xPos, yPos, 0.0f) * 100.0f; // Representacion de los datos newBtn.circulo.color = interac.opciones[n].color; newBtn.icono.sprite = interac.opciones[n].sprite; newBtn.titulo = interac.opciones[n].titulo; newBtn.menu = this; newBtn.AnimacionON(); yield return(new WaitForSeconds(0.06f)); } }
/// <summary> /// <para>Abre el menu circular.</para> /// </summary> /// <param name="interac">Datos de la interaccion</param> public void AbrirMenu(Interactivo interac) // Abre el menu circular. { // Instancia el menu MenuCircular newMenu = Instantiate(menu) as MenuCircular; // Fija su posicion y su padre newMenu.transform.SetParent(this.transform, false); newMenu.transform.position = Input.mousePosition; newMenu.label.text = interac.titulo.ToUpper(); // Convertimos en mayusculas // Mostrar botones del menu newMenu.AbrirBotones(interac); }
/// <summary> /// <para>Inicializador de <see cref="MenuCircular"/></para> /// </summary> /// <param name="interac">Datos de la interaccion</param> public void AbrirBotones(Interactivo interac) // Inicializador de MenuCircular { // Iniciar animacion StartCoroutine(AnimacionBtns(interac)); }