Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - SrDeriko

#1
[quote author=iRobb" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35670" data-ipsquote-contentcommentid="129791 date=1460895902]La solución sencilla? Entiendo que el manager de sonido es una instancia estática. Pues entonces comprueba que no esté en play el sonido y no lo vuelvas a activar. [/quote]No comprendo exactamente a que te refieres. El problema es que al volver a la escena donde está el gameObject que quiero mantener en las otras escenas, aparece doble. Es decir dos ManagerSonido
#2
Buenas,Expongo mi situación: Tengo un GameObject que actúa como Manager de sonido. Este se sitúa en la escena de portada del juego. Hasta aquí todo bien. Mi problema surge debido a que quiero que ese sonido se mantenga también al cambiar de escena, por lo que uso un DontDestroyOnLoad(transform.gameObject) pero al perder el juego, automáticamente carga la escena de portada, y el objeto aparece doble por lo que el sonido se escucha doble, ya que el objeto se ha creado otra vez en la escena que ya estaba.Me gustaría alguna idea sobre como podría corregir este error.Un saludo.
#3
General (Antiguo) / Regeneración de vida
Agosto 07, 2015, 10:55:25 PM
[quote author=Quel" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="15883" data-ipsquote-contentcommentid="101310 date=1438847421]¿ Que es lo que no sabías hacer ?[/quote]


using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class Life : MonoBehaviour {
public float hp;
public Slider barVida;
public float timer;
public float v;
// Use this for initialization
void Start () {
   
}

// Update is called once per frame
void Update () {
   timer -= Time.deltaTime;
   if (timer < 0) {
      timer = 8;
      v = hp;
   }
   if(v == hp) {
      this.hp++;
   }
   if(v < hp) {
      this.hp++;
   }
   if (hp > 200) {
      this.hp = 200;
   }
   if (this.barVida) {
      this.barVida.value = this.hp;
   }      
}

public void Hurt(float damage){
   this.hp -= damage;
   
   if (this.barVida) {
      this.barVida.value = this.hp;
   }
   
   if (this.hp < 0) {
      this.hp = 0;
      Destroy (this.gameObject);
   }
}
}
 Tengo eso, pero hay algunas cosas que no sé hacer. Uno de mis errores es que cada 8 segundos se regenera aun estando recibiendo daño, he probado muchas cosas y no consigo reparar el error. También a veces la barra de vida asociada no se actualiza. Espero que puedas ayudarme a solucionar estos errores. Gracias
#4
General (Antiguo) / Regeneración de vida
Agosto 03, 2015, 03:26:40 PM
[quote author=Quel" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="15883" data-ipsquote-contentcommentid="101118">1) Creas una variable para llevar la cuenta del tiempo. Por ejemplo cuandoFueElUltimoHurt.
2) Cada vez que ejecutes el Hurt, actualizas la variable cuandoFueElUltimoHurt con la hora actual (usando el Time.time).
3) En la función Update, que se ejecuta en cada iteración del programa, tienes que comparar el valor de cuandoFueElUltimoHurt con el tiempo actual. Con eso puedes saber si ha pasado X tiempo desde el último Hurt.
4) En caso de haber pasado el tiempo suficiente, puedes empezar a regenerar vida.
#5
General (Antiguo) / Regeneración de vida
Agosto 02, 2015, 11:31:42 PM
Buenas a todos. Soy nuevo en esto de Unity y mi nivel de scripting es de novato. Estoy desarrollando un pequeño arcade en mi tiempo libre y me gustaría que me ayudasen con unas pequeñas mejoras a mi script.Este es mi script:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class Life : MonoBehaviour {
public float hp;
public Slider barVida;

// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {
}

public void Hurt(float damage){
         this.hp -= damage;
         
   if (this.barVida) {
            this.barVida.value = this.hp;
         }
         
   if (this.hp < 0) {
            this.hp = 0;
         Destroy (this.gameObject);
   }
}
}
Me gustaría que me ayudasen a hacer que se regenerase la vida al pasar un tiempo predeterminado desde la última vez que se activó la función Hurt, para que no se regenere mientras se vaya restando hp y en la regeneración la vida vaya sumando de uno en uno en pocos segundos, y no se sume hasta el máximo de golpe. Muchas gracias por la ayuda