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 - ramunda

#301
Estimado Jose 134, no tengo palabras para agradecerte el tiempo y dedicación que me estas prestando.Gracias.
 
Lamento decir que algo no va bien....mi personaje ahora no muere...le sigue bajando la vida indefinidamente y no muere.
 
Cree el object con las letras que aprecen y las puse en el script modificado que gentilmente me has proporcionado aqui.
 
Pero pasa eso...la vida sigue bajando y bajando...y no se activa el gui como esperabamaos que puede estar fallando?
 
Gracias de nuevo un saludoooo
 
P.d restablecí todos los ///// y un comentario mas donde pones tuUI hay que poner algo o es la variable que luego me pide que le ponga el gameobject?
#302
Cita de: Jose134 date=1435909743 
Cada elemento del UI es un GameObject asi que lo puedes almacenar en una variable de ese tipo (public GameObject tuUI;)
 
el if(muerto){} lo tendrias que poner en el Update ya que la comparacion la tienes que hacer cada frame
 
tambien podrias poner el tuUI.SetActive(true); donde haces la variable muerto true
 
void Respawn la tendrias que hace publica para poder activarla desde el boton
 
te recomiendo este tutorial
eature=oembed" frameborder="0" allowfullscreen="true">
 
por lo que se quedaria algo asi

public GameObject tuUI;
public bool muerto;
void Update () {
    if(muerto){
        tuUI.SetActive(true); //Activa el UI
        if(Input.GetKeyDown(KeyCode.Space)){
             Respawn();
        }
    }
}
public void Respawn () {
    tuUI.SetActive(false); //Desactiva el UI
    muerto = false;
}

Compañero. muchas gracias e intentado meter este codigo que me has dicho en el void update y me peta todo el scrip ...soy lerdo lo reconozco.
 
Si eres tan amable de colocarlo donde debe de ir cada fragmento que me has dicho sin que pete todo el codigo te lo agradezco, sino te lo agradezco igualmente por molestarte y dedicar tu tiempo.
 
Un saludo cordial.
 
 
 
#303
Hola compi, si no entiendo mal creo que lo que quieres es que el playero no se caiga por los lados no?
 
bien si es asi es facil.
 
crear una esfera la agrandas lo suficiente para que quepa en toda la isla/playa.
 
Seguidamente le quitas el mesh renderer lo que la ara trasparente y no se vera.
 
Le añades o box/o mesh collider a la esfera y buala.
 
Espero haberme explicado
 
la otra manera es crear muros haciendo rectangulos y adelgazandolos como si fueran paredes, sigues el mismo procedimiento les quitas el mesh y seran invisibles etc.
 
Espero que te sirva
 
Un saludo.
#304
Muchas gracias a los 2 @Jose134 y @Ks Corrales sin orden preferido.
 
La cosa es que por mucho UI que le meto me peta todo....
 
Donde deberia de poner  el if(muerto){
tuUI.setActive(true);

}
 
Deberia poner un Var arriba tipo Var UI o algo asi? esque estoy con unity 5 y me vuelve locoooo para crear un UI(antiguo GUI) hay que meterlo dentro de un empty object y desde alli llamando a una variable hacer el GUI.....
 
 
Se que es es mucho pedir pero os debere una grande si me podeis dar aunque sea un ejemeplo de como meter el Santo UI o Gui o lo que vaya alli.Y lo de darle a la tecla para respawn?¿ aix....algun dia aprendedere _P
 
Aprendo mas de vuetras respuestas de de 1000 tutoriales...
 
Gracias!!!
#305
Hola gente guay, me estoy rompiendo los cuernos y no hay manera de poder poner un cuadradito con unas simples letras que pongan Reaparecer y que cuando clicke este cuadro respawnee mi personaje.
 
 
El script que tengo esta asi:

using UnityEngine;
using System.Collections;
public class PlayerInfo : MonoBehaviour {
public GameObject healthBottle;
public GameObject player;
public AudioClip deathClip;
public AudioClip deathClip2;
public float length;
int health = 100;
int damageCount = 0;
int currentHealth;
bool playerFighting;
public GUIText healthbar;
float timer = 0.0f;
float healthTimer = 0.0f;
bool healthShouldRespawn = false;
bool muerto= false;
// Use this for initialization
void Start () {
   currentHealth = health;
}

// Update is called once per frame
void Update () {
   Cursor.visible = false;
   print("player in combat? " + playerFighting);
   if(!playerFighting){
      print("player is not fighting");
      if(currentHealth != 100){
         timer += Time.deltaTime;
         print ("timer: " + timer);
         if(timer > 90.0f){
            currentHealth += 10;
            timer = 0.0f;
         }
      }
   }
   else
   {
      if(currentHealth <= 0 && !muerto ){
         muerto=true;
         GetComponent<AudioSource>().PlayOneShot(deathClip);length = 5f;
         Invoke("Respawn",5);
      }
   }
   healthbar.text = "Vida " + currentHealth + " / 100";
   
   if(healthShouldRespawn)
   {
      healthTimer += Time.deltaTime;
      
      if(healthTimer > 5.0f)
      {
         healthBottle.gameObject.SetActive(true);
         healthTimer = 0.0f;
      }
   }
   
}

public void ApplyDamage(int damage){
   damageCount = damageCount + damage;
   if(damageCount == 100){
      currentHealth = currentHealth - 30;
      GetComponent<AudioSource>().PlayOneShot(deathClip2);length = 0.2f;
      healthbar.text = "Health " + currentHealth + " / 100";
      damageCount = 0;
   }
   
   print(currentHealth);
}

public void playerInCombat(int combat){
   if(combat == 1){
      playerFighting = true;
   }
   else
   {
      playerFighting = false;
   }
}
void Respawn(){
   muerto=false;
   transform.position = new Vector3(Random.Range(50.0f, 120.0f), 0, Random.Range(10.0f, 200.0f));
   currentHealth = 100;
}
void OnTriggerEnter(Collider item){
   if(item.gameObject.tag == "PlayerHealthBottle")
   {
      if(currentHealth < 100)
      {
         currentHealth = currentHealth + 50;
         item.gameObject.SetActive(false);
         healthShouldRespawn = true;
      }
   }
}



linea 44 el personaje muere y llama a la funcion respawn despues de 5 segundos , esto se quitara si consigo el boton.
 
linea 83 empieza la funcion respawn y respaunea el personaje en las corrdenadas ramdom que estan asignadas.
 
Bien hasta aqui todo furula, pues bien me encantaria que alguien me dijera como poner antes de que el personaje respawnee un boton en pantalla que diga eso Reaparecer o algo asi y que cuando lo clickeee o apriete una letra o lo que sea siga con el random respawn tal y como hace ahora.
 
He mirado varios tutoriales pero sin exito, algunos porque estan en JS, otros porque no son precisamente esto....
 
Pido ayuda por favor.
 
Gracias de antemano, ya se que es una tontria pero no me sale...
 
 
#306
General (Antiguo) / Retrasar sonido...
Julio 02, 2015, 09:41:39 AM
Gracias Kalua66 , dime como te exporto el pakete y te lo saco.
#307
Kalua66, sin palabras, e aprendido mas mirando el script corregido que me has dejado que mirando 100 tutoriales, no tengo palabras para darte las gracias.
 
Ahora si , tarda 5 segundos y respawn, eso va de maravilla solo que la vida se le va a -20 -30 pero eso es lo de menos ya inventare algo para que salga un menu o algo y le diga respawn o lo que sea.
 
De nuevo , gracias , un abrazo
#308
General (Antiguo) / Retrasar sonido...
Julio 01, 2015, 08:36:04 PM
Cita de: kalua66 date=1435759524Buff...tienes mucho lio montado, te recomendaria que vieras tutoriales primero, y que entiendas que Unity trabaja por componentes..y como se accden a ellos y demas.. te podria hacer el codigo, pero no serviria de nada, creeme..
 
Hombre , tanto como no servirme de nada....yo creo que si tendria un patron donde observar y estudiar, sabiendo que esta bien echo , en muchos tutoriales que he mirado están desfasados o son de versiones de lo primero de unity lo cual ya n sirven para nada con los cambios de variable y nuevos codigos.
 
Lo dejo a tu elección, si eres tan amable de hacerlo te estare muy agradecido, si de lo contrario decides no hacerlo te estare muy agradecido igualmente por todo.
#309
Cita de: kalua66 date=1435754587

//Esto donde te da error
if(currentHealth <= 0){
   GetComponent<AudioSource>().PlayOneShot(deathClip);length = 0.5f;
   Invoke("Respawn",5);
}
 
void Respawn(){
    transform.position = new Vector3(Random.Range(50.0f, 120.0f), 0, Random.Range(10.0f, 200.0f));
    currentHealth = 100;
}

Muchasss gracias por la pronta respuesta ..desgraciadamente no funciona ( me da este tumulo de errores....
 
error CS1547: Keyword `void' cannot be used in this context
 
error CS1525: Unexpected symbol `(', expecting `)', `,', `;', `[', or `='
 
error CS8025: Parsing error
 
 
 
 
 
 
 
 
#310
General (Antiguo) / Retrasar sonido...
Julio 01, 2015, 03:20:13 PM
Cita de: kalua66 date=1435753440Pues esta linea que tienes en tu script:
 

GetComponent<AudioSource>() 

lo que hace es coger el componente AudioSource, y sino lo tenias tenia que haber dado error... no has comentado nada de ningún error y dices que suena, por lo tanto tienes que tenerlo, por narices...
Te juro por snoopy que no los tenia y no me daba error..ahora la he liado un poco mas!! , he modificado y puesto esto:

if(currentHealth <= 0){
         GetComponent<AudioSource>();//// aqui midificado
         //yield return new WaitForSeconds (5);// esta linea es la de pausa y la que da problemas
         transform.position = new Vector3(Random.Range(50.0f, 120.0f), 0, Random.Range(10.0f, 200.0f));
         currentHealth = 100;
      }

la cosa es que ahora no suena nada....ni bien ni mal nada, he añadido los 2 audisources correspondientes a los sonidos, el nombre de los sonidos son:herido y Scary.
 
Si le pongo esto: GetComponent<AudioSource>(herido); me da error...como lo ago para llamar a este sonido en concreto asi podria regular el pitch.... se te ocurre algo?
 
Gracias!!!
#311
Hola, mis queridos amigos necesito un consejo de nuevo
 
Quiero que antes de que mi PJ muera y respawnee en una posición aleatoria(eso funciona bien) , que tenga una pequeña pausa(posterior animación que ya vendra), le he insertado una pausa antes de que eso pase pero me tira un error muy raro que no se porque....
 
 
Adjunto script completo:

using UnityEngine;
using System.Collections;
    public class PlayerInfo : MonoBehaviour {
public GameObject healthBottle;
public GameObject player;
public AudioClip deathClip;
public AudioClip deathClip2;
public float length;
int health = 100;
int damageCount = 0;
int currentHealth;
bool playerFighting;
public GUIText healthbar;
float timer = 0.0f;
float healthTimer = 0.0f;
bool healthShouldRespawn = false;
// Use this for initialization
void Start () {
currentHealth = health;
}

// Update is called once per frame
void Update () {
   Cursor.visible = false;
   print("player in combat? " + playerFighting);
   if(!playerFighting){
      print("player is not fighting");
      if(currentHealth != 100){
         timer += Time.deltaTime;
         print ("timer: " + timer);
         if(timer > 90.0f){
            currentHealth += 10;
            timer = 0.0f;
         }
      }
   }
   else
   {
      if(currentHealth <= 0){
         GetComponent<AudioSource>().PlayOneShot(deathClip);length = 0.5f;
         yield return new WaitForSeconds (5);// esta linea es la de pausa y la que da problemas
         transform.position = new Vector3(Random.Range(50.0f, 120.0f), 0, Random.Range(10.0f, 200.0f));
         currentHealth = 100;
      }
   }
   healthbar.text = "Vida " + currentHealth + " / 100";
   if(healthShouldRespawn)
   {
      healthTimer += Time.deltaTime;
      if(healthTimer > 5.0f)
      {
         healthBottle.gameObject.SetActive(true);
         healthTimer = 0.0f;
      }
   }
}
public void ApplyDamage(int damage){
   damageCount = damageCount + damage;
   if(damageCount == 100){
      currentHealth = currentHealth - 30;
      GetComponent<AudioSource>().PlayOneShot(deathClip2);length = 0.2f;
      healthbar.text = "Health " + currentHealth + " / 100";
      damageCount = 0;
   }
   print(currentHealth);
}
public void playerInCombat(int combat){
   if(combat == 1){
      playerFighting = true;
   }
   else
   {
      playerFighting = false;
   }
}
void OnTriggerEnter(Collider item){
   if(item.gameObject.tag == "PlayerHealthBottle")
   {
      if(currentHealth < 100)
      {
         currentHealth = currentHealth + 50;
         item.gameObject.SetActive(false);
         healthShouldRespawn = true;
      }
   }
}
 
}

la linea 42...alli tengo la pausa....y me tira este error:
 
error CS1624: The body of `PlayerInfo.Update()' cannot be an iterator block because `void' is not an iterator interface type
 
 
Grrr alguna solucion a la vista?
 
Gracias de antemanoooo
 
 
 
 
 
 
#312
General (Antiguo) / Retrasar sonido...
Julio 01, 2015, 02:16:29 PM
Cita de: kalua66 date=1435752784Seguro que no tienes ningun audioSource ?
lo digo por estas lineas que pusiste..

GetComponent<AudioSource>().

Mira ver que igual esta modificando el de otro lado...
El sonido si lo pruebas desde los ajustes de importación ,suena bien ?
Sino es eso ni idea..
 
Sisi seguro que no tenia udiosource..ahora se lo puse por tus indicaciones y sigue igual y si, el sonido por si solo ejecutandolo desde unity suena bien.....
#313
General (Antiguo) / Retrasar sonido...
Julio 01, 2015, 01:47:07 PM
Cita de: kalua66 date=1435743564Probaste en el AudioSource a poner el:Pitch:Amount of change in pitch due to slowdown/speed up of the Audio Clip. Value 1 is normal playback speed.
 
Pitch  => 1
Kalua66, gracias por la respuesta, el caso es que no tengo audio source puesto ya que lo llamo directamente desde aqui:
 
  1. public AudioClip deathClip;
  2. public AudioClip deathClip2;

y arrastro directamente el sonido deseado a la casilla que me pide.

 

igualmente he pobado añadiendo el audiosource y bajandole el pitch como me has dicho y el efecto es el mismo...no fuanciona, a veces se reproduce bien aveces acelerado aveces entrecortado...no se que hacer

#314
Muchas gracias por las respuestas esr y Kalua66, las dos soluciones me han ayudado y mucho,  y a raiz de eso he encontrado una solución aun mas facil, explico.
 
Evidentemente de JS a C# no se pueden ver....pero, si pones el script en Assets /Standard Assets resuslta que sea cual sea el script js/c# ; unity lo hace localizable al estar entre sus librerias de transito por asi decirlo....te lo marca en rojo...pero lo para!!!
 
Aquí el ejemplo:

else if (distance < 50 && distance > 4.0f) {
      GetComponent<FollowPath>().enabled = false; ///aqui lo paro!!
      skelly6.GetComponent<Animation>().CrossFadeQueued("Attack_01", 0.3f, QueueMode.PlayNow);
      skelly6.GetComponent<Animation>().CrossFade("Run");
      skelly6.transform.LookAt(player.transform.position);
         transform.position = Vector3.MoveTowards(transform.position, player.transform.position, 0.30f);

aqui no se aprecia pero te lo marca en rojo, pero no te da error como antes y realmente hace el trabajo de pararlo.
 
REPITO muchas gracias por la ayuda sin vosotros no habría llegado a este punto!!, soys geniales!!
#315
Cita de: francoe1 date=1435681589Por que programar la mitad C# y la mitad JS es una muy mala idea, por que no pasas todo a C# y listo.
 
@francoe1 , no soy tan habilidoso como para eso