Noticias

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

Ayuda con script JavaScript

Iniciado por Jesica rey, Abril 07, 2016, 10:04:59 PM

Tema anterior - Siguiente tema
Abril 07, 2016, 10:04:59 PM Ultima modificación: Abril 08, 2016, 05:11:33 PM por pioj

var vel : float = 5;
var velR : float = 40;
var rotarizq : boolean = false;
var rotarder : boolean = false;
var avanzar : boolean = false;
var atras : boolean = false;
var Caminar : AnimationClip;
function Start ()
{
}
function Update ()
{
    if (avanzar == true)
    {
        transform.Translate(Vector3(0,0,1)*vel*Time.deltaTime);
    }
    if (atras == true)
    {
        transform.Translate(Vector3(0,0,-1)*vel*Time.deltaTime);
    }
    if (rotarizq == true)
    {
        transform.Rotate(Vector3(0,-1,0)*velR*Time.deltaTime);
    }
    else
    if (rotarder == true)
    {
     transform.Rotate(Vector3(0,1,0)*velR*Time.deltaTime);
    }
}
function Rotarder()
{
    rotarder = true;
}
function Rotarizq()
{
    rotarizq = true;
}
function Avanzar()
{
    avanzar = true;
}
function Atras()
{
    atras = true;
}
function DejarAvanzar ()
{
    avanzar = false;
    atras = false;
}
function DejarRotar()
{
    rotarder = false;
    rotarizq = false;
}



tengo esa script y quiero reproducir la animacion "caminar" cada vez que avanzar sea verdad pero al usar esta linea de código 
GetComponent.<Animation>().Play(Caminar.name); Me da error de The animation state Caminar could not be pla*** because it couldn't be found!
Please attach an animation clip with the name 'Caminar' or call this function only for existing animations.
UnityEngine.Animation:Play(String)
Jugador:Update() (at Assets/Cosas/Scripts/Jugador.js:22)


 

Abril 08, 2016, 03:32:20 PM #1 Ultima modificación: Abril 08, 2016, 05:12:30 PM por pioj
Soy aun nuevo en esto pero veré si esto te resuelve el problema.En la ventana animator puedes crear una maquina de estado donde estén las animaciones. Por ejemplo:Estarquieto -------->Caminar

Y colocas una variable bool al estado por ejemplo "Caminando"
Entonces en el script:
if(avanzar==true){transform.Translate(Vector3(0,0,1)*vel*Time.deltaTime);GetComponent<Animator>.SetBool("Caminando",true);}[/quote]Asi el animator en su maquina de estado cambiaria de la animación Estarquieto a la animación Caminar.Cuando deje de avanzar
function DejarAvanzar(){avanzar=false; atras=false; GetComponent<Animator>().SetBool("Caminando",false);} [/quote]

  

La animación caminar la tienes puesta también en el componente Animation? Porque en el inspector tienes la animación asignada en el script Jugador. Además en js como te dijeron en otro topic se escribe sin el punto y entre paréntesis.

La linea correcta era       if (avanzar == true)
    {
        transform.Translate(Vector3(0,0,1)*vel*Time.deltaTime);
        GetComponent.<Animation>().CrossFade(Caminar.name);
        transform.Translate(Vector3(0,0,1)*vel*Time.deltaTime);
    }

Gracias .

Etiquetas: