Sequência de animation clips através de toque na tela
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Sequência de animation clips através de toque na tela
Boa noite pessoal,
Sou completamente novo em Unity, mas preciso desenvolver um aplicativo mobile bastante simples (até então eu achava que seria...): existe uma maneira simples de dar play em uma sequência de animations clips, através de toque na tela do celular?
Para ser mais claro: tenho um FBX importado no Unity, já com os diversos animation clips separados dentro dele. Preciso que, ao tocar na tela, dispare o clip 01; tocou na tela de novo, dispara o clip 02; tocou de novo, dispara o clip 03, e assim sucessivamente. É um simples play e stop através de toque na tela do celular.
Consegui fazer algo meia boca usando o seguinte:
O problema é que esse toque só funciona duas vezes, ou seja, tocou uma vez na tela, dispara o take_04, tocou de novo, dispara o "take_03", tocou de novo, dispara "take_04", depois "take_03" de novo... e ele está enxergando o código de baixo pra cima, por algum motivo.
Não é possível que algo tão simples seja tão complicado de se fazer no Unity. :pale: Alguém sabe como eu posso fazer isso?
Desde já, muito obrigado.
Sou completamente novo em Unity, mas preciso desenvolver um aplicativo mobile bastante simples (até então eu achava que seria...): existe uma maneira simples de dar play em uma sequência de animations clips, através de toque na tela do celular?
Para ser mais claro: tenho um FBX importado no Unity, já com os diversos animation clips separados dentro dele. Preciso que, ao tocar na tela, dispare o clip 01; tocou na tela de novo, dispara o clip 02; tocou de novo, dispara o clip 03, e assim sucessivamente. É um simples play e stop através de toque na tela do celular.
Consegui fazer algo meia boca usando o seguinte:
- Código:
void Update () {
if (Input.GetMouseButtonDown(0))
cuboAnim.Play("take_01");
if (Input.GetMouseButtonDown(0))
cuboAnim.Play("take_02");
if (Input.GetMouseButtonDown(0))
cuboAnim.Play("take_03");
if (Input.GetMouseButtonDown(0))
cuboAnim.Play("take_04");
}
}
O problema é que esse toque só funciona duas vezes, ou seja, tocou uma vez na tela, dispara o take_04, tocou de novo, dispara o "take_03", tocou de novo, dispara "take_04", depois "take_03" de novo... e ele está enxergando o código de baixo pra cima, por algum motivo.
Não é possível que algo tão simples seja tão complicado de se fazer no Unity. :pale: Alguém sabe como eu posso fazer isso?
Desde já, muito obrigado.
wmssuper- Iniciante
- PONTOS : 2680
REPUTAÇÃO : 1
Respeito as regras :
Re: Sequência de animation clips através de toque na tela
Acho que com animator seria melhor...
Um exemplo de como funciona:
Um exemplo de como funciona:
- Código:
int numAnim = 0;
Animator anim;
void Start ()
{
anim = GetComponent<Animator>();
}
void Update ()
{
anim.SetInteger("condicao", numAnim);
if (Input.GetMouseButtonDown(0))
{
if (numAnim <= 4)
numAnim += 1;
else numAnim = 0;
}
}
// Apenas um exemplo não tenho certeza que vai funcionar ;-;
Re: Sequência de animation clips através de toque na tela
Obrigado pela resposta PauloFR, mas infelizmente não funcionou =(
Na verdade eu já estava usando Animator, antes do código que eu postei eu já tinha:
Mas substituí tudo pelo seu código e não funcionou... esse "condicao" eu precisaria trocar por alguma coisa?
Obrigado.
Na verdade eu já estava usando Animator, antes do código que eu postei eu já tinha:
- Código:
public class cuboAnimController : MonoBehaviour {
public Animator cuboAnim;
// Use this for initialization
void Start () {
cuboAnim = GetComponent<Animator> ();
}
Mas substituí tudo pelo seu código e não funcionou... esse "condicao" eu precisaria trocar por alguma coisa?
Obrigado.
wmssuper- Iniciante
- PONTOS : 2680
REPUTAÇÃO : 1
Respeito as regras :
Re: Sequência de animation clips através de toque na tela
wmssuper escreveu:esse "condicao" eu precisaria trocar por alguma coisa?
Tipo você teria que fazer conexões entre os clips das animações no Animator e criar um novo parametro int de nome condicao ou qualquer outro nome...
Um exemplo de como usar o animator:
Re: Sequência de animation clips através de toque na tela
O problema é que quando eu coloco o código que você passou no script, na barra de Status do Unity surge a mensagem:
Assets/cuboAnimController.cs(23,247): error CS1525: Unexpected symbol 'end-of-file'
E ele não me deixa testar, mesmo criando esse parâmetro "condicao" dentro do Animator (aprendi a fazer isso com esse vídeo, valeu!) Acho que é algo relacionado a algum parêntese ou colchete que ficou faltando, mas meu background em programação é absolutamente zero, então não sei avaliar se é isso mesmo. Este é o código inteiro (já com o código que você sugeriu):
Assets/cuboAnimController.cs(23,247): error CS1525: Unexpected symbol 'end-of-file'
E ele não me deixa testar, mesmo criando esse parâmetro "condicao" dentro do Animator (aprendi a fazer isso com esse vídeo, valeu!) Acho que é algo relacionado a algum parêntese ou colchete que ficou faltando, mas meu background em programação é absolutamente zero, então não sei avaliar se é isso mesmo. Este é o código inteiro (já com o código que você sugeriu):
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class cuboAnimController : MonoBehaviour {
int numAnim = 0;
Animator anim;
void Start ()
{
anim = GetComponent<Animator>;
}
void Update ()
{
anim.SetInteger("condicao", numAnim);
if (Input.GetMouseButtonDown(0))
{
if (numAnim <= 4)
numAnim += 1;
else numAnim = 0;
}
}
wmssuper- Iniciante
- PONTOS : 2680
REPUTAÇÃO : 1
Respeito as regras :
Re: Sequência de animation clips através de toque na tela
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class cuboAnimController : MonoBehaviour {
int numAnim = 0;
Animator anim;
void Start ()
{
anim = GetComponent<Animator>;
}
void Update ()
{
anim.SetInteger("condicao", numAnim);
if (Input.GetMouseButtonDown(0))
{
if (numAnim <= 4)
numAnim += 1;
else numAnim = 0;
}
}
} // é só colocar um " } " no final do código ;-;
Re: Sequência de animation clips através de toque na tela
Muito obrigado PauloFR, parece que agora funcionou!
Comparando com o código do vídeo, percebi que depois do GetComponent<Animator> também estava faltando um (), coloquei isso e agora está funcionando exatamente como eu preciso... a cada clique (que imagino que funcione também como toque na tela) ele adiciona +1 na variável.
Obrigado novamente!! :D
Comparando com o código do vídeo, percebi que depois do GetComponent<Animator> também estava faltando um (), coloquei isso e agora está funcionando exatamente como eu preciso... a cada clique (que imagino que funcione também como toque na tela) ele adiciona +1 na variável.
Obrigado novamente!! :D
wmssuper- Iniciante
- PONTOS : 2680
REPUTAÇÃO : 1
Respeito as regras :
Re: Sequência de animation clips através de toque na tela
Acho que para toques na tela é necessários botões ;-; ai no caso a void Update teria que ter outro nome... dê uma procurada na internet sobre UI Buttons e Android(Ou Iphone/Windows Phone/outros aparelhos com tela sensível ao toque) para detectar os toques.
Re: Sequência de animation clips através de toque na tela
Nem precisou cara, exportei um .apk usando o GetMouseButtonDown e funcionou certinho como toque. Vi em algum lugar que parece que isso não funciona para iOS, mas como no momento eu preciso apenas ter um protótipo funcionando para explicar uma ideia (e como vou apresentar no meu celular mesmo, que é Android), está valendo.
wmssuper- Iniciante
- PONTOS : 2680
REPUTAÇÃO : 1
Respeito as regras :
Tópicos semelhantes
» Como fazer Rigidbody 2D seguir posição do toque na tela (Arrastar objeto com toque)
» Mostrar imagem na tela por alguns segundos(acionada através de um botão), e "Barra de rolagem" da tela.
» [RESOLVIDO] Tela (Screen) Android e Joystick adaptável à tela !
» Como faço para colocar toque na tela (jogo 2D)
» Identificar toque ou posição em Joystick Crossplataforminput
» Mostrar imagem na tela por alguns segundos(acionada através de um botão), e "Barra de rolagem" da tela.
» [RESOLVIDO] Tela (Screen) Android e Joystick adaptável à tela !
» Como faço para colocar toque na tela (jogo 2D)
» Identificar toque ou posição em Joystick Crossplataforminput
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos