Animaçao de sacar arma
2 participantes
Página 1 de 1
Animaçao de sacar arma
estou fazendo um jogo de guerra, e esta indo muito bem, já e possível atirar, trocar de arma, já tem um menu bem feito, mas queria q quando sacasse a arma, fizesse uma animação; vocês não saberiam de um void q seria chamado quando o game Object tem Set Active como true ou false?
vini024- Membro
- PONTOS : 1859
REPUTAÇÃO : 9
Respeito as regras :
Re: Animaçao de sacar arma
Olá, boa tarde...
para poder usar uma animação ao sacar, você pode usar a seguinte forma:
fazendo assim, quando a void SacarArma() for acionada, a animação também será !
obs: você precisa fazer a animação, e saber tratar com animator
para poder usar uma animação ao sacar, você pode usar a seguinte forma:
- Código:
public GameObject Arma;
private Animator anim;
void Start()
{
anim = GetComponent<Animator>();
}
public void SacarArma()
{
Arma.gameObject.SetActive(true);
anim.SetBool("SacarArma", true);
}
fazendo assim, quando a void SacarArma() for acionada, a animação também será !
obs: você precisa fazer a animação, e saber tratar com animator
iToddy- Avançado
- PONTOS : 2276
REPUTAÇÃO : 10
Respeito as regras :
Re: Animaçao de sacar arma
eu fiz de outra forma, vou te mandar o scriptiToddy escreveu:Olá, boa tarde...
para poder usar uma animação ao sacar, você pode usar a seguinte forma:
- Código:
public GameObject Arma;
private Animator anim;
void Start()
{
anim = GetComponent<Animator>();
}
public void SacarArma()
{
Arma.gameObject.SetActive(true);
anim.SetBool("SacarArma", true);
}
fazendo assim, quando a void SacarArma() for acionada, a animação também será !
obs: você precisa fazer a animação, e saber tratar com animator
nao sei como implementar um SetBool
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SwitchGuns : MonoBehaviour
{
public int selectedWeapon;
void Start()
{
SelectGun();
}
// Update is called once per frame
void Update()
{
int previousSelectedWeapon = selectedWeapon;
if(Input.GetAxis("Mouse ScrollWheel") > 0f)
{
if (selectedWeapon >= transform.childCount - 1)
selectedWeapon = 0;
else
selectedWeapon++;
}
if (Input.GetAxis("Mouse ScrollWheel") < 0f)
{
if (selectedWeapon <= 0)
selectedWeapon = transform.childCount - 1;
else
selectedWeapon--;
}
if(previousSelectedWeapon != selectedWeapon)
{
SelectGun();
}
}
void SelectGun()
{
int i = 0;
foreach(Transform weapon in transform)
{
if (i == selectedWeapon)
weapon.gameObject.SetActive(true);
else
weapon.gameObject.SetActive(false);
i++;
}
}
}
vini024- Membro
- PONTOS : 1859
REPUTAÇÃO : 9
Respeito as regras :
Re: Animaçao de sacar arma
Olá novamente.
isto deve servir. não foi testado, caso tenha problemas, basta dizer !
- Código:
[list=linenums][size=12][*][size=14][b]using[/b][/size][size=14] [/size][size=14]System[/size][size=14].[/size][size=14]Collections[/size][size=14];[/size][size=14][/size][size=14][/size]
[*][size=14][/size][size=14][b]using[/b][/size][size=14] [/size][size=14]System[/size][size=14].[/size][size=14]Collections[/size][size=14].[/size][size=14]Generic[/size][size=14];[/size][size=14][/size][size=14][/size]
[*][size=14][/size][size=14][b]using[/b][/size][size=14] [/size][size=14]UnityEngine[/size][size=14];[/size][size=14][/size][size=14][/size]
[*][size=14][/size][size=14][/size]
[*][size=14][/size][size=14][b]public[/b][/size][size=14] [/size][size=14][b]class[/b][/size][size=14] [/size][size=14]SwitchGuns[/size][size=14] [/size][size=14]:[/size][size=14] [/size][size=14]MonoBehaviour[/size][size=14][/size][size=14][/size]
[*][size=14][/size][size=14]{[/size][size=14][/size][size=14][/size]
[*][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14][b]public[/b][/size][size=14] [/size][size=14][b]int[/b][/size][size=14] selectedWeapon[/size][size=14];[/size][size=14][/size][size=14][/size]
[*][size=14] public Animator anim;[/size]
[*][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14][b]void[/b][/size][size=14] [/size][size=14]Start[/size][size=14]()[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14]{[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14]SelectGun[/size][size=14]();[/size][size=14][/size][size=14][/size]
[*][size=14] [/size]anim = GetComponent<Animator>();
[*][size=14] [/size][size=14]}[/size][size=14][/size][size=14][/size]
[*][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14]// Update is called once per frame[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14][b]void[/b][/size][size=14] [/size][size=14]Update[/size][size=14]()[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14]{[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14][b]int[/b][/size][size=14] previousSelectedWeapon [/size][size=14]=[/size][size=14] selectedWeapon[/size][size=14];[/size][size=14][/size][size=14][/size]
[*][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14][b]if[/b][/size][size=14]([/size][size=14]Input[/size][size=14].[/size][size=14]GetAxis[/size][size=14]([/size][size=14]"Mouse ScrollWheel"[/size][size=14])[/size][size=14] [/size][size=14]>[/size][size=14] [/size][size=14]0f[/size][size=14])[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14]{[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14][/size]
[*][size=14] [/size][size=14][b]if[/b][/size][size=14] [/size][size=14]([/size][size=14]selectedWeapon [/size][size=14]>=[/size][size=14] transform[/size][size=14].[/size][size=14]childCount [/size][size=14]-[/size][size=14] [/size][size=14]1[/size][size=14])[/size][size=14][/size][size=14][/size]
[*][size=14] selectedWeapon [/size][size=14]=[/size][size=14] [/size][size=14]0[/size][size=14];[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14][b]else[/b][/size][size=14][/size][size=14][/size]
[*][size=14] selectedWeapon[/size][size=14]++;[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14]}[/size][size=14][/size][size=14][/size]
[*][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14][b]if[/b][/size][size=14] [/size][size=14]([/size][size=14]Input[/size][size=14].[/size][size=14]GetAxis[/size][size=14]([/size][size=14]"Mouse ScrollWheel"[/size][size=14])[/size][size=14] [/size][size=14]<[/size][size=14] [/size][size=14]0f[/size][size=14])[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14]{[/size][size=14][/size][size=14][/size]
[*][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14][b]if[/b][/size][size=14] [/size][size=14]([/size][size=14]selectedWeapon [/size][size=14]<=[/size][size=14] [/size][size=14]0[/size][size=14])[/size][size=14][/size][size=14][/size]
[*][size=14] selectedWeapon [/size][size=14]=[/size][size=14] transform[/size][size=14].[/size][size=14]childCount [/size][size=14]-[/size][size=14] [/size][size=14]1[/size][size=14];[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14][b]else[/b][/size][size=14][/size][size=14][/size]
[*][size=14] selectedWeapon[/size][size=14]--;[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14]}[/size][size=14][/size][size=14][/size]
[*][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14][b]if[/b][/size][size=14]([/size][size=14]previousSelectedWeapon [/size][size=14]!=[/size][size=14] selectedWeapon[/size][size=14])[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14]{[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14]SelectGun[/size][size=14]();[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14]}[/size][size=14][/size][size=14][/size]
[*][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14]}[/size][size=14][/size][size=14][/size]
[*][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14][b]void[/b][/size][size=14] [/size][size=14]SelectGun[/size][size=14]()[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14]{[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14][b]int[/b][/size][size=14] i [/size][size=14]=[/size][size=14] [/size][size=14]0[/size][size=14];[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14][b]foreach[/b][/size][size=14]([/size][size=14]Transform[/size][size=14] weapon [/size][size=14][b]in[/b][/size][size=14] transform[/size][size=14])[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14]{[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14][b]if[/b][/size][size=14] [/size][size=14]([/size][size=14]i [/size][size=14]==[/size][size=14] selectedWeapon[/size][size=14])[/size][size=14][/size][size=14][/size]
[*][size=14] {[/size]
[*][size=14] weapon[/size][size=14].[/size][size=14]gameObject[/size][size=14].[/size][size=14]SetActive[/size][size=14]([/size][size=14][b]true[/b][/size][size=14]);[/size][size=14][/size][size=14][/size]
[*][size=14] anim.SetBool("SacarArma",true);[/size]
[*][size=14] }[/size]
[*][size=14] [/size][size=14][b]else[/b][/size][size=14][/size][size=14][/size]
[*][size=14] weapon[/size][size=14].[/size][size=14]gameObject[/size][size=14].[/size][size=14]SetActive[/size][size=14]([/size][size=14][b]false[/b][/size][size=14]);[/size][size=14][/size][size=14][/size]
[*][size=14] i[/size][size=14]++;[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14]}[/size][size=14][/size][size=14][/size]
[*][size=14] [/size][size=14]}[/size][size=14][/size][size=14][/size]
[*][size=14][/size][size=14]}[/size]
[/size][*][/list]
[color=#666666][font=Consolas, Bitstream Vera Sans Mono, Andale Mono, Monaco, DejaVu Sans Mono, Lucida Console, monospace][size=14]
isto deve servir. não foi testado, caso tenha problemas, basta dizer !
iToddy- Avançado
- PONTOS : 2276
REPUTAÇÃO : 10
Respeito as regras :
Re: Animaçao de sacar arma
Eita, saiu bugado, não sei pq
[list=linenums]
[*]using System.Collections;
[*]using System.Collections.Generic;
[*]using UnityEngine;
[*]public class SwitchGuns : MonoBehaviour
[*]{
[*] public int selectedWeapon;
[*] private Animator anim;
[*] void Start()
[*] {
[*] SelectGun();
[*] anim = GetComponent<Animator>();
[*] }
[*] // Update is called once per frame
[*] void Update()
[*] {
[*] int previousSelectedWeapon = selectedWeapon;
[*] if(Input.GetAxis("Mouse ScrollWheel") > 0f)
[*] {
[*]
[*] if (selectedWeapon >= transform.childCount - 1)
[*] selectedWeapon = 0;
[*] else
[*] selectedWeapon++;
[*] }
[*] if (Input.GetAxis("Mouse ScrollWheel") < 0f)
[*] {
[*] if (selectedWeapon <= 0)
[*] selectedWeapon = transform.childCount - 1;
[*] else
[*] selectedWeapon--;
[*] }
[*] if(previousSelectedWeapon != selectedWeapon)
[*] {
[*] SelectGun();
[*] }
[*] }
[*] void SelectGun()
[*] {
[*] int i = 0;
[*] foreach(Transform weapon in transform)
[*] {
[*] if (i == selectedWeapon)
[*] {
[*] weapon.gameObject.SetActive(true);
[*] anim.SetBool("SacarArma",true);
[*] }
[*] else
[*]
[*] weapon.gameObject.SetActive(false);
[*] i++;
[*] }
[*] }
[*]}
[/list]
[list=linenums]
[*]using System.Collections;
[*]using System.Collections.Generic;
[*]using UnityEngine;
[*]public class SwitchGuns : MonoBehaviour
[*]{
[*] public int selectedWeapon;
[*] private Animator anim;
[*] void Start()
[*] {
[*] SelectGun();
[*] anim = GetComponent<Animator>();
[*] }
[*] // Update is called once per frame
[*] void Update()
[*] {
[*] int previousSelectedWeapon = selectedWeapon;
[*] if(Input.GetAxis("Mouse ScrollWheel") > 0f)
[*] {
[*]
[*] if (selectedWeapon >= transform.childCount - 1)
[*] selectedWeapon = 0;
[*] else
[*] selectedWeapon++;
[*] }
[*] if (Input.GetAxis("Mouse ScrollWheel") < 0f)
[*] {
[*] if (selectedWeapon <= 0)
[*] selectedWeapon = transform.childCount - 1;
[*] else
[*] selectedWeapon--;
[*] }
[*] if(previousSelectedWeapon != selectedWeapon)
[*] {
[*] SelectGun();
[*] }
[*] }
[*] void SelectGun()
[*] {
[*] int i = 0;
[*] foreach(Transform weapon in transform)
[*] {
[*] if (i == selectedWeapon)
[*] {
[*] weapon.gameObject.SetActive(true);
[*] anim.SetBool("SacarArma",true);
[*] }
[*] else
[*]
[*] weapon.gameObject.SetActive(false);
[*] i++;
[*] }
[*] }
[*]}
[/list]
iToddy- Avançado
- PONTOS : 2276
REPUTAÇÃO : 10
Respeito as regras :
Re: Animaçao de sacar arma
tentei fazer exatamente esse jeito, ate com o mesmo nome na booleana, mas quando eu trocava para segunda arma, a animação ficava em loopiToddy escreveu:Eita, saiu bugado, não sei pq
[list=linenums]
[*]using System.Collections;
[*]using System.Collections.Generic;
[*]using UnityEngine;
[*]public class SwitchGuns : MonoBehaviour
[*]{
[*] public int selectedWeapon;
[*]private Animator anim;
[*] void Start()
[*] {
[*] SelectGun();
[*]anim = GetComponent<Animator>();
[*] }
[*] // Update is called once per frame
[*] void Update()
[*] {
[*] int previousSelectedWeapon = selectedWeapon;
[*] if(Input.GetAxis("Mouse ScrollWheel") > 0f)
[*] {
[*]
[*] if (selectedWeapon >= transform.childCount - 1)
[*] selectedWeapon = 0;
[*] else
[*] selectedWeapon++;
[*] }
[*] if (Input.GetAxis("Mouse ScrollWheel") < 0f)
[*] {
[*] if (selectedWeapon <= 0)
[*] selectedWeapon = transform.childCount - 1;
[*] else
[*] selectedWeapon--;
[*] }
[*] if(previousSelectedWeapon != selectedWeapon)
[*] {
[*] SelectGun();
[*] }
[*] }
[*] void SelectGun()
[*] {
[*] int i = 0;
[*] foreach(Transform weapon in transform)
[*] {
[*] if (i == selectedWeapon)
[*]{
[*] weapon.gameObject.SetActive(true);
[*]anim.SetBool("SacarArma",true);
[*]}
[*] else
[*] weapon.gameObject.SetActive(false);
[*] i++;
[*] }
[*] }
[*]}
[/list]
vini024- Membro
- PONTOS : 1859
REPUTAÇÃO : 9
Respeito as regras :
Re: Animaçao de sacar arma
Basta desativa-lá amigo, como foi dito, deve saber tratar com animator...
iToddy- Avançado
- PONTOS : 2276
REPUTAÇÃO : 10
Respeito as regras :
Re: Animaçao de sacar arma
eu desabilitei o loop mas ficava mesmo assimiToddy escreveu:Basta desativa-lá amigo, como foi dito, deve saber tratar com animator...
vini024- Membro
- PONTOS : 1859
REPUTAÇÃO : 9
Respeito as regras :
Re: Animaçao de sacar arma
Chama MP mano, posso ajudar !
iToddy- Avançado
- PONTOS : 2276
REPUTAÇÃO : 10
Respeito as regras :
Tópicos semelhantes
» ANIMAÇAO DE ARMA
» [DÚVIDA] BUG DE TEMPO COM ANIMAÇÃO DE RECARREGAR A ARMA
» Animação de arma
» [Ajuda]Animação na arma
» Adicionar arma em uma animação do Mixamo
» [DÚVIDA] BUG DE TEMPO COM ANIMAÇÃO DE RECARREGAR A ARMA
» Animação de arma
» [Ajuda]Animação na arma
» Adicionar arma em uma animação do Mixamo
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos