Como faço para animar meu personagem?
2 participantes
Página 1 de 1
Como faço para animar meu personagem?
recentemente comecei a produzir um game estilo Crash Bandicoot para mobile. Utilizei esse script para a movimentação do personagem e para o mesmo pular. Porém, quero saber como adicionar a animação ao personagem. É por script? no mesmo script da movimentação? é só pelo animator?
Estou perdido.
Estou perdido.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float playerSpeed, playerJumpForce;
private VariableJoystick Joystick;
public Rigidbody playerRB;
private Vector3 direction;
public bool IsOnGround;
// Start is called before the first frame update
void Start()
{
Joystick = GameObject.Find("Variable Joystick").GetComponent<VariableJoystick>();
playerRB = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
MovementMobile();
Rotation();
}
void MovementMobile()
{
direction = (Vector3.forward * Joystick.Vertical) + (Vector3.right * Joystick.Horizontal);
}
void Rotation()
{
if (direction != Vector3.zero)
{
transform.rotation = Quaternion.LookRotation(direction);
}
transform.Translate(direction * (playerSpeed * Time.deltaTime), Space.World);
}
public void Jump()
{
if(IsOnGround)
{
playerRB.AddForce(Vector3.up * playerJumpForce, ForceMode.Impulse);
IsOnGround = false;
}
}
private void OnCollisionEnter(Collision other)
{
if (other.gameObject.CompareTag("Ground"))
{
IsOnGround = true;
}
}
}
Wrench18- Iniciante
- PONTOS : 1550
REPUTAÇÃO : 0
Respeito as regras :
Re: Como faço para animar meu personagem?
Salve meu querido, você criou suas animações no Animation e configurou no Animator?
Feiro isso eu vou deixa um exemplo do meu Script para você usar como base.
as animações estão configuradas no LateUpdate.
Feiro isso eu vou deixa um exemplo do meu Script para você usar como base.
as animações estão configuradas no LateUpdate.
- Código:
public class controlerPlayer : MonoBehaviour
{
private gc _gc;
public float posicaoPlayer;
private Rigidbody2D playerRb;
public float forcaPulo, speed;
public Transform groundCheck;
private bool grounded;
private Animator animacao;
private int speedX;
private float speedY;
public bool isOlhandoEsquerda;
void Start()
{
_gc = FindObjectOfType(typeof(gc)) as gc;
playerRb = GetComponent<Rigidbody2D>();
animacao = GetComponent<Animator>();
}
private void FixedUpdate()
{
grounded = Physics2D.OverlapCircle(groundCheck.position, 0.02f);
}
// Update is called once per frame
void Update()
{
if (Input.GetButtonDown("Fire1") && grounded == true)
{
playerRb.AddForce(new Vector2(0, forcaPulo));
}
float horizontal = Input.GetAxisRaw("Horizontal");
if (isOlhandoEsquerda == true && horizontal > 0)
{
flitp();
}
if (isOlhandoEsquerda == false && horizontal < 0)
{
flitp();
}
speedY = playerRb.velocity.y;
if (horizontal != 0)
{
speedX = 1;
}
else
{
speedX = 0;
}
playerRb.velocity = new Vector2(horizontal * speed, speedY);
}
private void LateUpdate()
{
animacao.SetInteger("speedX", speedX);
animacao.SetFloat("speedY", speedY);
animacao.SetBool("grouded", grounded);
posicaoPlayer = this.gameObject.transform.position.y;
}
private void OnTriggerEnter2D(Collider2D other)
{
switch (other.gameObject.tag)
{
case "coletavel":
//criar funcao de pontuacao no gc
_gc.pontuar(1);
Destroy(other.gameObject);
break;
case "obstaculo":
_gc.mudarCena("gameover");
break;
}
}
void flitp()
{
isOlhandoEsquerda = !isOlhandoEsquerda;
float x = transform.localScale.x;
x *= -1;
transform.localScale = new Vector3(x, transform.localScale.y, transform.localScale.z);
}
}
Moskeiro- Iniciante
- PONTOS : 1569
REPUTAÇÃO : 3
Respeito as regras :
Tópicos semelhantes
» como faço para o personagem andar só que no ar?
» como faço para meu personagem agachar?
» Como faço para meu personagem virar de acordo com o movimento?
» Unity3D como faço para por arma da maneira correta no personagem
» Como faço para que meu personagem ao subir em um lugar bem íngreme ele escorregue?
» como faço para meu personagem agachar?
» Como faço para meu personagem virar de acordo com o movimento?
» Unity3D como faço para por arma da maneira correta no personagem
» Como faço para que meu personagem ao subir em um lugar bem íngreme ele escorregue?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos