Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

[Ayuda] Sistema de habilidades/skills.

Iniciado por Jucase20, Febrero 02, 2018, 11:05:55 AM

Tema anterior - Siguiente tema
Hola, buenas tardes. 
 
Estoy creando un juego estilo defender tu torre, o ciudad, en el cual estás detrás de una muralla usando habilidades para que los enemigos que llegan en hordas, no te la tiren. Bien, estoy intentando diseñar un sistema de lanzamiento de habilidades y querría que fuese lo más genérico posible, ya que desde el menú, podrás elegir que habilidades llevar a la batalla, por tanto, los botones deberían cambiar según las habilidades escogidas, el orden y demás. Todo el proyecto es en 2D.
 
Al escoger la habilidad, me gustaría que apareciese una plantilla (un sprite), el cual siga al ratón,  y que al volver a pulsar, según si está dentro del rango marcado por la habilidad, se ejecute la habilidad o no. 
 
Se que no es script dificil, pero cada habilidad tiene su propia "plantilla", su distinto rango... Si me pueden echar una mano, estaría muy agradecido! Muchas gracias.

No sabes si es fácil o difícil, porque no lo has hecho hasta ahora. De lo contrario no pondrías este tema, no? XDD
 
La verdad es que yo no he entendido del todo lo que quieres hacer. ¿Podrías dejarlo más claro, con un dibujo o poniendo algún vídeo de referencia o de ejemplo de lo que buscas, por favor?
 
 
 
Parece que busques una secuencia de 3-4 cosas totalmente independientes, que luego se complementan:
 

  •    Unos botones que se puedan pulsar (Una GUI de Canvas).


  •    Mover un sprite junto con el ratón. (Eso se puede hacer con el MousePosition, colisiones, y elementos de Canvas).


  •    Un "rango" de distancia que tiene que tener la habilidad (es una variable o una propiedad que tendrá que tener ese Script).


  •    Que esa habilidad haga "algo" (Por tanto, varios estados para ese script: on, off, en uso...)


 
 
Creo que te he dado ya bastantes pistas de por dónde va la cosa  Mucha suerte!

para los botones que "lanzan" la habilidad... yo haria un unico prefab de boton, haria que un script (gameManager por ejemplo) en un objeto vacio se encargase de instanciar los botones para las habilidades que hallas selecionado, los instanciaria todos del mismo prefab... y luego les cambiaria los valores, la imagen de la habilidad(imagen del boton), la posicion en la pantalla, etc...
 
digamos que solo puedes escoger 4 habilidades por pantalla.... pues al ir escogiendolas, porejemplo se podrian guardar los nombres de esas habilidades en un array de string... y se crearian los botones... que se guardrian en otro array de gameObjects...
 
y porejemplo si pulsas el boton 2 se comprobaria el string numero 2 del array y, dependiendo del nombre, asignaria una imagen (a un sprite que se coloque en la posicion del raton) de la plantilla de la habilidad... y ajustaria esas variables de rango, radio, etc....

Cita de: Igor date=1517576795para los botones que "lanzan" la habilidad... yo haria un unico prefab de boton, haria que un script (gameManager por ejemplo) en un objeto vacio se encargase de instanciar los botones para las habilidades que hallas selecionado, los instanciaria todos del mismo prefab... y luego les cambiaria los valores, la imagen de la habilidad(imagen del boton), la posicion en la pantalla, etc...
   
   
      digamos que solo puedes escoger 4 habilidades por pantalla.... pues al ir escogiendolas, porejemplo se podrian guardar los nombres de esas habilidades en un array de string... y se crearian los botones... que se guardrian en otro array de gameObjects...
   
   
      y porejemplo si pulsas el boton 2 se comprobaria el string numero 2 del array y, dependiendo del nombre, asignaria una imagen (a un sprite que se coloque en la posicion del raton) de la plantilla de la habilidad... y ajustaria esas variables de rango, radio, etc....
   


Efectivamente, así lo he hecho. Muchas gracias. 
 
En cuanto a lo de que pensaba que era fácil, es porque soy novato en C# pero no en otros lenguajes, por lo que solo me faltaba conocer por completo algunas librerías. Con OnMouseDrag he conseguido hacer lo que quería.
 
La asignación de habilidades, la hice de la siguiente manera: 
 
- En el script principal del Player, cree un array de Skill, clase que he creado con los parámetros de cada habilidad.
 
- Los botones tienen un script, el cual coge los parámetros del script del player, y si es el botón 1, coge los parámetros de la primera skill del array (nombre, icono, daño...) 

Etiquetas: