[Dúvida] tiro
5 participantes
Página 1 de 1
[Dúvida] tiro
Estou tentando colocar a animação no personagem de receber o tiro, só que quando ele recebe o tiro a animação vai pra um Ogro aleatório, não vai pro que levou o tiro.
Script de atirar:
Script de animação:
Script de atirar:
- Código:
public class Atirar : Animação
{
void Update()
{
if (Input.GetMouseButton(0) && armas[armaAtual].balasNoPente > 0 && recarregando == false && atirando == false)
{
RaycastHit pontoDeColisao;
if (Physics.Raycast(transform.position, transform.forward, out pontoDeColisao))
{
if (pontoDeColisao.transform.gameObject.tag == TagInimigo)
{
Tiro();
}
}
}
}
}
Script de animação:
- Código:
public class Animação : MonoBehaviour {
public Animator anima;
void Start () {
anima = this.GetComponent<Animator>();
}
public void Tiro()
{
anima = GameObject.FindWithTag("Inimigo").GetComponent<Animator>();
StartCoroutine("Tempo");
}
IEnumerator Tempo()
{
anima.SetBool("ReceberTiro", true);
yield return new WaitForSeconds(0.5f);
anima.SetBool("ReceberTiro", false);
}
}
aleksander700- Membro
- PONTOS : 2852
REPUTAÇÃO : 7
Respeito as regras :
Re: [Dúvida] tiro
Parceiro, vou explicar uma coisa que você pode tentar. bom, primeiro você vai criar uma variavel publica booleana dentro do script do seu ogro.
Quando o raycast colidir com o tal ogro, ele vai buscar por esse script, e se encontrar vai ativar a tal booleana, executando assim a animação. Vai ficar tipo isso..
Script do inimigo
Ok, agora o script do tiro
É simples!
Se quiser eu comento o script pra ficar mais facil de entender..
Quando o raycast colidir com o tal ogro, ele vai buscar por esse script, e se encontrar vai ativar a tal booleana, executando assim a animação. Vai ficar tipo isso..
Script do inimigo
- Código:
public Animator Animador;
public bool ExecutarAnimacao = false;
void Start()
{
Animador = GetComponent<Animator>();
}
void Update()
{
if(ExecutarAnimacao == true)
{
StartCoroutine("Tempo");
ExecutarAnimacao = false;
}
}
IEnumerator Tempo()
{
Animador.SetBool("ReceberTiro", true);
yield return new WaitForSeconds(0.5f);
Animador.SetBool("ReceberTiro", false);
}
Ok, agora o script do tiro
- Código:
public RaycastHit PontoDeColisao;
void Update()
{
if (Input.GetMouseButton(0) && armas[armaAtual].balasNoPente > 0 && recarregando == false && atirando == false)
{
if (Physics.Raycast(transform.position, transform.forward, out pontoDeColisao))
{
if (PontoDeColisao.transform.gameObject.tag == ("TagInimigo"))
{
GetComponent<ScriptInimigo>().ExecutarAnimacao = true;
}
}
}
}
É simples!
Se quiser eu comento o script pra ficar mais facil de entender..
Re: [Dúvida] tiro
use esse tópico para animaçãoaleksander700 escreveu:Estou tentando colocar a animação no personagem de receber o tiro, só que quando ele recebe o tiro a animação vai pra um Ogro aleatório, não vai pro que levou o tiro.
Script de atirar:
- Código:
public class Atirar : Animação
{
void Update()
{
if (Input.GetMouseButton(0) && armas[armaAtual].balasNoPente > 0 && recarregando == false && atirando == false)
{
RaycastHit pontoDeColisao;
if (Physics.Raycast(transform.position, transform.forward, out pontoDeColisao))
{
if (pontoDeColisao.transform.gameObject.tag == TagInimigo)
{
Tiro();
}
}
}
}
}
Script de animação:
- Código:
public class Animação : MonoBehaviour {
public Animator anima;
void Start () {
anima = this.GetComponent<Animator>();
}
public void Tiro()
{
anima = GameObject.FindWithTag("Inimigo").GetComponent<Animator>();
StartCoroutine("Tempo");
}
IEnumerator Tempo()
{
anima.SetBool("ReceberTiro", true);
yield return new WaitForSeconds(0.5f);
anima.SetBool("ReceberTiro", false);
}
}
https://www.schultzgames.com/t4439-tutorial-recoil-ou-animacao-de-tiro
e esse vídeo para o tiro
Gabriel César O- Profissional
- PONTOS : 3986
REPUTAÇÃO : 217
Idade : 23
Áreas de atuação : (ESTUDANDO SEGUNDO GRAU), (FUÇANDO NO UNITY)){
Respeito as regras :
Re: [Dúvida] tiro
Não funcionou, na vdd n tava animando em ninguém mais, do outro jeito pelo menos ativava em ogro aleatório, será que n tem uma forma de especificar qual é? tipo no photon, o photon is mine e tal.marcos4503 escreveu:Parceiro, vou explicar uma coisa que você pode tentar. bom, primeiro você vai criar uma variavel publica booleana dentro do script do seu ogro.
Quando o raycast colidir com o tal ogro, ele vai buscar por esse script, e se encontrar vai ativar a tal booleana, executando assim a animação. Vai ficar tipo isso..
Script do inimigo
- Código:
public Animator Animador;
public bool ExecutarAnimacao = false;
void Start()
{
Animador = GetComponent<Animator>();
}
void Update()
{
if(ExecutarAnimacao == true)
{
StartCoroutine("Tempo");
ExecutarAnimacao = false;
}
}
IEnumerator Tempo()
{
Animador.SetBool("ReceberTiro", true);
yield return new WaitForSeconds(0.5f);
Animador.SetBool("ReceberTiro", false);
}
Ok, agora o script do tiro
- Código:
public RaycastHit PontoDeColisao;
void Update()
{
if (Input.GetMouseButton(0) && armas[armaAtual].balasNoPente > 0 && recarregando == false && atirando == false)
{
if (Physics.Raycast(transform.position, transform.forward, out pontoDeColisao))
{
if (PontoDeColisao.transform.gameObject.tag == ("TagInimigo"))
{
GetComponent<ScriptInimigo>().ExecutarAnimacao = true;
}
}
}
}
É simples!
Se quiser eu comento o script pra ficar mais facil de entender..
aleksander700- Membro
- PONTOS : 2852
REPUTAÇÃO : 7
Respeito as regras :
Re: [Dúvida] tiro
Vai ser útil depois, mas não é isso o que eu quero mano, a animação é de receber o tiro, não da armaGabriel César O escreveu:use esse tópico para animaçãoaleksander700 escreveu:Estou tentando colocar a animação no personagem de receber o tiro, só que quando ele recebe o tiro a animação vai pra um Ogro aleatório, não vai pro que levou o tiro.
Script de atirar:
- Código:
public class Atirar : Animação
{
void Update()
{
if (Input.GetMouseButton(0) && armas[armaAtual].balasNoPente > 0 && recarregando == false && atirando == false)
{
RaycastHit pontoDeColisao;
if (Physics.Raycast(transform.position, transform.forward, out pontoDeColisao))
{
if (pontoDeColisao.transform.gameObject.tag == TagInimigo)
{
Tiro();
}
}
}
}
}
Script de animação:
- Código:
public class Animação : MonoBehaviour {
public Animator anima;
void Start () {
anima = this.GetComponent<Animator>();
}
public void Tiro()
{
anima = GameObject.FindWithTag("Inimigo").GetComponent<Animator>();
StartCoroutine("Tempo");
}
IEnumerator Tempo()
{
anima.SetBool("ReceberTiro", true);
yield return new WaitForSeconds(0.5f);
anima.SetBool("ReceberTiro", false);
}
}
https://www.schultzgames.com/t4439-tutorial-recoil-ou-animacao-de-tiro
e esse vídeo para o tiro
aleksander700- Membro
- PONTOS : 2852
REPUTAÇÃO : 7
Respeito as regras :
Re: [Dúvida] tiro
Funciona se o raycast entrar? não faço ideia de como fazer, pode exemplificar?Matrirxp escreveu:
- Código:
Voce tentou usar OnTriggerEnter ???
aleksander700- Membro
- PONTOS : 2852
REPUTAÇÃO : 7
Respeito as regras :
Tópicos semelhantes
» Duvida Com Tiro LineCast Jogo 2D
» [RESOLVIDO] Duvida em Jogo de tiro 2D
» [DUVIDA] Tiro com botao touch android!!
» ANIMAÇÃO DE TIRO NO UNITY
» Muita Dúvida em como fazer o tiro do personagem para de ficar automatico
» [RESOLVIDO] Duvida em Jogo de tiro 2D
» [DUVIDA] Tiro com botao touch android!!
» ANIMAÇÃO DE TIRO NO UNITY
» Muita Dúvida em como fazer o tiro do personagem para de ficar automatico
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos