Está en la página 1de 2

var movSpeed: float=10; var jumpSpeed: float=100; var jumpSpeedTime:float=0.

1; var gravity: float=20; private var jumpSpeedV:float; uncin Mathf.SmoothDamp private var jumpY:float; private var moveDirection:Vector3; tierra y salto) var gTime:float=0; a saltar var gDirection:float=1; 1=arriba

// Velocidad de Movimiento // Velocidad de Salto //Tiempo de suavizado del salto // Gravedad // Variable privada, solo sirve para la f //Posicin Y del salto // La Direccin del movimiento (movimiento en // Tiempo de la gravedad al comenzar // Sentido de la gravedad, 1=abajo -

function FixedUpdate () //Se usa generalmente con GameObjects que contengan "fsi cas" { //Para acceder a las variables y/o funciones de nuestro CharacterControlle r var controlador: CharacterController=GetComponent(CharacterController); controlador.slopeLimit=55; // ngulo lmite de algn terreno inclinado para subir controlador.stepOffset=0.3; // Para "subir" Peldao por peldao menor al nmero da do //Moverse del local Space al World Space, sobre el eje x y z (x,z = suelo y = aire): moveDirection=transform.TransformDirection(Vector3(Input.GetAxis("Horizontal ")*movSpeed, 0 , Input.GetAxis("Vertical")*movSpeed)); //Salto: //Si se Presiona el Input JumpY el tiempo de gravedad es menor a 3(Est en el suelo) if (Input.GetButtonDown("Jump") && gTime<3) jumpY=gDirection*jumpSpeed; //Se le asigna la posicin Y final del sal to //Para que no se trabe con el techo: if (controlador.collisionFlags == CollisionFlags.Above) // Si toca techo jumpY=0; //Se reduce la posicin final del Salto //Gravedad: /* Por default seria gravity*Time.deltaTime, pero caerias constantemente , esta frmula ma es ms real*/ jumpY-=gDirection*gravity*gTime*Time.deltaTime; /*Suavizar Salto, si simplemente colocas moveDirection.y=jumpY, el jugador s e "teletransporta" con el salto*/ moveDirection.y=Mathf.SmoothDamp(moveDirection.y,jumpY,jumpSpeedV,jumpSpeedT ime); //Tiempo gravedad

gTime+=1; if (controlador.isGrounded) gTime=0; //El chequeo no es preciso, generalmente tira valores entre 0, 1, 2, por eso ms arriba coloqu gTime<3 //Mueve al jugador: controlador.Move(moveDirection*Time.deltaTime); }

También podría gustarte