Noticias

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

Ayuda para crear barras de fuerza y presición

Iniciado por Carlanwas, Agosto 20, 2015, 11:22:10 AM

Tema anterior - Siguiente tema
Agosto 20, 2015, 11:22:10 AM Ultima modificación: Enero 01, 1970, 01:00:00 AM por Carlanwas
Hola a todos,Espero de corazón poder recibir ayuda aquí, ya que surfeando por la red no conseguí mucho. Les cuento:Estamos creando un minijuego con unos amigos para familiarizarnos con unity, y tenemos la idea de crear un juego estilo minigames de Kirby, específicamente el "crackity hack", pero en 3D, para lo cual necesitamos crear una barra que indique potencia de disparo/golpe y otro de presición. Hasta ahora tenemos los objetos del juego, que tras un script (c#) simple, hemos podido hacer colisionar objetos fijos con el respectivo colisionador/player.El asunto es que me he cabeceado durante días pensando en cómo hacer la barra que mide la fuerza del golpe y la precisión, ya que cambia muy rápido y cada resultado se asigna a una fuerza específica que se le añade al colisionador. Mi duda está en el script específico para lograr que una barra animada me entregue los valores necesarios y gatille distintas intensidades de golpe cuando aprieto un botón. Espero haberme explicado bien, quedo atentísimo a todos. Muchas gracias desde ya.


Agosto 20, 2015, 11:43:13 AM #2 Ultima modificación: Agosto 20, 2015, 11:44:20 AM por Antonio
Buenos días Carlanwas.

Por lo que entiendo, hay 2 tareas, la barra en sí que es algo gráfico, un detalle para ayudar al jugador a ver el valor de una variable interna, y la gestión de dicha variable, que crecerá y bajará dependiendo de la lógica de otro código.

En tu juego, deberás tener algún script para las variables generales, entre ellas pues habrá una que sea "potencia" o como la hayáis llamado, esta puede ser de tipo float y empezará en 0, también puede que necesiteis otra más, para saber si la barra tiene que subir o bajar, por ejemplo, una de tipo bool llamada llenando que empezaría en true. Despues en una función Update, podeis ir comprobando:
 
if (llenando) //Llenando es true
{
    potencia += velocidad * Time.deltaTime;
    if (potencia >= 100)
    {
        llenando = false;
    }
}else{ //Llenando es false
    potencia -= velocidad * Time.deltaTime;
    if (potencia <= 0)
    {
        llenando = true;
    }
}
Con esto, verás que la variable irá oscilando entre 0 y 100. (He añadido también otra variable tipo int o float llamada velocidad, ahí iría si queréis ajustarla).En tus otros códigos, cuando vaya a disparar o lo que ocurra, lo que tenéis que hacer es ir y mirar esa variable de potencia en ese estado, y de ahí pues ya haces lo que tenga que ocurrir (que haga más daño, que dispare más lejos, o lo que sea) (No he jugado al Crackity Hack... Si para     100         la barra mide       360     píxeles.
pues para   potencia    la barra medirá     X       píxeles.

Por lo que despejamos X

X = ( 360 * potencia ) / 100;

Y después aplicas X a la longitud de la barra.
Los tiros irían por ahí.

Etiquetas: