Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: ramunda en Julio 02, 2015, 05:49:20 PM

Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 02, 2015, 05:49:20 PM
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...
 
 
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: KsCorrales en Julio 02, 2015, 07:10:31 PM
pseudocodigo:

si(el personaje esta muerto){
   activame esta UI;
}

depnde de como detectes el personaje ya, por ejemplo si la vida es 0 pues muestralo o si su estado es muerto en caso de q lo hagas con estados pues si el estado es muerto ps pones la UI.
 
edito: no habia visto tu codigo ya lo mire, ok tienes una variable muerto entonces haras:

if(muerto){
   tuUI.setActive(true);
}
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Jose134 en Julio 02, 2015, 07:31:41 PM
Cita de: KsCorrales date=1435857031edito: no habia visto tu codigo ya lo mire, ok tienes una variable muerto entonces haras:

if(muerto){
   tuUI.setActive(true);
}

 
tuUI.SetActive(true);
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 02, 2015, 11:48:06 PM
Muchas gracias a los 2 @Jose134 (http://unityspain.com/profile/22886-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!!!
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Jose134 en Julio 03, 2015, 09:49:03 AM
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;
}
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 03, 2015, 02:59:29 PM
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.
 
 
 
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Jose134 en Julio 03, 2015, 04:46:18 PM

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;

public bool muerto = false;
public GameObject tuUI;
void Start () {
   currentHealth = health;
   tuUI.SetActive(false);
}
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;
      }
   }
   //healthbar.text = "Vida " + currentHealth + " / 100";
   
   if(healthShouldRespawn)
   {
      healthTimer += Time.deltaTime;
      
      if(healthTimer > 5.0f)
      {
         healthBottle.gameObject.SetActive(true);
         healthTimer = 0.0f;
      }
   }
   if(muerto){
      Cursor.visible = true;
      tuUI.SetActive(true);
      if(Input.GetKeyDown(KeyCode.Space)){
         Respawn();
      }
   }
   
}

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;
   }
}
public void Respawn(){
   tuUI.SetActive(false);
   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;
      }
   }
}
}

Asi te deberia de funcionar a la perfeccion
 
PD: lo que esta puesto como comentario era para que a mi me funcionase sin tenerlo, le puedes quitar el // y teoricamente deberia de funcionar
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 03, 2015, 07:02:56 PM
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?
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 03, 2015, 07:09:23 PM
Vale.....e visto lo que pasa....si muere....pero no sale el guitext que le meti y la vida sigue bajando y bajando y el bicho pegandome y pegandome XDD pero si aprietas space resuscita....algo debo haber echo mal o en el gui o no se pero la vida sigue bajando y el bicho dandome jajjajajaj aver que averiguo
 
te explico e creado un Text mesh 3d...he puesto las letras estas muerto y tal y tal ....en un gameobject vacio. lo he puesto en la pestaña de el codigo donde pone tu UI...y na no aparece xddd
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Jose134 en Julio 03, 2015, 07:23:22 PM
Cita de: ramunda date=1435943363Vale.....e visto lo que pasa....si muere....pero no sale el guitext que le meti y la vida sigue bajando y bajando y el bicho pegandome y pegandome XDD pero si aprietas space resuscita....algo debo haber echo mal o en el gui o no se pero la vida sigue bajando y el bicho dandome jajjajajaj aver que averiguo
podrias añadir un if(!muerto){} a donde se le resta vida y asi dejaria de bajar tambien por si acaso (la verdad es que no me he fijado si esto ya lo tienes) podrias añadir if(vida < 0){ vida = 0; }
 en cuanto a lo de que no sale el GuiText no se que podra ser, creo que el script esta bien pero tambien es verdad que se me suelen escapar muchos errores tontos cuando programo
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 03, 2015, 07:43:13 PM
Cita de: Jose134 date=1435944202podrias añadir un if(!muerto){} a donde se le resta vida y asi dejaria de bajar tambien por si acaso (la verdad es que no me he fijado si esto ya lo tienes) podrias añadir if(vida < 0){ vida = 0; }
 en cuanto a lo de que no sale el GuiText no se que podra ser, creo que el script esta bien pero tambien es verdad que se me suelen escapar muchos errores tontos cuando programo
instruieme donde se le resta la vida es aqui...eso creo!!! xdd

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;

y lo de la vida es esta:

{
      if(currentHealth <= 0 && !muerto ){
         muerto = true;
         GetComponent<AudioSource>().PlayOneShot(deathClip);length = 5f;
      }
   }

y por cierto...errores tu?, mirame a mi que no se poner dos lineas seguidas hahahha que eres un mostruo!!! que me das una envidea del copon por saber lo que sabes faltaria mas que no pudieras tener un fallo ...que eso esta por ver
 
mas averiguaciones....si sale el texto si....pero sale donde se creooooooen alguna parte de el mapa no en la pantalla principal y los mas gracioso es que el personage aun muerto sigue andando y chillando como una cabra locaaaaaaaaaa creo que tenemos que meter algun screeen position en el !muerte o algo asi para que el texto salga delante de el personaje no en elguna parte de el escenario
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Jose134 en Julio 04, 2015, 10:10:39 AM
Cita de: ramunda date=1435945393instruieme donde se le resta la vida es aqui...eso creo!!! xdd

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;
                }

 
Justo debajo de if(damageCount == 100){} añade

if(currentHealth < 0){
     currentHealth = 0;
}

asi la vida nunca sera un valor negativo
 
el if(!muerto){} he pensado que seria mejor que lo agregases en la IA del enemigo, asi tambien pararias las animaciones y sonidos, lo tienes que poner para que dentro de ese if este basicamente todo. Y para arreglar lo de que el personaje sigue moviendose puedes hacer lo mismo que en la IA del enemigo o desactivar el script de movimiento cuando muere y reactivarlo cuando spawnee

if(currentHealth <= 0 && !muerto ){
muerto = true;
GetComponent<AudioSource>().PlayOneShot(deathClip);length = 5f;
        GetComponent<ScriptDeMovimiento>().enabled = false; //no me acuerdo si era "enabled" o "active", si no funciona ese prueba con active
}

En cuanto a lo del texto si se ve bien en el editor antes de jugar no se donde esta el problema ya que lo unico que hace es activar y desactivarlo, por lo que la posicion no se modifica. Si no consigues solucionar eso manda un par de screenshots
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 04, 2015, 02:12:00 PM
Cita de: Jose134 date=1435997439Justo debajo de if(damageCount == 100){} añade

if(currentHealth < 0){
     currentHealth = 0;
}

asi la vida nunca sera un valor negativo
 
el if(!muerto){} he pensado que seria mejor que lo agregases en la IA del enemigo, asi tambien pararias las animaciones y sonidos, lo tienes que poner para que dentro de ese if este basicamente todo. Y para arreglar lo de que el personaje sigue moviendose puedes hacer lo mismo que en la IA del enemigo o desactivar el script de movimiento cuando muere y reactivarlo cuando spawnee

if(currentHealth <= 0 && !muerto ){
muerto = true;
GetComponent<AudioSource>().PlayOneShot(deathClip);length = 5f;
        GetComponent<ScriptDeMovimiento>().enabled = false; //no me acuerdo si era "enabled" o "active", si no funciona ese prueba con active
}

En cuanto a lo del texto si se ve bien en el editor antes de jugar no se donde esta el problema ya que lo unico que hace es activar y desactivarlo, por lo que la posicion no se modifica. Si no consigues solucionar eso manda un par de screenshots
Vale mas problemas....lo de desactivar los controles de el personaje que es el FPSinput controller resulta que esta en JS y el script que trabajamos esta en C## por lo cual no se pueden ver y da fallo....lo de que se baje la vida SI, funciona parcialmente se para a -30 pero se para XD.
 
lo del texto estoy alucinando le he movido el texto delante de las narices al personaje, se vee en pantalla en la previeu , pero cuando muere el texto aparece si, pero donde lo deje, no aparece delante de el personaje osea en la vista de el personaje aparece donde se quedo.Funcionar funciona pero no se mueve con el.
 
Deberia alomejor meterlo en la main camera?, en el jugador? ,(creo que ya lo prove pero provare de nuevo XD
 
Ahora preparo los scrennshots
 
 
A por cierto : GRACIAS!!
 
PARA PARA  lo del texto esta Solucionado!!!!!!!!!!!, mi pobre cabeza no da para mas jajajja es tan facil como meterlo en la main camera....y asi aparece delante de el jugador y se lo lleva con el!!!! ,Bien por ti!!, solo falta aver como desactivamos el controller :PPP
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Jose134 en Julio 04, 2015, 04:46:25 PM
Prueba mirando este post
http://answers.unity3d.com/questions/304952/how-to-enabledisable-javascript-using-a-c-script.html
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 04, 2015, 06:00:14 PM
Cita de: Jose134 date=1436021185Prueba mirando este post
http://answers.unity3d.com/questions/304952/how-to-enabledisable-javascript-using-a-c-script.html
 
Muuuuchas gracias Jose 134 estaba viendo el mismo post que me has puesto lollll, en breve te digo si funciona el metodo meterlo en assets !!
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 04, 2015, 07:41:19 PM
Por cierto ramunda, para hacer las GUI de la vida, tiempo, etc... pienso que es mejor que crees una cámara independiente para todo ello, No es imprescindible evidentemente, pero queda todo más recojido.
 
Simplemente creas una cámara con una prioridad superior a la cámara principal, la dejas parada en un lugar ajeno a tu escena y le quitas la renderización de todo. Posteriormente a todos los componentes que conformen tu GUI le aplicas un filtro en común (por ejemplo GUI sin más) y haces que solo tu cámara GUI pueda renderizarlos.
 
Así evitas que tus paneles GUI vayan moviéndose con tu personaje, los tienes siempre localizados y fuera de que ocasionen fallos. El mismo metodo puede servirte por ejemplo para hacer un minimapa, es realmente práctico.
 
Un saludo.
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 05, 2015, 12:15:03 PM
@Howling Wolf (http://unityspain.com/profile/24428-howling-wolf/), muchas gracias a ti tambien , u si, me parece una idea perfecta , me pongo a ello )
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 05, 2015, 12:20:22 PM
Cita de: Jose134 date=1436021185Prueba mirando este post
http://answers.unity3d.com/questions/304952/how-to-enabledisable-javascript-using-a-c-script.html
Jose134, puedo confirmarte gratamente que funciona poniendolo en standards assets!! se queda en rojo pero funciona!!
 
Ahora me las tengo que apañar pàra que funciones los dichosos sonidos de cuando muere y le pegan que no hay manera de que suenen bien...
 
y que los enemigos se paren de darme mandobles cuando muero;)
 
no sabes lo agradecido que estoy por vuestra ayuda, la verdad es que sin gente como vosotros los que empezamos no tendriamos ni una posibilidad ni ilusion.
 
De verdad, mil gracias a todos(especialmente a ti  por tu paciencia  ).
 
Seguire reportando fallos XDDD
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Jose134 en Julio 05, 2015, 05:04:59 PM
Cita de: ramunda date=1436091622Jose134, puedo confirmarte gratamente que funciona poniendolo en standards assets!! se queda en rojo pero funciona!!
 
Ahora me las tengo que apañar pàra que funciones los dichosos sonidos de cuando muere y le pegan que no hay manera de que suenen bien...
 
y que los enemigos se paren de darme mandobles cuando muero;)
 
no sabes lo agradecido que estoy por vuestra ayuda, la verdad es que sin gente como vosotros los que empezamos no tendriamos ni una posibilidad ni ilusion.
 
De verdad, mil gracias a todos(especialmente a ti  por tu paciencia   ).
 
Seguire reportando fallos XDDD
Sin problema, yo mismo tuve que crear 1000 posts pidiendo ayuda (y todavia me queda muchiiiiiiiisimo por aprender). Aqui estoy para cualquier otra duda
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 05, 2015, 06:04:20 PM
Cita de: Jose134 date=1436108699Sin problema, yo mismo tuve que crear 1000 posts pidiendo ayuda (y todavia me queda muchiiiiiiiisimo por aprender). Aqui estoy para cualquier otra duda
 
Jose de verdad , que me has dado vida para seguir , yo ya tiraba la toalla y aqui estabas tu/ellos, para seguir dando soluciones y animos he aprendido mas en 5 posts que en 100 tutoriales!!!!
 
Pues mira ya que te ofreces aver si vess solucion a los malditos sonidos de cuando muere y cuando le pegan que siguen sonando como los pitufos!!! nose si me explico no suena como ebe como un pitch acelerado, y no entiendo por que . el audiosource esta bien el sonido suena bien por si solo pero en el game suena a lo pitufooo
 
 
las lineas que ya las has visto _P son estas:

currentHealth = currentHealth - 30;
      GetComponent<AudioSource>().PlayOneShot(deathClip2);length = 0.2f;///aqui esta uno de ellos

aqui el otro este va primero que el que he puesto pero eso da igual .

else
   {
      if(currentHealth <= 0 && !muerto ){
         muerto = true;
         GetComponent<AudioSource>().PlayOneShot(deathClip);length = 5f;
         GetComponent<FPSInputController>().enabled = false;

en las lineas 8 y 9 les tengo el public

public AudioClip deathClip;
public AudioClip deathClip2;

aver si hay luz en el tunel XDD nose que probar mas...
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Jose134 en Julio 05, 2015, 06:36:55 PM
Has probado usando el AudioSource.Play en vez del AudioSource.PlayOneShot?
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 06, 2015, 09:08:10 AM
Cita de: Jose134 date=1436114215Has probado usando el AudioSource.Play en vez del AudioSource.PlayOneShot?
 
Hola compi si, pero como soy lerdo me tira estos errores si lo pongo asi?
 
if(currentHealth <= 0 && !muerto ){
muerto = true;
GetComponent<AudioSource>().Play(deathClip);///;length = 5f;
 
Porque si le quito(deathClip) no sabe cual sonar...
 
me tira estos errores:
 
 
The best overloaded method match for `UnityEngine.AudioSource.Play(ulong)' has some invalid arguments
 
y
 
error CS1503: Argument `#1' cannot convert `UnityEngine.AudioClip' expression to type `ulong'
 
 
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Jose134 en Julio 06, 2015, 10:38:47 AM
Vale... Creo que ya se por que ocurre eso.
 
Prueba a asignar primero el clip y luego usar la funcion Play()

GetComponent<AudioSource>().clip = deathClip;
GetComponent<AudioSource>().Play();
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 06, 2015, 02:37:48 PM
Una vez mas Jose134 has atinado de lleno, asi si funciona, no funciona bien pero si funciona el codigo que me has dado lo malo es que el resultado es el mismo de antes sigue sonando mal y no lo entiendo ...le estoy cambiando el pitch aver si consigo algo...pero de momento no veo mejoria, lo raro es que aveces suena como debe y la siguiente suena acelerado y asi. los dos sonidos igual.
 
 
Empiezo a pensar que es cosa de el unity que pierde aceite por todas partes...
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Jose134 en Julio 06, 2015, 04:22:54 PM
La verdad es que segun lo que dices no tiene sentido... Sigue trasteando a ver si lo consigues arreglar y si no prueba dando mas informacion por si el problema esta en otro lado
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 06, 2015, 04:46:24 PM
Cita de: Jose134 date=1436192574La verdad es que segun lo que dices no tiene sentido... Sigue trasteando a ver si lo consigues arreglar y si no prueba dando mas informacion por si el problema esta en otro lado
 
Pasan mas cosas raras , como por ejemplo que los disparos salgan a su ritmo como que se aceleren o ralenticen sin sentido, algo creo que esta podrido en unity o que se laguea y causa estas cosas, pero me he mirado los stats y las fps van maximo al 30 en picos hasta 40 
 
Demasiados arboles,? terreno demasiado grande? demasiadas texturas, no se que decirte...voy a intentar subirlo via ftp osea juego navegador para que lo veas tu mismo
 
asi como lo consiga subir te pongo link
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 06, 2015, 06:45:40 PM
Compii te necesito de nuevooo XDDD
 
como demonios pongo una animación despues de que se muera??
 
e probado esto pero no rula :

if(currentHealth <= 0 && !muerto ){
         muerto = true;
         GetComponent<AudioSource>().PlayOneShot(deathClip);length =7f;
         GetComponent<FPSInputController>().enabled = false;
         GetComponent<CharacterController>().enabled = false;
         Animator animator = GetComponent<Animator> ();
         animator.SetBool("die", true);

la animación se llama "die", tengo el Animator puesto con la animación en el jugador...que me falla?, porque he probado de desabilitar que los bichos no ataquen, que no pueda disparar..y que se yo que mas y los resultados son catastroficos...al apretar el space respawnea sin cesar...no muere....se va corriendo solo hahhahaha, pero eso no es problema :PP, por eso decidi si muere le meto una animacion...
 
 
 
 
tembien he probado...

if(currentHealth <= 0 && !muerto ){

muerto = true;
GetComponent<AudioSource>().PlayOneShot(deathClip);length =7f;
GetComponent<FPSInputController>().enabled = false; 
GetComponent<CharacterController>().enabled = false;
Animator animator = GetComponent<Animator> ();
animator.Play ("die");
 
 
con mas resultados devastadores como el sonido que no para etc...hay dios en que me metiii xdd
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Jose134 en Julio 06, 2015, 06:52:54 PM
Que tal con Animator.PlayState()???

Animator anim = GetComponent<Animator>();
anim.PlayState("die");
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 06, 2015, 07:11:04 PM
Cita de: Jose134 date=1436201574 
Que tal con Animator.PlayState()???

Animator anim = GetComponent<Animator>();
anim.PlayState("die");

no furula...
 
error CS1061: Type `UnityEngine.Animator' does not contain a definition for `PlayState' and no extension method `PlayState' of type `UnityEngine.Animator' could be found (are you missing a using directive or an assembly reference?)
 
Pero aquí hacer referencia al Animator...yo tengo puesto el Animation en donde tiene cargada la animación....es lo mismo?
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 06, 2015, 08:24:18 PM
Sin recordar muy bien creo que para las animaciones es el mismo principio que para los audios, asignar primero la animacion y luego ejecutarla.
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Jose134 en Julio 06, 2015, 08:34:27 PM
Vale error mio no era PlayState() era simplemene Play();
 
http://docs.unity3d.com/ScriptReference/Animator.Play.html
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 06, 2015, 08:34:37 PM
Hola Howling Gracias por la contestación.
 
Pero esque me estoy volviendo tonto...
 
Mira esto , ahora es JS....quiero llamar una animación de recarga y no da error pero no funciona!!!
 
Mira este es el codigo:

var Bala : Rigidbody;
var Velocidad = 80;
static var Municion = 20;
var MunicionDeRecargo = 20;
static var MunicionTotal = 150;
var Conteo = 0;
var guimuni : GUIText;
public var guitotal : GUIText;
var destello : GameObject;
var manoanim : GameObject;
//var municionanim : GameObject;
//var sonido : AudioClip;
var recarga : AudioClip;
var gunShot : AudioClip;
var vacio: AudioClip;
function Start(){
destello.active = false;
}
function Update(){
guimuni.text = "Balas " + Municion.ToString();
guitotal.text = "Total Balas " + MunicionTotal.ToString();
    if (Input.GetButton("Fire1")){
       
        Conteo = Conteo + 1;
       
    if(Conteo > 20){
    
     Conteo = 0;
}   
    if(Conteo == 20 && Municion > 0 && MunicionTotal >= 0){
          
        var clona = Instantiate(Bala, transform.position, transform.rotation);
   clona.velocity = transform.TransformDirection(Vector3(0, 0, Velocidad));
         Municion -= 1;
         Destroy (clona.gameObject, 1);      
   AudioSource.PlayClipAtPoint(gunShot, transform.position, 1);AudioListener.volume = 0.1f;
}
}
if(Input.GetKeyDown("r") && MunicionTotal > 0 && !Input.GetMouseButton(0) && !Input.GetMouseButton(1)){
    
GetComponent.<Animation>().Play("Reload");
    Municion = 0;
    Invoke ("recargando",2);
    //GetComponent.Animator();
    AudioSource.PlayClipAtPoint(recarga, transform.position, 1);
 
}
if(Input.GetMouseButtonDown(0)){
///AudioSource.PlayClipAtPoint(vacio, transform.position, 1);
destello.active = true;
}
else
if(Input.GetMouseButtonUp(0)){
//AudioSource.PlayClipAtPoint(vacio, transform.position, 1);
destello.active = false;
}   
if (Municion <= 0){
if(Input.GetMouseButtonUp(0)){
AudioSource.PlayClipAtPoint(vacio, transform.position, 1);
destello.active = false;
}   
}
}
function recargando (){
if(MunicionTotal > 0){
MunicionTotal -= MunicionDeRecargo;
Municion += MunicionDeRecargo;
}
if (Municion > MunicionDeRecargo){
Municion = MunicionDeRecargo;
}
}

en la linea 43 llamo a la tecla "R" , seguidamente le digo que me arranque la animación Reload previamente puesta  con su animator.....
 
Pues no me hace ni santo casoooo
 
Hay madre me estoy desanimando, no me funciona ni esta ni la otra de cuando muere de arriba en C#~...con lo cerquita que estoy de estar muy contento
 
Cualquier ayuda sera una alabanza mia
 
Gracias de antemanooooooooooo
 
Aqui adjunto el screen de lo que tengo agregado el Animation y el Animator...esto corresponde al de despues de morir
 (//<fileStore.core_Attachment>/monthly_07_2015/post-27191-0-20644300-1436208894.png)
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 06, 2015, 08:48:40 PM
Cita de: Jose134 date=1436207667Vale error mio no era PlayState() era simplemene Play();
 
http://docs.unity3d.com/ScriptReference/Animator.Play.html
 
De error nada !! muchas gracias por la correccion, ahora no da fallo pero tampoco se anima asi, aver repregunto : cual de los dos componentes debo tener puesto: Animation o Animator? este ultimo solo deja cargar avatares y controles.
 
 
Creo que es el Animation no? donde tengo cargada la animación die...
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Jose134 en Julio 06, 2015, 10:56:34 PM
Tienes que añadir animator y crear un AnimatorController y ahi ya pones la animaciones
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 12:36:14 AM
Cita de: Jose134 date=1436216194Tienes que añadir animator y crear un AnimatorController y ahi ya pones la animaciones
 
Me perdido Jose, mas que una rana en la plaza cibeles, añado un Animator...hasta aqui ok....creo un AnimatorControler?....eso de donde lo saco tento un controler por ai echo de nose que...pero que meto en el primer Animator?, entindo que pide un controller...pero de eso a crear un controller a partir de la animación die...wops , soy lerdo total.
 
Voy a trastear aver si que lio esta vez..
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 12:52:40 AM
Cita de: ramunda date=1436222174Me perdido Jose, mas que una rana en la plaza cibeles, añado un Animator...hasta aqui ok....creo un AnimatorControler?....eso de donde lo saco tento un controler por ai echo de nose que...pero que meto en el primer Animator?, entindo que pide un controller...pero de eso a crear un controller a partir de la animación die...wops , soy lerdo total.
 
Voy a trastear aver si que lio esta vez..
 
Vale...ves la labor que estais haciendo no solo aprendo sino que me estrujo el cerebro de mosquito que tengo XD ,ok  encontre com crear un Animatorcontroller....lo edite le meti la animación die dentro...lo guarde...cree un Animator meti el controller con la animación dentro.....probe y no funciona....no da error no pero no arranca la animación...solo veo un detalle que en avatar de el animator...no hay nada....pero creo que no es muy relevante solo se crea el avatar cuando hacer el rigueo y todo eso...
 
 
Buenooo , necesito mas ideas
 
Adjunto los pasos en fotillo ...aver que he echo mal....

if(currentHealth <= 0 && !muerto ){
         muerto = true;
         GetComponent<AudioSource>().PlayOneShot(deathClip);length =7f;
         GetComponent<FPSInputController>().enabled = false;
         GetComponent<CharacterController>().enabled = false;
         Animator anim = GetComponent<Animator>();
         anim.Play("die");
      }
(//<fileStore.core_Attachment>/monthly_07_2015/post-27191-0-13737400-1436223146.png)
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 07, 2015, 12:07:39 PM
Bueno también hay otra forma de hacer funcionar las animaciones y en principio es la mejor, aunque nunca me puse a trastearlo.
 
Se trata de ajustar los condicionales en el propio animator, indicándole que si tal variable pasa a ser x que haga una transición a otra animación, con esta técnica consigues que no hayan cambios bruscos al cambiar de animación aun cuando la primera no se terminó.
 
Siento no poder darte datos más concretos de como hacerlo, ya que lei acerca de ello hace un tiempo pero no lo puse nunca en práctica. De todas formas te lo comentaba por si conseguía abrirte otra puerta de investigación.
 
Un saludo
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 12:56:10 PM
Cita de: Howling Wolf date=1436263659Bueno también hay otra forma de hacer funcionar las animaciones y en principio es la mejor, aunque nunca me puse a trastearlo.
 
Se trata de ajustar los condicionales en el propio animator, indicándole que si tal variable pasa a ser x que haga una transición a otra animación, con esta técnica consigues que no hayan cambios bruscos al cambiar de animación aun cuando la primera no se terminó.
 
Siento no poder darte datos más concretos de como hacerlo, ya que lei acerca de ello hace un tiempo pero no lo puse nunca en práctica. De todas formas te lo comentaba por si conseguía abrirte otra puerta de investigación.
 
Un saludo
Y te lo agradezco deveras Wolf, por supuesto que indagare, pero me gustaría entender o comprender el porque no funciona el sistema anteriormente mencionado.
 
Teoricamente he seguido los pasos tal y como se comento, pero la animación no se da a lugar y no lo entiendo....aver si me podéis dar una explicacion del porque.
 
Mil gracias de antemano y un abrazo a todos!!!
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 07, 2015, 01:21:50 PM
Con mucho riesgo a estar equivocado creo que no lo estas llamando bien al tratarse de un componente Animator, para llamarlo de esta forma está el componente Animation que como verás es muy similar al AudioSource, por lo que para usarlo basta con asignar la animación (previamente incluida en el array de animaciones) y posteriormente ejecutándola.
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 02:20:37 PM
Cita de: Howling Wolf date=1436268110Con mucho riesgo a estar equivocado creo que no lo estas llamando bien al tratarse de un componente Animator, para llamarlo de esta forma está el componente Animation que como verás es muy similar al AudioSource, por lo que para usarlo basta con asignar la animación (previamente incluida en el array de animaciones) y posteriormente ejecutándola.
 
 
Estoy de acuerdo Wolf , como has visto en las imagenes ya meti la animación en el array como dices y esta creado el controler como dijo Jose, he puesto el animator y dentro el controller con la animación die.
 
Hasta aqui sin herrores pero sin funcionar....que idea podrias darme para llamarlo correctamente se te ocurre algo?, o mejor lo probamos con animator? funcionaria tambien? me refiero llamando a una animacíon o algo asi esque nose no paro de probar cosas y no funciona de nunguna manera es desesperante...aver si porfavor se te ocurre algo lo que sea que yo lo pruebo encantado
 
Espero noticias y gracias de nuevo.
 
P.d: he probado a crear un public Gameobject animame:
 
Asi me pide un gameobject que es un empty con la animación dentro....
 
Luego le he dicho:
 
animame.animation.Play("die"); pero me da error en el comando Play no le gusta....
 
 
(
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 07, 2015, 02:49:56 PM
No no, me refiero a usar el componente Animation en vez del Animator, son componentes totalmente distintos.
 
http://docs.unity3d.com/ScriptReference/Animation.html
 
Según recuerdo, cuando lo usé en unity 4 se usaba de forma muy similar al AudioSource, asignando primero la animación por defecto y después darle play al componente. Pero también puedo estar liandote y que ya no se haga así en unity 5 jaja.
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 03:08:43 PM
Cita de: Howling Wolf date=1436273396No no, me refiero a usar el componente Animation en vez del Animator, son componentes totalmente distintos.
 
http://docs.unity3d.com/ScriptReference/Animation.html
 
Según recuerdo, cuando lo usé en unity 4 se usaba de forma muy similar al AudioSource, asignando primero la animación por defecto y después darle play al componente. Pero también puedo estar liandote y que ya no se haga así en unity 5 jaja.
 
La madre del amor hermoso....esto es increible porque no funcionaaaaaaaaaa XDDD , aver repasemos juas.
 
 
Repongo el codigo.

using UnityEngine;
using System.Collections;
public class PlayerInfo : MonoBehaviour {

public GameObject healthBottle;
public GameObject player;
public AudioClip deathClip;
public AudioClip deathClip2;
public float length;
public Animation anim;
int health = 100;
int damageCount = 0;
int currentHealth;
bool playerFighting;
public GUIText healthbar;
float timer = 0.0f;
float healthTimer = 0.0f;
bool healthShouldRespawn = false;

public bool muerto = false;
public GameObject tuUI;

void Start () {
   currentHealth = health;
   tuUI.SetActive(false);
}

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 =7f;
         GetComponent<FPSInputController>().enabled = false;
         GetComponent<CharacterController>().enabled = false;
         //anim = GetComponent<Animator>();
         anim.Play("die");
      }
   }
   healthbar.text = "Vida " + currentHealth + " / 100";
   
   if(healthShouldRespawn)
   {
      healthTimer += Time.deltaTime;
      
      if(healthTimer > 5.0f)
      {
         healthBottle.gameObject.SetActive(true);
         healthTimer = 0.0f;
      }
   }
   
   if(muerto){
      Cursor.visible = true;
      tuUI.SetActive(true);
      if(Input.GetKeyDown(KeyCode.Space)){
         Respawn();
      }
   }
   
}

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

public void playerInCombat(int combat){
   if(combat == 1){
      playerFighting = true;
   }
   else
   {
      playerFighting = false;
   }
}

public void Respawn(){
   tuUI.SetActive(false);
   muerto = false;
   transform.position = new Vector3(Random.Range(50.0f, 120.0f), 0, Random.Range(10.0f, 200.0f));
   GetComponent<FPSInputController>().enabled = true;
   GetComponent<CharacterController>().enabled = true;
   ///GetComponent<disparosyrecargos>().enabled = true;
   ////GetComponent<MouseLook>().enabled = true;
   currentHealth = 100;
}

void OnTriggerEnter(Collider item){
   if(item.gameObject.tag == "PlayerHealthBottle")
   {
      if(currentHealth < 100)
      {
         currentHealth = currentHealth + 50;
         item.gameObject.SetActive(false);
         healthShouldRespawn = true;
      }
   }
}
}

Linea 11, objeto publico Animation el cual me pide en un recuadrito una animación la cual tengo metida en un gameobject que es la de "die". y me deja agregarla.
 
linea 52: 
 
le digo que me anime la anim(previamente puesta en linea 11 y puesta en su casillita como animación...), no da errores pero para variar no funciona hahhahah
 
mmmm voy a provar a cambiar el nombre de la animación por el string1....aver que pasa....
 
Y...........no paso nada igual resultado hahhahah estoy desesperado, nadie a montado una animación en c# al morir su personaje? alguien tiene que haberlo echo antes!!! socorroooo
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 07, 2015, 03:26:05 PM
Para comenzar veo esto...

 if(currentHealth <= 0 && !muerto ){
muerto = true;
GetComponent<AudioSource>().PlayOneShot(deathClip);length =7f;
 GetComponent<FPSInputController>().enabled = false;
GetComponent<CharacterController>().enabled = false;
 //anim = GetComponent<Animator>();
anim.Play("die");

Intentas iniciar directamente la variable anim, pero no le has dicho con que componente.
 
Por otro lado si funciona como en unity 4 animation.Play ejecuta la animación que esté en ese momento por defecto, no una añadida a una variable Animation
 
(http://i58.tinypic.com/2553kup.jpg)
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 04:17:37 PM
Cita de: Howling Wolf date=1436275565Para comenzar veo esto...

 if(currentHealth <= 0 && !muerto ){
muerto = true;
GetComponent<AudioSource>().PlayOneShot(deathClip);length =7f;
 GetComponent<FPSInputController>().enabled = false;
GetComponent<CharacterController>().enabled = false;
 //anim = GetComponent<Animator>();
anim.Play("die");

Intentas iniciar directamente la variable anim, pero no le has dicho con que componente.
 
Por otro lado si funciona como en unity 4 animation.Play ejecuta la animación que esté en ese momento por defecto, no una añadida a una variable Animation
 
(http://i58.tinypic.com/2553kup.jpg)
Bien siguiendo tus instrucciones:
 
tenemos esto:
 
como puedes ver en la foto esta solo el principal como me has comentado....y como puedes ver dice que n lo encuantra nose porque...
 
 
este es el codigo midificado llamando al componente:

else
   {
      if(currentHealth <= 0 && !muerto ){
         muerto = true;
         GetComponent<AudioSource>().PlayOneShot(deathClip);length =7f;
         GetComponent<FPSInputController>().enabled = false;
         GetComponent<CharacterController>().enabled = false;
         GetComponent<Animation>().Play("die");
      }

No lo entiendo algo se nis escapa.... (//<fileStore.core_Attachment>/monthly_07_2015/post-27191-0-20668800-1436278519.png)
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 07, 2015, 04:27:09 PM
Ando rebuscando info, ya que tarde o temprano tenia que actualizarme a unity 5 y me has picado jajaja.
 
Por lo que he leido hasta ahora parece que ha cambiado como imaginaba, cada vez lo complican más xD
 
Voy a ver si doy con la forma de hacerlo funcionar.
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 04:32:38 PM
Cita de: Howling Wolf date=1436279229Ando rebuscando info, ya que tarde o temprano tenia que actualizarme a unity 5 y me has picado jajaja.
 
Por lo que he leido hasta ahora parece que ha cambiado como imaginaba, cada vez lo complican más xD
 
Voy a ver si doy con la forma de hacerlo funcionar.
 
Asi esss esto del unity 5 me lleva de cabeza hahahha yo estoy tambien buscado aver que demonios.....gracias por tu tiempoo espero que lo encuentres porque yo...no tengo suerte
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 07, 2015, 05:06:55 PM
Vale ya lo he conseguido, que poco intuitivo lo han puesto, te explico...
 
En primer lugar te digo que está en javascript, lo siento pero es mi lenguaje, así que tendrás que traducir un poco xD
 
Ok, una variable de clase

public var die : AnimationClip;

Y a continuación tu código del Update

 if(currentHealth <= 0 && !muerto ){
muerto = true;
GetComponent<AudioSource>().PlayOneShot(deathClip);length =7f;
GetComponent<FPSInputController>().enabled = false;
GetComponent<CharacterController>().enabled = false;
var anim = GetComponent.<Animation>();
anim.AddClip(die, "die");
anim.Play("die");
  }

Primero tienes que añadir la animación (el clip, no el gameObject) a la variable die en el inspector.
Y segundo lo que más me ha costado. Seleccionas el clip para que aparezca en el inspector, haces clic derecho a la propia pestaña de inspector y seleccionas Debug. Así se extienden las propiedades y puedes seleccionar Legacy.
 
Así a mi me funciona y puedes añadir tantas animaciones como quieras con AddClip.
 
Prueba y me comentas.
 
EDITO: Cuando te funcione lo mejor que es añadas los clips en la funcion Start, así ya estarán precargados.
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 06:10:04 PM
Cita de: Howling Wolf date=1436281615Vale ya lo he conseguido, que poco intuitivo lo han puesto, te explico...
 
En primer lugar te digo que está en javascript, lo siento pero es mi lenguaje, así que tendrás que traducir un poco xD
 
Ok, una variable de clase

public var die : AnimationClip;

Y a continuación tu código del Update

 if(currentHealth <= 0 && !muerto ){
muerto = true;
GetComponent<AudioSource>().PlayOneShot(deathClip);length =7f;
GetComponent<FPSInputController>().enabled = false;
GetComponent<CharacterController>().enabled = false;
var anim = GetComponent.<Animation>();
anim.AddClip(die, "die");
anim.Play("die");
  }

Primero tienes que añadir la animación (el clip, no el gameObject) a la variable die en el inspector.
Y segundo lo que más me ha costado. Seleccionas el clip para que aparezca en el inspector, haces clic derecho a la propia pestaña de inspector y seleccionas Debug. Así se extienden las propiedades y puedes seleccionar Legacy.
 
Así a mi me funciona y puedes añadir tantas animaciones como quieras con AddClip.
 
Prueba y me comentas.
 
EDITO: Cuando te funcione lo mejor que es añadas los clips en la funcion Start, así ya estarán precargados.
 
Pues la hemos liado...
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 07, 2015, 06:24:39 PM
A ver si puedo yo, pero esto si que dudo que lo consiga, porque se me da fatal C#
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 07, 2015, 06:34:42 PM
Vale no era muy complicado
 
Variable de clase

public AnimationClip die;

Y en update

var anim = GetComponent<Animation>();
anim.AddClip(die,"die");
anim.Play("die");

De nuevo me funciona con este script de C#
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 06:34:53 PM
Cita de: Howling Wolf date=1436286279A ver si puedo yo, pero esto si que dudo que lo consiga, porque se me da fatal C#
 
La primera parte esta clara:
 
Esto es esto:
 
public AnimationClip Die;
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 06:44:06 PM
Cita de: Howling Wolf date=1436286882Vale no era muy complicado
 
Variable de clase

public AnimationClip die;

Y en update

var anim = GetComponent<Animation>();
anim.AddClip(die,"die");
anim.Play("die");

De nuevo me funciona con este script de C#
Madre mia ...que envidia mas sana me das..juer que maquina...me encantaria celebrarlo..pero no funca...
 
The animation state die could not be pla*** because it couldn't be found!
Please attach an animation clip with the name 'die' or call this function only for existing animations.
UnityEngine.Animation:Play(String)
 
Cuando llama a la animación no la encuentra y tengo el Animation com me digistes solo con la principal...
 
Cre que busca el String osea la 1 la 2 o algo asi..puede ser?
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 07, 2015, 06:53:27 PM
Ese es uno de los errores que me daba cuando estaba probando y, aunque no recuerdo exactamente cuando me lo dio si que detecto que mezclaste dos cosas. Para este último experimento no tienes que asociar el clip al default del Animation, solamente tienes que meter el clip en la variable die.
 
Hagamos una cosa, que es como fui haciéndolo yo. Comenta la última linea y comprueba que al iniciar la aplicacion se asocia correctamente el clip justo debajo del default del Animation.
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 07:25:46 PM
Cita de: Howling Wolf date=1436288007Ese es uno de los errores que me daba cuando estaba probando y, aunque no recuerdo exactamente cuando me lo dio si que detecto que mezclaste dos cosas. Para este último experimento no tienes que asociar el clip al default del Animation, solamente tienes que meter el clip en la variable die.
 
Hagamos una cosa, que es como fui haciéndolo yo. Comenta la última linea y comprueba que al iniciar la aplicacion se asocia correctamente el clip justo debajo del default del Animation.
 
Creo que te he entendido , he quitado la "default" de Animation, ahora esta en None, e puesto la die animación en la variable die, he arrancad el game en ventanica para ver el inspector y no no se asocia a el animator, creo que era esa la prueba no?
 
Gracias de antemano, sigo esperando mas ideas
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 07, 2015, 07:40:48 PM
Eso mismo es lo que temía, ya que el error te decía textualmente que solo puedes llamar strings que han sido asociados previamente. Pero esto si que no tiene sentido ninguno, ya que si has escrito exactamente el código que te puse, que baje alguien y me diga porque a mi me funciona y a ti no.
 
Además es que no tiene misterio.
anim.AddClip/*Añade el clip de*/(die/*La animación de la variable die*/,"die"/*Que ahora tendrá como string "die"*/);
anim.Play("die");
 
Comprueba que no tengas un error de sintaxis, otra cosa no se me ocurre socio.
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 08:01:51 PM
Cita de: Howling Wolf date=1436290848Eso mismo es lo que temía, ya que el error te decía textualmente que solo puedes llamar strings que han sido asociados previamente. Pero esto si que no tiene sentido ninguno, ya que si has escrito exactamente el código que te puse, que baje alguien y me diga porque a mi me funciona y a ti no.
 
Además es que no tiene misterio.
anim.AddClip/*Añade el clip de*/(die/*La animación de la variable die*/,"die"/*Que ahora tendrá como string "die"*/);
anim.Play("die");
 
Comprueba que no tengas un error de sintaxis, otra cosa no se me ocurre socio.
 
Te adjunto el fragmento de codigo y la foto de como lo tengo..exactamente como tu me has dicho lo unico que he probado es de cambian la animacion de "Humanoid" a legazy y ahora no sale el error, pero tampoco se asocia a el Animator , ni se ejecuta la animacion ((, tu como la tienes?

if(currentHealth <= 0 && !muerto ){
         muerto = true;
         GetComponent<AudioSource>().PlayOneShot(deathClip);length =7f;
         GetComponent<FPSInputController>().enabled = false;
         GetComponent<CharacterController>().enabled = false;
         var anim = GetComponent<Animation>();
         anim.AddClip(die,"die");
         anim.Play("die");

y la de arriba

public AnimationClip die;

y todo el codigo por si acasooo

using UnityEngine;
using System.Collections;
public class PlayerInfo : MonoBehaviour {

public GameObject healthBottle;
public GameObject player;
public AudioClip deathClip;
public AudioClip deathClip2;
public float length;
public AnimationClip die;
int health = 100;
int damageCount = 0;
int currentHealth;
bool playerFighting;
public GUIText healthbar;
float timer = 0.0f;
float healthTimer = 0.0f;
bool healthShouldRespawn = false;

public bool muerto = false;
public GameObject tuUI;

void Start () {
   currentHealth = health;
   tuUI.SetActive(false);
   }

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 =7f;
         GetComponent<FPSInputController>().enabled = false;
         GetComponent<CharacterController>().enabled = false;
         var anim = GetComponent<Animation>();
         anim.AddClip(die,"die");
         anim.Play("die");
         
      }
   }
   healthbar.text = "Vida " + currentHealth + " / 100";
   
   if(healthShouldRespawn)
   {
      healthTimer += Time.deltaTime;
      
      if(healthTimer > 5.0f)
      {
         healthBottle.gameObject.SetActive(true);
         healthTimer = 0.0f;
      }
   }
   
   if(muerto){
      Cursor.visible = true;
      tuUI.SetActive(true);
      if(Input.GetKeyDown(KeyCode.Space)){
         Respawn();
      }
   }
   
}

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

public void playerInCombat(int combat){
   if(combat == 1){
      playerFighting = true;
   }
   else
   {
      playerFighting = false;
   }
}

public void Respawn(){
   tuUI.SetActive(false);
   muerto = false;
   transform.position = new Vector3(Random.Range(50.0f, 120.0f), 0, Random.Range(10.0f, 200.0f));
   GetComponent<FPSInputController>().enabled = true;
   GetComponent<CharacterController>().enabled = true;
   ///GetComponent<disparosyrecargos>().enabled = true;
   ////GetComponent<MouseLook>().enabled = true;
   currentHealth = 100;
}

void OnTriggerEnter(Collider item){
   if(item.gameObject.tag == "PlayerHealthBottle")
   {
      if(currentHealth < 100)
      {
         currentHealth = currentHealth + 50;
         item.gameObject.SetActive(false);
         healthShouldRespawn = true;
      }
   }
}
}

y la foto de la animaCion!!! (//<fileStore.core_Attachment>/monthly_07_2015/post-27191-0-88595800-1436291548.png)
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 08:36:46 PM
Aver compi....he descubierto algo....no caimos en una cosa.Mira esto:

else
   {
      if(currentHealth <= 0 && !muerto ){
         muerto = true;
         GetComponent<AudioSource>().PlayOneShot(deathClip);length =7f;
         GetComponent<FPSInputController>().enabled = false;
         GetComponent<CharacterController>().enabled = false;
      }
   }

Linea 46, si la vida es = a 0....&& !muerto....te lleva directamente al muerto!! , entonces se nos saltaba esta parte que le añadiamos....la he puesto aqui:

if(muerto){
      var anim = GetComponent<Animation>();
      anim.AddClip(Die,"die");
      anim.Play("die");
      Cursor.visible = true;
      tuUI.SetActive(true);
      if(Input.GetKeyDown(KeyCode.Space)){
         Respawn();
      }
   }

Ahora si añade la animación die en el animator....pero no el la general sino en la string 1, pero sigui sin verse la animacion!!!!!!!!! sale el text guy sale todo!!! pero no la jodia animacion_!!!!!!!!!
 
 
 
(((
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 07, 2015, 08:55:23 PM
Me di cuenta de que nada más empezar cambiabas la booleana muerto, pero no le hice mucho caso porque si te reproducia los sonidos.
 
Y sí, es en el array de animaciones donde tiene que aparecer, no en el default. Y dices que asignando bien el clip no te da ningun error y sigue sin reproducir la animacion? Joder como se hace de rogar, espero que el clip no esté vacío, sino te mato jajajajaja
 
Te he subido el proyecto para que lo pruebes tal cual está, ya por descartar, no se.
 
https://mega.nz/#!ss8wGToD!VDw0txJy4q3uOrjOf4fUNbcwEy0f4tJvK1DARXpadKs
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 09:21:50 PM
Cita de: Howling Wolf date=1436295323Me di cuenta de que nada más empezar cambiabas la booleana muerto, pero no le hice mucho caso porque si te reproducia los sonidos.
 
Y sí, es en el array de animaciones donde tiene que aparecer, no en el default. Y dices que asignando bien el clip no te da ningun error y sigue sin reproducir la animacion? Joder como se hace de rogar, espero que el clip no esté vacío, sino te mato jajajajaja
 
Te he subido el proyecto para que lo pruebes tal cual está, ya por descartar, no se.
 
https://mega.nz/#!ss8wGToD!VDw0txJy4q3uOrjOf4fUNbcwEy0f4tJvK1DARXpadKs
 
Jur la pelotilla XDDDD muy bueno hahahhah ...la naimación la has echo tu no?, porque no se puede reproducir con un play ni nada xd me dice this model is not availiable for prevou tal y tal....
 
 
aix nose , tambien al poner los scripts donde muerto...los sonidos no se paran la animacion no funciona esto es frustrante...voy a provar de crear una animacion cualquiera aver si furula...
 
 
 
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 07, 2015, 09:30:37 PM
Joder, si es una esfera normal hecha en unity y el proyecto te lo he pasado tal cual lo tengo yo.
 
Al final me hago minero macho jajaja
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 09:34:41 PM
Cita de: Howling Wolf date=1436297437Joder, si es una esfera normal hecha en unity y el proyecto te lo he pasado tal cual lo tengo yo.
 
Al final me hago minero macho jajaja
 
hahaha nooo no te tires a mineroooo que vales mucho maco , lo de la esfera mola pero te preguntaba si la animación la habias echo tu, he visto el proyecto y si cambia de estado y se anima.
 
Estoy intentando crear una animación para ver ....espera hahahhahah voy a coger tu pelota hahhahahahha voy a probar  
 
por cierto deberia de hacer sto de exportar todo el proyecto...por si se me casca o algo como lo has echo?
 
Uffffffffffff con la pelota es peorrrrrrrrrrrrr ni sale la pelota ni hace animación ni nada peor aun me lleva a unas coordenadas no deseadas!!! o dios mio me quiero morir!!!!
 
 
porque tiene que ser todo tan dificil!!!!!1
 
 
 :(
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 07, 2015, 09:44:58 PM
Ah vale, habia entendido que no te aparecia la esfera y ya me estaba tirando de los pelos jajaja.
 
Sí, la animación la hice en unity directamente, entiendo de esta forma que tu importaste la animacion del programa de diseño. Con que formato importaste el archivo 3D?
 
Y si no haces backups de tu proyecto te recomiendo que empieces ya, porque no sería el primer trabajo que pierdo porque se corrompió, simplemente haz una copia de la carpeta donde guardas todo y listo.
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 09:57:08 PM
Cita de: Howling Wolf date=1436298298Ah vale, habia entendido que no te aparecia la esfera y ya me estaba tirando de los pelos jajaja.
 
Sí, la animación la hice en unity directamente, entiendo de esta forma que tu importaste la animacion del programa de diseño. Con que formato importaste el archivo 3D?
 
Y si no haces backups de tu proyecto te recomiendo que empieces ya, porque no sería el primer trabajo que pierdo porque se corrompió, simplemente haz una copia de la carpeta donde guardas todo y listo.
 
Asi de facil? cojonudo lo are...y no la animación es una que hay echa por ai de un hombre que se muere XDDD...pero con la de la pelota tampoco me va bien , y se descoloca el respawn nose porque ...reaparece fuera de lugar y se casca todo...estoy triste....aver otra idea....pasamos de esta animacion!!! ...almenos que me aga la animación de recarga...esta en JS ...jijijij ese es tu fuerte!!!!
 
 
Aqui va el script!!!

var Bala : Rigidbody;
var Velocidad = 80;
static var Municion = 20;
var MunicionDeRecargo = 20;
static var MunicionTotal = 150;
var Conteo = 0;
var guimuni : GUIText;
public var guitotal : GUIText;
var destello : GameObject;
var manoanim : GameObject;
//var municionanim : GameObject;
//var sonido : AudioClip;
var recarga : AudioClip;
var gunShot : AudioClip;
var vacio: AudioClip;
function Start(){
destello.active = false;
}
function Update(){
guimuni.text = "Balas " + Municion.ToString();
guitotal.text = "Total Balas " + MunicionTotal.ToString();
    if (Input.GetButton("Fire1")){
       
        Conteo = Conteo + 1;
       
    if(Conteo > 20){
    
     Conteo = 0;
}   
    if(Conteo == 20 && Municion > 0 && MunicionTotal >= 0){
          
        var clona = Instantiate(Bala, transform.position, transform.rotation);
   clona.velocity = transform.TransformDirection(Vector3(0, 0, Velocidad));
         Municion -= 1;
         Destroy (clona.gameObject, 1);      
   AudioSource.PlayClipAtPoint(gunShot, transform.position, 1);AudioListener.volume = 0.1f;
}
}
if(Input.GetKeyDown("r") && MunicionTotal > 0 && !Input.GetMouseButton(0) && !Input.GetMouseButton(1)){
    
GetComponent.<Animation>().Play("Reload");
    Municion = 0;
    Invoke ("recargando",2);
    AudioSource.PlayClipAtPoint(recarga, transform.position, 1);
 
}
if(Input.GetMouseButtonDown(0)){
///AudioSource.PlayClipAtPoint(vacio, transform.position, 1);
destello.active = true;
}
else
if(Input.GetMouseButtonUp(0)){
//AudioSource.PlayClipAtPoint(vacio, transform.position, 1);
destello.active = false;
}   
if (Municion <= 0){
if(Input.GetMouseButtonUp(0)){
AudioSource.PlayClipAtPoint(vacio, transform.position, 1);
destello.active = false;
}   
}
}
function recargando (){
if(MunicionTotal > 0){
MunicionTotal -= MunicionDeRecargo;
Municion += MunicionDeRecargo;
}
if (Municion > MunicionDeRecargo){
Municion = MunicionDeRecargo;
}
}

Instruyeme maestroooo como le meto animacion de recarga XDDD, explico...
 
linea 43....le meti un GetComponent.<Animation>().Play("Reload"); biennn soy asi de lerdo jajajjaja evidentemente no hace nada hahhahaha
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 07, 2015, 10:18:33 PM
A ver a ver, por pasos. Me estas diciendo que encontraste por ahí una animación de muerte y se la querías implementar a tu modelo?
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 10:26:12 PM
Cita de: Howling Wolf date=1436300313A ver a ver, por pasos. Me estas diciendo que encontraste por ahí una animación de muerte y se la querías implementar a tu modelo?
 
Si XDDD, lol , haqbia una animacion de un pelele muriendose y me gusto Xd y pense..se la pongo!! ,pero al ver que tu animacón de la pelota (efera)tampoco me furula...lo he tirado por la borda...
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 07, 2015, 10:36:49 PM
Pues siento decirte que muy dificilmente te va a funcionar una animación que no hayas hecho en el propio modelo, ya que influyen más factores en eso.
 
Por otro lado no es que no te funcione la animación de la esfera, es que se te mueve de sitio porque la animación usa un transform, así que evidentemente se descoloca. Yo para los respawns destruyo el prefab e instancio otro el el lugar que quiera, así me aseguro que el prefab está limpio.
 
Otra cosa es que no te recomiendo que mezcles lenguajes a la hora de programar, ya que vas a encontrar más inconvenientes que ventajas al hacerlo.
 
Y por último si no te has hecho con el control de la primera animación no te metas en otra, porque te vas a encontrar el mismo problema.
 
Trata de crear tú una animación simple e impleméntala con el método que ya sabes, ya que para una animación de recarga hay que usar más cosas, como por ejemplo un yeld. Y aparte hay que estudiar y comprender primero como está escrito un script que no has escrito, porque hay mil y una formas de hacer lo mismo
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 10:47:24 PM
Cita de: Howling Wolf date=1436301409Pues siento decirte que muy dificilmente te va a funcionar una animación que no hayas hecho en el propio modelo, ya que influyen más factores en eso.
 
Por otro lado no es que no te funcione la animación de la esfera, es que se te mueve de sitio porque la animación usa un transform, así que evidentemente se descoloca. Yo para los respawns destruyo el prefab e instancio otro el el lugar que quiera, así me aseguro que el prefab está limpio.
 
Otra cosa es que no te recomiendo que mezcles lenguajes a la hora de programar, ya que vas a encontrar más inconvenientes que ventajas al hacerlo.
 
Y por último si no te has hecho con el control de la primera animación no te metas en otra, porque te vas a encontrar el mismo problema.
 
Trata de crear tú una animación simple e impleméntala con el método que ya sabes, ya que para una animación de recarga hay que usar más cosas, como por ejemplo un yeld. Y aparte hay que estudiar y comprender primero como está escrito un script que no has escrito, porque hay mil y una formas de hacer lo mismo
Si mi amigo, ojala ese script que tantas veces has visto estuviera en java..ya que la mayoria de scripts que tengo que parar etc...estan en java pero este *** esta en c# ..
 
el yeld que me comentas es para implementar segundos y tiempos por ejemplo para que le de tiempo a la animación de ejecutarse correctamente pero el yeld wait for seconds necesita una subrutina muy puñetera que es delicada...me he tirado horas y horas leyendo...he aprendi mas con tigo en 15 posts que en 5 dias leyendo.
 
Si tienes alguna manera de pasar a java el dichoso script entero!! , azmela saber me facilitaria muchas cosas ya que como te digo no puedo ni desabilitar el arma y aunque se muere y sale el cartelito estas muerto sigue disparando el desgraciado....
 
 
Entiendo que estés hasta las pelotas de mi  y lo entiendo soy un pesado lerdo.
 
Pero te agradezco cualquier ayuda extra que me puedas aportar.
 
Si no es tu deseo lo entenderé y repito te doy las gracias por toda esta atención que me has prestado!!!
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 07, 2015, 11:09:40 PM
No no, para nada se trata de estar hasta las pelotas jajaja, al revés, estas cosas me ayudan a mejorar, que por mucho que creas que se no tengo ni *** idea xD
 
Un traductor en la asset store? mmm... se que la gente es muy capaz, pero me extrañaría que funcionara bien, ya que no es como traducir del español al inglés.
 
Es normal que tengas tantos problemas al usar un script que no has escrito tu, porque la forma de expresarse en programación es muy distinta de una persona a otra, y además seguramente por lo que me comentas ese script no estaba pensado ni preparado para incluirle más cosas. (Por cierto como me digas que el script lo sacaste de Nodician te desheredo para siempre xD)
 
Y como bien dices los yield no se pueden usar en funciones que no sean corutinas. Para que me entiendas solo se puede usar en funciones que son llamadas por ti a drede o lo que es lo mismo, funciones que hayas creado tu.
 
Un ejemplo práctico sería...

public var recargar : AnimationClip;
private var puedeMoverse : boolean = true;
function Recargar () {
puedeMoverse = false;
//Aquí todo lo de la animación;
yield WaitForSeconds (recargar.length)
puedeMoverse = true;
}

Así consigues que la funcion se espere el tiempo que dure la animación y que durante ese tiempo el personaje no se mueva. Evidentemente no puedes usar un yield en UpDate porque esa funcion no se puede detener, se actualiza cada frame.
Evidentemente la variable booleana no está enlazada a nada, pero por plantearte un poco por donde irian los tiros.
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 11:32:30 PM
Cita de: Howling Wolf date=1436303380No no, para nada se trata de estar hasta las pelotas jajaja, al revés, estas cosas me ayudan a mejorar, que por mucho que creas que se no tengo ni *** idea xD
 
Un traductor en la asset store? mmm... se que la gente es muy capaz, pero me extrañaría que funcionara bien, ya que no es como traducir del español al inglés.
 
Es normal que tengas tantos problemas al usar un script que no has escrito tu, porque la forma de expresarse en programación es muy distinta de una persona a otra, y además seguramente por lo que me comentas ese script no estaba pensado ni preparado para incluirle más cosas. (Por cierto como me digas que el script lo sacaste de Nodician te desheredo para siempre xD)
 
Y como bien dices los yield no se pueden usar en funciones que no sean corutinas. Para que me entiendas solo se puede usar en funciones que son llamadas por ti a drede o lo que es lo mismo, funciones que hayas creado tu.
 
Un ejemplo práctico sería...

public var recargar : AnimationClip;
private var puedeMoverse : boolean = true;
function Recargar () {
puedeMoverse = false;
//Aquí todo lo de la animación;
yield WaitForSeconds (recargar.length)
puedeMoverse = true;
}

Así consigues que la funcion se espere el tiempo que dure la animación y que durante ese tiempo el personaje no se mueva. Evidentemente no puedes usar un yield en UpDate porque esa funcion no se puede detener, se actualiza cada frame.
Evidentemente la variable booleana no está enlazada a nada, pero por plantearte un poco por donde irian los tiros.
 
Si me voy haciendo a la idea , deberia profundizar aver si lo consigo pero de verdad me hurge intentar convertir el script que te puse que esta en c# , y no te creas no es de nodician hahhahahha es de un guiri un tal Brakies o algo asi y no es todo suyo , el suyo era diminuto y lo he ido agrandando a base de provar preguntar y leer tutos...pero ahora me hace la puñeta porque el resto o casi todo el resto que tengo estan en Java , y no puedo avanzar correctamente...lo minimo es poder parar que dispare el muñeco cuendo se lo cargan hahhahaha y para eso tengo que llamar a scrips de java haciendo mil birguerias como ponindolos en standard assets para que sean publicos para unity...y uan asi da muchos problemas porque no todos sirven....asi que....conoces a alguien que sea un maquina y pueda convertirlo?  yo lo he intentado y ni te cuento.....
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 07, 2015, 11:38:22 PM
A mi no me mires, le tengo un poco de alergia a C# jajajaja. Y mira que se dice que es mejor C# que javascript, pero es que no me gusta xD
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 07, 2015, 11:44:50 PM
Cita de: Howling Wolf date=1436305102A mi no me mires, le tengo un poco de alergia a C# jajajaja. Y mira que se dice que es mejor C# que javascript, pero es que no me gusta xD
 
Pero puedes probar de recontruirlo?, nose.. por probar...o conoces a alguien que pueda esque sino, estoy por apagar y dejarlo...me estoy encontrando esta gran barrera...y si no la paso vendran otras muchas mas y lo mas triste esque tengo algo bonito..muchisimas horas de curro y todo se ira al garete...no perdere mas tiempo ahora que empezaba a tener un proyecto decente, me ecuentro con esto y lo mejor es que empiezo a toquetear cosillas y funcionan de mi cabezotea..nada serio claro.
 
puedo intentar abrir un nuevo post simplemente pidiendo aver si alguien me lo puede transformar..pero no creo que ...
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 08, 2015, 12:09:24 AM
Piensa que esto es una carrera de fondo, no de rapidez y barreras te vas a encontrar hasta cuando lleves 30 años programando. Comprendo lo que dices, pero piensa que traducir eso es un trabajo lento hasta para el que sabe los 2 lenguajes. Tendrás que tomártelo con filosofia y paciencia y tratar de hacerlo poco a poco.
 
Si pensaste en algun momento que cuando ya sabes te funciona todo a la primera lamento ser yo quien lo desmienta, porque esto es prueba y error
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 08, 2015, 12:14:33 AM
Cita de: Howling Wolf date=1436306964Piensa que esto es una carrera de fondo, no de rapidez y barreras te vas a encontrar hasta cuando lleves 30 años programando. Comprendo lo que dices, pero piensa que traducir eso es un trabajo lento hasta para el que sabe los 2 lenguajes. Tendrás que tomártelo con filosofia y paciencia y tratar de hacerlo poco a poco.
 
Si pensaste en algun momento que cuando ya sabes te funciona todo a la primera lamento ser yo quien lo desmienta, porque esto es prueba y error
 
sisis eso lo se :PP , pero digamos que mejor empezar la casa por los cimientos.....y poco a poco ir subiendo esta barrera es muy grande y si no puedo ni lograr los minimos despues seran muy grandes los chaparrones...esperemos que algun alma caritativa lea mi nuevo post que he plantado y ..esperemos el milagrooo...o sino....juas se me ocurre algo hahhahaha no te va a gustar hahhahahahha
 
Tu eres un manitas en esto...y si lo empezamos a contruir despacio modulo a modulo? digo el script no el juego eeee hahahha tampoco no hay tanta cosa...que me dices?
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 08, 2015, 12:33:28 AM
Ya quisiera yo poder disponer de tiempo para dedicarle a esto sin parar, pero empiezo a trabajar dentro de nada y voy a tener que pausar el avance hasta de mi juego.(hay que ganar el pan)
 
Y ojo, es cierto que es bueno empezar por cosas básicas, pero todo lo aprendido ya queda ahí para ti. Quizá lo que te recomendaría es que leas un poco acerca de todas las posibilidades que tiene unity sin llegar a estudiartelo, así cuando pienses en como hacer algo tendras una pequeña idea de como podrias hacerlo y posteriormente buscar como hacerlo exactamente.
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 08, 2015, 10:50:51 AM
Cita de: Howling Wolf date=1436308408Ya quisiera yo poder disponer de tiempo para dedicarle a esto sin parar, pero empiezo a trabajar dentro de nada y voy a tener que pausar el avance hasta de mi juego.(hay que ganar el pan)
 
Y ojo, es cierto que es bueno empezar por cosas básicas, pero todo lo aprendido ya queda ahí para ti. Quizá lo que te recomendaría es que leas un poco acerca de todas las posibilidades que tiene unity sin llegar a estudiartelo, así cuando pienses en como hacer algo tendras una pequeña idea de como podrias hacerlo y posteriormente buscar como hacerlo exactamente.
 
Voy a darme por aludido y pensar que es un no .
 
Pero muchas gracias de nuevo de verdad, por todo, me planterae empezar de nuevo o aparcar mi aventura
Estare por aqui simpre que quieras compañero.
 
Un saludo
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 08, 2015, 08:00:32 PM
Howling!!!!!!!! te necesitoooooooooooooo hahahha que cojones le pongo a esto!!! estoy transformado scrips de js a c# que en vista de el exito.....
 
 
solo me faltan las lineas en rojo...aver si le vees que falta te los pongo los 2!!
 
este es el c# osea el convertido xd a mano y a maquina hhahaha

using UnityEngine;
using System.Collections;
public class disparosyrecargos : MonoBehaviour {
Rigidbody Bala;
float Velocidad = 80;
static float Municion = 20;
float MunicionDeRecargo = 20;
static float MunicionTotal = 150;
float Conteo = 0;
GUIText guimuni;
public GUIText guitotal;
GameObject destello;
GameObject manoanim;
//GameObject municionanim;
//AudioClip sonido;
AudioClip recarga;
AudioClip gunShot;
AudioClip vacio;
void Start (){
destello.active = false;
}
void Update (){
guimuni.text = "Balas " + Municion.ToString();
guitotal.text = "Total Balas " + MunicionTotal.ToString();
    if (Input.GetButton("Fire1")){
       
        Conteo = Conteo + 1;
       
    if(Conteo > 20){
    
     Conteo = 0;
}   
    if(Conteo == 20 && Municion > 0 && MunicionTotal >= 0){
          
        FIXME_VAR_TYPE clona= Instantiate(Bala, transform.position, transform.rotation);
   clona.velocity = transform.TransformDirection(Vector3(0, 0, Velocidad));
         Municion -= 1;
         Destroy (clona.gameObject, 1);      
   AudioSource.PlayClipAtPoint(gunShot, transform.position, 1);AudioListener.volume = 0.1f;
}
}
if(Input.GetKeyDown("r") && MunicionTotal > 0 && !Input.GetMouseButton(0) && !Input.GetMouseButton(1)){
    
///GetComponent.<Animation>().Play("Reload");
    Municion = 0;
    Invoke ("recargando",2);
    AudioSource.PlayClipAtPoint(recarga, transform.position, 1);
 
}
if(Input.GetMouseButtonDown(0)){
///AudioSource.PlayClipAtPoint(vacio, transform.position, 1);
destello.active = true;
}
else
if(Input.GetMouseButtonUp(0)){
//AudioSource.PlayClipAtPoint(vacio, transform.position, 1);
destello.active = false;
}   
if (Municion <= 0){
if(Input.GetMouseButtonUp(0)){
AudioSource.PlayClipAtPoint(vacio, transform.position, 1);
destello.active = false;
}   
}
}
void recargando (){
if(MunicionTotal > 0){
MunicionTotal -= MunicionDeRecargo;
Municion += MunicionDeRecargo;
}
if (Municion > MunicionDeRecargo){
Municion = MunicionDeRecargo;
}
}

coño no se ve en rojo , vale las fallas estan aqui:
 
if(Conteo == 20 && Municion > 0 && MunicionTotal >= 0){
 
   FIXME_VAR_TYPE clona= Instantiate(Bala, transform.position, transform.rotation);
clona.velocity = transform.TransformDirection(Vector3(0, 0, Velocidad));
    Municion -= 1;
    Destroy (clona.gameObject, 1);
AudioSource.PlayClipAtPoint(gunShot, transform.position, 1);AudioListener.volume = 0.1f;
}
 
lo demas aprece normal
 
 
 
este es el original en js

var Bala : Rigidbody;
var Velocidad = 80;
static var Municion = 20;
var MunicionDeRecargo = 20;
static var MunicionTotal = 150;
var Conteo = 0;
var guimuni : GUIText;
public var guitotal : GUIText;
var destello : GameObject;
var manoanim : GameObject;
//var municionanim : GameObject;
//var sonido : AudioClip;
var recarga : AudioClip;
var gunShot : AudioClip;
var vacio: AudioClip;
function Start(){
destello.active = false;
}
function Update(){
guimuni.text = "Balas " + Municion.ToString();
guitotal.text = "Total Balas " + MunicionTotal.ToString();
    if (Input.GetButton("Fire1")){
       
        Conteo = Conteo + 1;
       
    if(Conteo > 20){
    
     Conteo = 0;
}   
    if(Conteo == 20 && Municion > 0 && MunicionTotal >= 0){
          
        var clona = Instantiate(Bala, transform.position, transform.rotation);
   clona.velocity = transform.TransformDirection(Vector3(0, 0, Velocidad));
         Municion -= 1;
         Destroy (clona.gameObject, 1);      
   AudioSource.PlayClipAtPoint(gunShot, transform.position, 1);AudioListener.volume = 0.1f;
}
}
if(Input.GetKeyDown("r") && MunicionTotal > 0 && !Input.GetMouseButton(0) && !Input.GetMouseButton(1)){
    
//GetComponent.<Animation>().Play("Reload");
    Municion = 0;
    Invoke ("recargando",2);
    AudioSource.PlayClipAtPoint(recarga, transform.position, 1);
 
}
if(Input.GetMouseButtonDown(0)){
///AudioSource.PlayClipAtPoint(vacio, transform.position, 1);
destello.active = true;
}
else
if(Input.GetMouseButtonUp(0)){
//AudioSource.PlayClipAtPoint(vacio, transform.position, 1);
destello.active = false;
}   
if (Municion <= 0){
if(Input.GetMouseButtonUp(0)){
AudioSource.PlayClipAtPoint(vacio, transform.position, 1);
destello.active = false;
}   
}
}
function recargando (){
if(MunicionTotal > 0){
MunicionTotal -= MunicionDeRecargo;
Municion += MunicionDeRecargo;
}
if (Municion > MunicionDeRecargo){
Municion = MunicionDeRecargo;
}
 
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: GSG3D en Julio 08, 2015, 09:06:36 PM
FIXME_VAR_TYPE te parece una un tipo de variable? Si te fijas estas instanciando a clone por lo que sería..
Transform clona = Transform.instantiante(.....) as Transform;
Creo que deberias poner un poco mas de esmero en resolver tus problemas ya que no veo que lo estas haciendo con tus preguntas, no es para ofender sino para que aprendas porque de esta manera no te estamos ayudando. Suerte y animo.
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 08, 2015, 09:56:18 PM
Cita de: GSG3D date=1436382396FIXME_VAR_TYPE te parece una un tipo de variable? Si te fijas estas instanciando a clone por lo que sería..
Transform clona = Transform.instantiante(.....) as Transform;
Creo que deberias poner un poco mas de esmero en resolver tus problemas ya que no veo que lo estas haciendo con tus preguntas, no es para ofender sino para que aprendas porque de esta manera no te estamos ayudando. Suerte y animo.
 
GSG3D , antes que nada , no me ofendes en absoluto, y despues de mirarmelo 1000 veces lo he resualto, ha quedado asi:

using UnityEngine;
using System.Collections;
public class disparosyrecargos2 : MonoBehaviour {
public Rigidbody Bala;
float Velocidad = 80;
public float municion = 20;
float municionderecargo = 20;
public float municiontotal = 150;
float Conteo = 0;
public GUIText guimuni;
public GUIText guitotal;
public GameObject destello;
public GameObject manoanim;
//GameObject municionanim;
//AudioClip sonido;
public AudioClip recarga;
public AudioClip gunShot;
public AudioClip vacio;
void Start (){
destello.active = false;
}
void Update (){
guimuni.text = "Balas " + municion.ToString();
guitotal.text = "Total Balas " + municiontotal.ToString();
    if (Input.GetButton("Fire1")){
       
        Conteo = Conteo + 1;
       
    if(Conteo > 20){
    
     Conteo = 0;
}   
    if(Conteo == 20 && municion > 0 && municiontotal >= 0){
          
        Rigidbody clone;
   clone=Instantiate(Bala, transform.position, transform.rotation) as Rigidbody;
   clone.velocity = transform.TransformDirection(Vector3.forward * 90);
   municion -= 1;
         Destroy (clone,1.0f);      
   AudioSource.PlayClipAtPoint(gunShot, transform.position, 1);AudioListener.volume = 0.1f;
}
}
if(Input.GetKeyDown("r") && municiontotal > 0 && !Input.GetMouseButton(0) && !Input.GetMouseButton(1)){
    
///GetComponent.<Animation>().Play("Reload");
    municion = 0;
    Invoke ("recargando",2);
    AudioSource.PlayClipAtPoint(recarga, transform.position, 1);
 
}
if(Input.GetMouseButtonDown(0)){
///AudioSource.PlayClipAtPoint(vacio, transform.position, 1);
destello.active = true;
}
else
if(Input.GetMouseButtonUp(0)){
//AudioSource.PlayClipAtPoint(vacio, transform.position, 1);
destello.active = false;
}   
if (municion <= 0){
if(Input.GetMouseButtonUp(0)){
AudioSource.PlayClipAtPoint(vacio, transform.position, 1);
destello.active = false;
}   
}
}
void recargando (){
if(municiontotal > 0){
municiontotal -= municionderecargo;
municion += municionderecargo;
}
if (municion > municionderecargo){
municion = municionderecargo;
}
}

Asi funciona, pero una vez mas mil gracias compañero ,te aseguro que me esmero, pero hay veces que me desanimo y acudo a vosotros .
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 09, 2015, 07:50:37 PM
Jajaja, nunca lo dije como excusa para pasar de ti, de hecho ayer llegué a las 22:00 a casa desde las 8:00 que empecé a trabajar y hoy he llegado hace un rato, pocas ganas tengo de romperme la cabeza con algoritmos xDD
 
Por otro lado no cabe duda que te esfuerzas, pero posiblemente a lo que se refiere GSG3D es que buscando por internet no solo consigues encontrar soluciones al problema que tienes, sino que además encuentras alternativas y lees cosas que hace que busques de otra forma. Saber buscar no es algo que saben hacer todos por naturaleza, también hay que aprender ha hacerlo.
 
Date cuenta de una cosa, yo jamás he preguntado ni nadie me ha enseñado nada sobre 3D o programación y sin embargo voy aprendiendo, se trata de no desesperarte a las 2 horas de haberte encontrado un problema, yo he llegado a estar tardes y tardes enteras con un problema que al final era una tonteria, pero te juro que jamás olvidaré como se hace, porque me costó un cojón dar con la solución jeje.
 
Un saludo socio
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 09, 2015, 08:58:50 PM
Cita de: Howling Wolf date=1436464237Jajaja, nunca lo dije como excusa para pasar de ti, de hecho ayer llegué a las 22:00 a casa desde las 8:00 que empecé a trabajar y hoy he llegado hace un rato, pocas ganas tengo de romperme la cabeza con algoritmos xDD
 
Por otro lado no cabe duda que te esfuerzas, pero posiblemente a lo que se refiere GSG3D es que buscando por internet no solo consigues encontrar soluciones al problema que tienes, sino que además encuentras alternativas y lees cosas que hace que busques de otra forma. Saber buscar no es algo que saben hacer todos por naturaleza, también hay que aprender ha hacerlo.
 
Date cuenta de una cosa, yo jamás he preguntado ni nadie me ha enseñado nada sobre 3D o programación y sin embargo voy aprendiendo, se trata de no desesperarte a las 2 horas de haberte encontrado un problema, yo he llegado a estar tardes y tardes enteras con un problema que al final era una tonteria, pero te juro que jamás olvidaré como se hace, porque me costó un cojón dar con la solución jeje.
 
Un saludo socio
Howlinggggggg que te quiero mucho jodio!!! XDDDD
 
Que sin vosotros no seria nada, muchas gracias por todo y seguire ***verando no te quepa dudaaaaaaaaaaaaaa, un abrazote muy grande y que descanses!!! , ya te vere en mas posts...de echo acabo de verte en otro Hahahhaha
 
Un barzooo
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: Howling Wolf en Julio 09, 2015, 10:04:06 PM
Jajajaja, poco loco estás xD
 
Un abrazo tio, no cambies nunca
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 09, 2015, 10:19:46 PM
Cita de: Howling Wolf date=1436472246Jajajaja, poco loco estás xD
 
Un abrazo tio, no cambies nunca
 
Como voy a cambiar? , sino quien os estará dando la bara todo el dia por aqui hahahhahah
 
Un abrazo hermano!!!!
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: H@pesend en Julio 09, 2015, 10:26:07 PM
Ulala.... l'amour....
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 09, 2015, 10:28:11 PM
Cita de: H@pesend date=1436473567Ulala.... l'amour....
 
Lol @H@pesend....
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ProgramacionWH en Julio 10, 2015, 01:04:12 AM
@H@pesend (http://unityspain.com/profile/26542-hpesend/) @ramunda (http://unityspain.com/profile/27191-ramunda/) @Howling Wolf (http://unityspain.com/profile/24428-howling-wolf/) Esto empieza a coger royo OffTopic
Si tenemos boda avisar con antelacion Por favor! jajaja
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 10, 2015, 08:51:53 AM
Cita de: ProgramacionWH date=1436483052@H@pesend (http://unityspain.com/profile/26542-hpesend/) @ramunda (http://unityspain.com/profile/27191-ramunda/) @Howling Wolf (http://unityspain.com/profile/24428-howling-wolf/) Esto empieza a coger royo OffTopic
Si tenemos boda avisar con antelacion Por favor! jajaja
 
Hahhahahaha que bueno @ProgramacionWH (http://unityspain.com/profile/27156-programacionwh/), juas la hacemos en Javascript o en c#? hahahhahahhah.
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ProgramacionWH en Julio 10, 2015, 11:53:16 AM
@ramunda (http://unityspain.com/profile/27191-ramunda/)
Por llevar la contraria en Boo
Título: Aparecer recuadro con "Reaparecer" al morir.
Publicado por: ramunda en Julio 10, 2015, 02:37:17 PM
Cita de: ProgramacionWH date=1436521996@ramunda (http://unityspain.com/profile/27191-ramunda/)
Por llevar la contraria en Boo
 
 
hahahhahahhahhaa