Button
2 participantes
Página 1 de 1
Button
Ola, inseri um Button e gostaria de saber se tem algo sobre, queria criar um script para iniciar uma ação em um objeto quando esse Button é clicado. Estou usando a Unity 5, se alguem puder me socorrer
Exemplo
Tenho meu personagem principal com animações no animator ou animações do objeto(tanto ffaz) , queria criar um botão que ao ser clicado fizesse com que meu character inicia-se uma animação.
Outra duvida também sobre animação, usando o animator como vinculo o flaot do script de meu character(move) ao animator?
Desculpem pelas duvidas, mas fiquei 2 anos com o projeto parado e essa nova unity 5 a principio esta me deixando perdido.
vlw ^^
Exemplo
Tenho meu personagem principal com animações no animator ou animações do objeto(tanto ffaz) , queria criar um botão que ao ser clicado fizesse com que meu character inicia-se uma animação.
Outra duvida também sobre animação, usando o animator como vinculo o flaot do script de meu character(move) ao animator?
Desculpem pelas duvidas, mas fiquei 2 anos com o projeto parado e essa nova unity 5 a principio esta me deixando perdido.
vlw ^^
Re: Button
Consegui, criei um Canvas com os botoes para as animaçoes e um codigo para ele... porem a animação para e se eu der um move no player e parar ela se reinicia...
a parte do codigo esta assim:
public void Protecting()
{
anima.SetBool ("Protect_var", Protect_var);
Protect_var = Protect_var = true;
http://ThidPersonExampleController.Instance.Protecting ();
if (anima.GetCurrentAnimatorStateInfo (0).IsName ("Protect_var")){
anima.SetBool ("Protect_var", Protect_var);
Protect_var = Protect_var = false;
}
}
Onde esta o erro? Preciso que a animação Protect rode até o final e depois retorne para Idle ou Running, mas ela trava e quando dou um move no character ele roda Running porem qdo eu paro ele reiniciar a protect e nao idle...
a parte do codigo esta assim:
public void Protecting()
{
anima.SetBool ("Protect_var", Protect_var);
Protect_var = Protect_var = true;
http://ThidPersonExampleController.Instance.Protecting ();
if (anima.GetCurrentAnimatorStateInfo (0).IsName ("Protect_var")){
anima.SetBool ("Protect_var", Protect_var);
Protect_var = Protect_var = false;
}
}
Onde esta o erro? Preciso que a animação Protect rode até o final e depois retorne para Idle ou Running, mas ela trava e quando dou um move no character ele roda Running porem qdo eu paro ele reiniciar a protect e nao idle...
Re: Button
Tente dar uma olhada neste tutorial aqui para entender passo a passo as manhas do Aminator
Re: Button
Marcos, esse script deve ser feito individualmente? pq estou inserindo isso no meu script de movimentação....? Tipo a minha variavel MOVE tem q ser a mesma do ANIMATOR!?
Re: Button
Consegui! Fiz de uma maneira mais simples. As animações basicas estao de boa, mas e agora.. tipo uma objeto na cena ao colidir com o meu character deve anima-lo e travar os controles(ele fica zonzo)... vou tentar aqui qqer peço ajuda! Assim que terminar e der tudo certo tento explicar o q fiz. rs
Mto show seus tutorias... fez algum curso ?
Mto show seus tutorias... fez algum curso ?
Re: Button
Cara nao to conseguindo achar as palavras chaves para programar o que quero.. bom deixa eu tentar de explicar.
No meu projeto ficam caindo objetos aletoriamente (isso ja esta programado), o que nao estou conseguindo fazer nessa versao da unity com o Animator é o seguinte...
Quando o objeto colidir com o char quero que o char inicie uma animação( somente se ele nao estiver se defendendo). Mas nao tenho ideia de como acessar o Animator, nem com que tipo de variavel (bool, trigger la no animator configuro essa animação), também nao estou encontrando uma maneira de fazer com que a colisão seja reconhecida... o objeto que cai é um rig e meu char é um character controller. E pra complicar, o meu char tem um animação chamada Protect, ou seja se quando ocorrer a colisão ele estiver rodando essa animação nada acontece com o char (iniciiar a animação de atordoado).
O meu codigo antigo funfa com animações diretas..sem o Animator, mas o problemas é q mudei tudo pra animator. Vou te passar o codigo que eu usava, se vc puder ajudar, por favor faça isso.
Codigo antigo:
using UnityEngine;
using System.Collections;
public class _ObjetoCaindoScript : MonoBehaviour {
public static _ObjetoCaindoScript Instance;
public GameObject stars;
public AudioClip Maca;
public GameObject mc;
public GameObject render;
public AudioClip argh;
public AudioClip Uff;
public AudioClip pluf;
void Awake(){
Instance = this;
}
public void Zonzing()
{
TP_Controller.Instance.Zonzing();
}
void OnCollisionEnter(Collision col){
if (col.gameObject.tag == "Player" && !TP_Animator.Instance.GetComponent<Animation>().IsPlaying("Protect"))
{
Zonzing();
Instantiate(stars, transform.position, transform.rotation);
TP_Animator.Instance.GetComponent<AudioSource>().PlayOneShot(argh);
Destroy(gameObject);
}
else if(col.gameObject.tag == "Player" && TP_Animator.Instance.GetComponent<Animation>().IsPlaying("Protect"))
{
TP_Animator.Instance.GetComponent<AudioSource>().PlayOneShot(Uff);
Instantiate(stars, transform.position, transform.rotation);
mc.gameObject.GetComponent<Renderer>().enabled =false;
Destroy(gameObject);
}
else{
GetComponent<AudioSource>().PlayOneShot(pluf);
Instantiate(stars, transform.position, transform.rotation);
Destroy(render.gameObject,1);
Destroy(gameObject,1);
}
}
}
Bom esse scritp esta vinculado no objeto que fica caindo. O problema é que agora usando o animator eu não sei como acessa-lo por script, e não uso mais os script instanciados TP_Animator e TP_Controller.
No meu projeto ficam caindo objetos aletoriamente (isso ja esta programado), o que nao estou conseguindo fazer nessa versao da unity com o Animator é o seguinte...
Quando o objeto colidir com o char quero que o char inicie uma animação( somente se ele nao estiver se defendendo). Mas nao tenho ideia de como acessar o Animator, nem com que tipo de variavel (bool, trigger la no animator configuro essa animação), também nao estou encontrando uma maneira de fazer com que a colisão seja reconhecida... o objeto que cai é um rig e meu char é um character controller. E pra complicar, o meu char tem um animação chamada Protect, ou seja se quando ocorrer a colisão ele estiver rodando essa animação nada acontece com o char (iniciiar a animação de atordoado).
O meu codigo antigo funfa com animações diretas..sem o Animator, mas o problemas é q mudei tudo pra animator. Vou te passar o codigo que eu usava, se vc puder ajudar, por favor faça isso.
Codigo antigo:
using UnityEngine;
using System.Collections;
public class _ObjetoCaindoScript : MonoBehaviour {
public static _ObjetoCaindoScript Instance;
public GameObject stars;
public AudioClip Maca;
public GameObject mc;
public GameObject render;
public AudioClip argh;
public AudioClip Uff;
public AudioClip pluf;
void Awake(){
Instance = this;
}
public void Zonzing()
{
TP_Controller.Instance.Zonzing();
}
void OnCollisionEnter(Collision col){
if (col.gameObject.tag == "Player" && !TP_Animator.Instance.GetComponent<Animation>().IsPlaying("Protect"))
{
Zonzing();
Instantiate(stars, transform.position, transform.rotation);
TP_Animator.Instance.GetComponent<AudioSource>().PlayOneShot(argh);
Destroy(gameObject);
}
else if(col.gameObject.tag == "Player" && TP_Animator.Instance.GetComponent<Animation>().IsPlaying("Protect"))
{
TP_Animator.Instance.GetComponent<AudioSource>().PlayOneShot(Uff);
Instantiate(stars, transform.position, transform.rotation);
mc.gameObject.GetComponent<Renderer>().enabled =false;
Destroy(gameObject);
}
else{
GetComponent<AudioSource>().PlayOneShot(pluf);
Instantiate(stars, transform.position, transform.rotation);
Destroy(render.gameObject,1);
Destroy(gameObject,1);
}
}
}
Bom esse scritp esta vinculado no objeto que fica caindo. O problema é que agora usando o animator eu não sei como acessa-lo por script, e não uso mais os script instanciados TP_Animator e TP_Controller.
Re: Button
Bom, o problema é que você tem que ver o vídeo para entender como funciona o Animator, pois você vai fazer basicamente tudo por lá... os códigos são o de menos. Todas as condições e ações são configuradas no animator, sem script nem nada.
Quanto a este script que você postou, ele tem vários errinhos, como a falta de comandos no uso do "GetComponent"... em todos está faltando o componente que você quer acessar
Quanto a este script que você postou, ele tem vários errinhos, como a falta de comandos no uso do "GetComponent"... em todos está faltando o componente que você quer acessar
Re: Button
Não há erro, estou usando os script abertos com a public static Instance. Ele funfa com uma outra estrutura do char, esta nao uso mais...pois acho mais pratico o Animator por que estou alterando o projeto para multiplatadormas... mas vou fazer isso que vc disse, assistir aos videos... cara vlw pela dica, aqui tem mta informação top. :D
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos