Ajuda com a animação do pulo
2 participantes
Página 1 de 1
Ajuda com a animação do pulo
Como Posso Fazer com que o Player Execute a animação de pular ao pressionar Espaço junto com as animações de parado, correndo, andando etc em uma blend tree
e esse e meu script:
e esse e meu script:
- Código:
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour {
public float walkSpeed = 2;
public float runSpeed = 6;
public float gravity = -12;
public float jumpHeight = 1;
[Range(0,1)]
public float airControlPercent;
public float turnSmoothTime = 0.2f;
float turnSmoothVelocity;
public float speedSmoothTime = 0.1f;
float speedSmoothVelocity;
float currentSpeed;
float velocityY;
Animator animator;
Transform cameraT;
CharacterController controller;
void Start () {
animator = GetComponent<Animator> ();
cameraT = Camera.main.transform;
controller = GetComponent<CharacterController> ();
}
void Update () {
// input
Vector2 input = new Vector2 (Input.GetAxisRaw ("Horizontal"), Input.GetAxisRaw ("Vertical"));
Vector2 inputDir = input.normalized;
bool running = Input.GetKey (KeyCode.LeftControl);
Move (inputDir, running);
if (Input.GetKeyDown (KeyCode.Space)) {
Jump ();
}
// animator
float animationSpeedPercent = ((running) ? currentSpeed / runSpeed : currentSpeed / walkSpeed * .5f);
animator.SetFloat ("speedPercent", animationSpeedPercent, speedSmoothTime, Time.deltaTime);
}
void Move(Vector2 inputDir, bool running) {
if (inputDir != Vector2.zero) {
float targetRotation = Mathf.Atan2 (inputDir.x, inputDir.y) * Mathf.Rad2Deg + cameraT.eulerAngles.y;
transform.eulerAngles = Vector3.up * Mathf.SmoothDampAngle(transform.eulerAngles.y, targetRotation, ref turnSmoothVelocity, GetModifiedSmoothTime(turnSmoothTime));
}
float targetSpeed = ((running) ? runSpeed : walkSpeed) * inputDir.magnitude;
currentSpeed = Mathf.SmoothDamp (currentSpeed, targetSpeed, ref speedSmoothVelocity, GetModifiedSmoothTime(speedSmoothTime));
velocityY += Time.deltaTime * gravity;
Vector3 velocity = transform.forward * currentSpeed + Vector3.up * velocityY;
controller.Move (velocity * Time.deltaTime);
currentSpeed = new Vector2 (controller.velocity.x, controller.velocity.z).magnitude;
if (controller.isGrounded) {
velocityY = 0;
}
}
void Jump() {
if (controller.isGrounded) {
float jumpVelocity = Mathf.Sqrt (-2 * gravity * jumpHeight);
velocityY = jumpVelocity;
}
}
float GetModifiedSmoothTime(float smoothTime) {
if (controller.isGrounded) {
return smoothTime;
}
if (airControlPercent == 0) {
return float.MaxValue;
}
return smoothTime / airControlPercent;
}
}
mutr0l- Iniciante
- PONTOS : 2706
REPUTAÇÃO : 1
Respeito as regras :
Re: Ajuda com a animação do pulo
Amigo aprendi aqui nesses videos
Zecandy- Mestre
- PONTOS : 3506
REPUTAÇÃO : 155
Idade : 42
Respeito as regras :
Tópicos semelhantes
» Animação não esta ativando na hora do pulo
» Ajuda Urgente como chamo a animação no script alguém poderia dar uma ajuda???
» [DÚVIDA] ANIMAÇÃO DE PULO NO CONTROLADOR QUE TEM BLEND TREE COM MOVIMENTO
» Ajuda com animação
» (Ajuda) Pulo duplo
» Ajuda Urgente como chamo a animação no script alguém poderia dar uma ajuda???
» [DÚVIDA] ANIMAÇÃO DE PULO NO CONTROLADOR QUE TEM BLEND TREE COM MOVIMENTO
» Ajuda com animação
» (Ajuda) Pulo duplo
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos