Jump to content

Script C# na Unity: Reproduzir animação ao colidir com objeto 'Tigela' não funciona


Diego Martins77
Ir para a Solução Solucionado por ThiagoAlves,

Postagens Recomendadas

Olá pessoal, alguém que entenda de script C# para me ajudar. Eu estava desenvolvendo um script na Unity e queria que o objeto que contém o script reproduzisse uma animação quando colidir com o objeto que contém a TAG "Tigela", porém isso não ocorre, logo abaixo está o script pra quem puder me ajudar:

using UnityEngine;

public class Teste : MonoBehaviour
{
    private void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Tigela") && !other.isTrigger)
        {
            GetComponent<Animator>().Play();
        }
    }
}
  • Curtir 1
Link to comment
Compartilhe em outros sites

  • Solução

Olá Diego, espero que esteja tudo bem!

Então, para fazer com que um objeto na Unity reproduza uma animação quando colidir com outro objeto que tenha a TAG “Tigela”, você pode seguir os seguintes passos:

1- Adicione uma TAG ao objeto “Tigela”: Certifique-se de que o objeto que você deseja detectar tenha a TAG “Tigela”. Você pode definir a TAG diretamente no Inspector do objeto na Unity.

2- Crie um script para o objeto que deve reproduzir a animação: Crie um novo script (ou use um existente) e anexe-o ao objeto que deve reproduzir a animação. Vou chamá-lo de “Teste” para fins de exemplo.

3- Implemente a lógica de colisão no script: No script do “Teste”, você pode usar o método OnTriggerEnter2D para detectar colisões com outros objetos. Verifique se o objeto colidido tem a TAG “Tigela” e, se sim, reproduza a animação. Aqui está um exemplo de como o código pode ser:
 

using UnityEngine;

public class Teste : MonoBehaviour
{
    private Animator _animator;

    private void Start()
    {
        // Obtém o componente Animator do objeto
        _animator = GetComponent<Animator>();
    }

    private void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Tigela") && !other.isTrigger)
        {
            // Reproduz a animação "MeuAnimacao"
            _animator.Play("MeuAnimacao");
        }
    }
}

Neste exemplo:

No método Start(), obtemos o componente Animator do objeto.

No método OnTriggerEnter2D, verificamos se o objeto colidido tem a TAG “Tigela” e, se sim, reproduzimos a animação “MeuAnimacao” usando _animator.Play("MeuAnimacao").

Lembre-se de substituir “MeuAnimacao” pelo nome real da sua animação. Certifique-se também de que o objeto “Teste” tenha um componente Animator anexado para controlar a reprodução da animação.

Espero que isso ajude! 

  • Ajudou! 1
Link to comment
Compartilhe em outros sites

  • Casa do Desenvolvedor mudou o título para Script C# na Unity: Reproduzir animação ao colidir com objeto 'Tigela' não funciona

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...