Noticias

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

Temas recientes

Barra de vida no se actualiza como debería

Iniciado por Kalu01, Julio 16, 2019, 06:56:10 PM

Tema anterior - Siguiente tema
Hola a todos/as 
 
Antes que nada gracias por aceptarme en esta comunidad, soy muy nuevo en este mundo de la programación y la verdad que me cuesta horrores detectar ciertos problemas que me están pasando en mi proyecto. Pido perdón si estoy haciendo algo mal a la hora de poner este post, ya que es mi primera vez, agradezco cualquier ayuda o guía que me podáis dar 
 
Estoy haciendo un yo contra el barrio de toda la vida y me ha surgido un problema con los botiquines a la hora de rellenar la barra de vida, adjunto unas capturas para que se me entienda como es debido ^__^
 
Captura 1 (Ayuda 1)
 
En esta captura vemos que mi vida actual es de 48 tanto en la barra como en el script.
 
Captura 2 (Ayuda 2)
 
Al tocar el script la barra de vida se rellena entera  teniendo el script un valor de Vida+10
 
Captura 3 (Ayuda 3)
 
El resultado es que tengo la barra de vida llena, pero mi vida real es de 58...
 
Captura 4 
 
Adjunto captura de mi script del botiquín
 
 
 
 
 




No veo la relación entre el valor de health y como se llena esa barra a nivel de código. De alguna manera esa barra tendrá un valor máximo/mínimo que tal vez no se corresponde con los max/min del valor que le asignas.

Julio 17, 2019, 01:40:41 AM #2 Ultima modificación: Julio 17, 2019, 01:40:53 AM por Igor
el problema seguramente estara en el script de vida, no en el del botiquin.

Hola de nuevo, gracias por contestar tan rápido iRobb e Igor
 
Estuve investigando y creo que debería de crearme unas variables de tipo (float  Vida Actual) y (float MaximoVida) en el script de HealthScript...pero me lío mucho con la sintaxis...
 
alguna idea de como implementarlas? o algún tutorial o web que  me recomendéis ver?
 
Muchas gracias por todo. ^___^
 
Adjunto unas capturas del script de HealthScrip(la vida en si) y de Healt***(la Interface de la barra) 
 
 
 


Yo creo que de alguna manera cambias el health del healthScript pero no llamas a DisplayHealth para actualizarlo o le estás pasando un valor igual o mayor a x*100, dando como resultado 1 para el fillamount.
 
Pon un Debug.Log en la función DisplayHealth para ver que valor le vas pasando.

Julio 22, 2019, 12:34:19 AM #5 Ultima modificación: Julio 22, 2019, 11:20:07 AM por pioj
hola
 
creo que ya he visto lo que esta mal... (creo)
 
en el script del botiquin, en la funcion "onTriggerEnter" 
 
tienes puesto lo primero de todo:
 



   
      health_ui.displayHealth(health);
   

[/quote]
 
ahi esta el error... (creo).
 
deveria ser:
 



   
      (vida.health);
   

[/quote]
 
...y ademas deveria estar despues de:
 



   
      vida.health = vida.health + cantidadDeVidaSumada;
   

[/quote]
 
 


Hola @Kalu01 en mi opinión:
 


  •    "Health" debería ser la parte numérica, un componentes cuyos campos son invisibles, con los valores definitivos, ya sea health, max, min, etc. Acá no tiene que haber ninguna referencia a ningun componente UI. En tu caso estás llamando a Healt***.DisplayHealth(health) esto está "mal" desde el punto de vista este.


  •     "Healt***" debería tener una referencia al componente "Health" y pedir los campos requeridos para la UI, sea health, max, min, etc ... haciendo esto evitás tener valores no actualizados, siempre que la barra esté actualizandose va a representar los valores correctos todo el tiempo.


Etiquetas: