Noticias

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

Problema AnimationEvent 'PlayClip'

Iniciado por Destroyer, Febrero 21, 2017, 01:17:39 AM

Tema anterior - Siguiente tema
Hola, tengo un problema, que ya hice de todo y no lo puedo solucionar, es que cuando quiero recargar el arma se me sale y me tira el error:
 
"'Bizon' AnimationEvent 'PlayClip' has no receiver! Are you missing a component?"
 
Bizon es el arma, osea, estoy poniendola animaciones, y justo cuando quiero recargar se me pone en pausa y me pasa ese error, aca dejo el code
 

var Tiempo = 0;
var TiempoMaximo = 3;
var   Objeto : GameObject;
var Rango = 100;
var Municion = 30;
var   ComprobanteMunicion = 30;
var Cargador = 90;
var Dano = 20;
var   UIMunicion : UI.Text;
var UICargador : UI.Text;
var Animacion : Transform;
var AnimacionDisparar = 1.0;
var AudioDisparo : AudioClip;
var Efecto : GameObject;
var Camara : Camera;
var PosXNormal = 0.0;
var PosYNormal = 0.0;
var PosXMira = 0.0;
var PosYMira = 0.0;
private var SiguientePosicionX = 0.0;
private var SiguientePosicionY = 0.0;
private var SiguienteField = 0.0;
private var VelocidadX = 0.4;
private var VelocidadY = 0.4;
private var VelocidadField = 0.4;
function Start(){
UIMunicion.text = Municion.ToString();
UICargador.text = Cargador.ToString();
Efecto.active = false;
}
function Update(){
if(Input.GetButton("Disparo1")){
   Tiempo += 1;
}
if(Tiempo > TiempoMaximo){
   Tiempo = 0;
}
 
if(Tiempo == TiempoMaximo && Municion >= 1 && !Animacion.GetComponent.<Animation>().IsPlaying("Recargar") ){
    Municion -= 1;
   UIMunicion.text = Municion.ToString();
   transform.GetComponent.<AudioSource>().PlayOneShot(AudioDisparo);
   Efecto.active = true;
   var Disparo : RaycastHit;
   var Posicion = transform.parent.position;
   var Direccion = transform.TransformDirection(Vector3.forward);
   if(Physics.Raycast(Posicion,Direccion,Disparo,Rango)){
   var Rotacion = Quaternion.FromToRotation(Vector3.up, Disparo.normal);
      if(Disparo.collider.tag == "Tierra"){
         Instantiate(Objeto,Disparo.point,Rotacion);
      }
      if(Disparo.collider.tag == "Enemigo"){
       
      Disparo.collider.SendMessage("AplicarDano", Dano, SendMessageOptions.DontRequireReceiver);
      }
   }
   Animacion.GetComponent.<Animation>()["Disparar"].speed = AnimacionDisparar;
   Animacion.GetComponent.<Animation>().Play("Disparar", PlayMode.StopAll);
   Invoke("FX", 0.1);
   Tiempo = 0;
   }
if(Input.GetKeyDown(KeyCode.R) && Cargador > 0 ){
   
   UIMunicion.text = Municion.ToString();
   Animacion.GetComponent.<Animation>().Play("Recargar", PlayMode.StopAll);
   Invoke("Recargar" , 2);
}
var NuevaPosicionX = Mathf.SmoothDamp(Animacion.transform.localPosition.x, SiguientePosicionX, VelocidadX, .04);
var NuevaPosicionY = Mathf.SmoothDamp(Animacion.transform.localPosition.y, SiguientePosicionY, VelocidadY, .04);
var NuevoField = Mathf.SmoothDamp(Camara.fieldOfView, SiguienteField, VelocidadField, .04);
 
Animacion.transform.localPosition.x = NuevaPosicionX;
Animacion.transform.localPosition.y = NuevaPosicionY;
Camara.fieldOfView = NuevoField;
 
if(Input.GetButton("Mira") && !Animacion.GetComponent.<Animation>().IsPlaying("Recargar")){
   
   SiguientePosicionX = PosXMira;
   SiguientePosicionY = PosYMira;
   SiguienteField = 40.0;
 
}else{
   SiguientePosicionX = PosXNormal;
   SiguientePosicionY = PosYNormal;
   SiguienteField = 60.0;
 
}
}
function Recargar(){
      if(Cargador == 0)
       return;
var DifMunicion = (ComprobanteMunicion - Municion);

if(DifMunicion >= Cargador)
{
   Municion += Cargador;
   Cargador = 0;
}else {         
   Municion += DifMunicion;
   Cargador -= DifMunicion;
}                                      
   

UIMunicion.text = Municion.ToString();
UICargador.text = Cargador.ToString();
}
function FX(){
Efecto.active = false;
}

 
 
 
 
 
 
 
 

Hola destructor, mira nada que ver con tu problema pero estas usando el sistema viejo de animaciones? pasate a Animator, ya, vas a ver que manejar todas estas cosas desde una maquina de estados es mucho mas comodo e intuitivo.
 
En el error te dice algo de ANimation Event, estas usando algun event en la animacion de recargar? si es asi, le asignaste una funcion a dicho event?
 
PD: Todavia de la vez anterior no me queda claro porque al disparar subis "tiempo"
 
 
 
 

Cita de: lightbug date=1487659950Hola destructor, mira nada que ver con tu problema pero estas usando el sistema viejo de animaciones? pasate a Animator, ya, vas a ver que manejar todas estas cosas desde una maquina de estados es mucho mas comodo e intuitivo.
   
   
      En el error te dice algo de ANimation Event, estas usando algun event en la animacion de recargar? si es asi, le asignaste una funcion a dicho event?
   
   
      PD: Todavia de la vez anterior no me queda claro porque al disparar subis "tiempo"
   
   
       
   
   
       
   


Es como muy arcaico usar Animation en vez de animator no? jajajaja haz caso a Lightbug y cambia a Animator amigo. @lightbug sube el Tiempo al disparar para que quede espectacular y frenetico!!

····>Desarrollando un videojuegos online-arcade para Android.


····>Programador en:C,C#,VB.net,PHP,HTML5,SQL,JS,Ruby.


····>Trabajando en: Desarrollo de paginas web y bushistudios.


                    ๑۩۞۩๑_(▀▄)KINGTRASE(▄▀)_๑۩۞۩๑ 



Cita de: kingtrase date=1487679164@lightbug sube el Tiempo al disparar para que quede espectacular y frenetico!!
   


Jajaj el juego te cobra, mientras mas balas disparas mas rapido pasa el tiempo, ojo es buena la idea. Y se podria ampliar, mientras mas disparas los enemigos tienen mejor IA y rango de vision y esas cosas.

Bueno dale,
 
En cuanto al tema podria ser el modelo? o algo habre hecho mal?

Cita de: Destroyer date=1487772056Bueno dale,
   
   
      En cuanto al tema podria ser el modelo? o algo habre hecho mal?
   


y... bugs pueden pasar, claro, pero si te dice que el event del clip no tiene receptor (no elegiste un metodo para llamar) deberias de chequear eso.

A que te referis con el receptor? :/

Ah esto del warning:
 
Cita de: Destroyer date=1487636259has no receiver!
   


un event sirve para, en algun instante de la linea de tiempo de animacion llamar a una accion determinada. Es la idea de crearlos y no de coordinar dicha accion mediante codigo. Si no especificaste ningun metodo quizas te este dando ese mensaje.
 
Tenes al final event o no? te fijaste?

Etiquetas: