(ajuda) como fazer dropar e pegar arma do chão?
3 participantes
Página 1 de 1
(ajuda) como fazer dropar e pegar arma do chão?
queria saber como dropar arma com g e pegar ela do chão passando por cima no estilo fps :cherry: eu tinha feito um script antes mas não deu muito certo ele so pegava uma arma e não dropava
matheuseduarddo- Iniciante
- PONTOS : 3220
REPUTAÇÃO : 0
Respeito as regras :
Re: (ajuda) como fazer dropar e pegar arma do chão?
Poste aqui o script em que pega que lhe ajudo a dropar!
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: (ajuda) como fazer dropar e pegar arma do chão?
esse script eu peguei aqui do forum e ele so funciona em uma arma pode me ajudar a fazer ficar em todas as armas e tambem droparhellkiller escreveu:Poste aqui o script em que pega que lhe ajudo a dropar!
- Código:
using UnityEngine;
using System.Collections;
public class ColetarArma1 : MonoBehaviour
{
private bool estaComArma;
private bool pertoDaArma;
public GameObject ArmaNoChao;
public GameObject ArmaNaMao;
public GUIText AperteE;
void Start()
{
estaComArma = false; // altera o valor para false
pertoDaArma = false; // altera o valor para false
AperteE.enabled = false; // desativa o texto na tela
}
void Update()
{
if (estaComArma == false)
{ // verifica se vc n tem arma
ArmaNaMao.SetActive(false); // desativa a arma q vc posicionou no player
}
if (estaComArma == false && pertoDaArma == true)
{ // verifica se vc n tem arma, e esta dentro do collider da arma no chao
if (Input.GetKeyDown("e"))
{ // se vc aperta E...
ArmaNaMao.SetActive(true); // ativa a arma q vc posicionou no player
Destroy(ArmaNoChao); // destroi a arma no chao
AperteE.enabled = false; // e desativa o texto na tela
estaComArma = true; // Altera o valor para true
}
}
}
void OnTriggerEnter()
{ // se vc entrou dentro do collider da arma
pertoDaArma = true; // altera o valor da variavel para true
AperteE.enabled = true; // e ativa o texto na tela
}
void OnTriggerExit()
{ // se saiu do collider
pertoDaArma = false; // altera o valor da variavel para false
AperteE.enabled = false; // e desativa o texto na tela
}
}
matheuseduarddo- Iniciante
- PONTOS : 3220
REPUTAÇÃO : 0
Respeito as regras :
Re: (ajuda) como fazer dropar e pegar arma do chão?
Vou recriar o script , posso te passar amanha?
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: (ajuda) como fazer dropar e pegar arma do chão?
simhellkiller escreveu:Vou recriar o script , posso te passar amanha?
matheuseduarddo- Iniciante
- PONTOS : 3220
REPUTAÇÃO : 0
Respeito as regras :
Re: (ajuda) como fazer dropar e pegar arma do chão?
simhellkiller escreveu:Vou recriar o script , posso te passar amanha?
matheuseduarddo- Iniciante
- PONTOS : 3220
REPUTAÇÃO : 0
Respeito as regras :
Re: (ajuda) como fazer dropar e pegar arma do chão?
Pera acho que termino hj!
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: (ajuda) como fazer dropar e pegar arma do chão?
Testa este script qualquer erro e só falar , pois não testei!
Não se esqueça daquele Like Maroto!Deu um pouco de trabalho fazer! :D
- Código:
using UnityEngine;
using System.Collections;
public class PegarArmas : MonoBehaviour
{
public bool Arma1, Arma2;// verifica se pegou elas basicamente
private bool PertoDaArma1,PertoDaArma2;//o mesmo do antigo script para verificar se tem elas
public GameObject ArmaNaMao1, ArmaNaMao2;//armas ja na mao do personagen para ativalas
//Drops
public Transform Player;//de onde vai sair o drop
public GameObject ArmaDrop1, ArmaDrop2;//Prefabs que vc linka para dropa-los
void Start()
{
Arma1 = false;
Arma2 = false;
PertoDaArma1 = false;
PertoDaArma2 = false;
ArmaNaMao1.SetActive(false);
ArmaNaMao2.SetActive(false);
}
void Update()
{
Drop();//Executa a void dropar
if(Arma1 == true && Arma2 == true)//Responsavel pela troca de armas no teclado 1 e 2
{
if (Input.GetKeyDown(KeyCode.Alpha1))//aperta 1 vai pra arma 1
{
ArmaNaMao1.SetActive(true);
ArmaNaMao2.SetActive(false);
}
if (Input.GetKeyDown(KeyCode.Alpha2))//aperta 2 vai pra arma 2
{
ArmaNaMao1.SetActive(false);
ArmaNaMao2.SetActive(true);
}
}
if(PertoDaArma1 == true && Arma1 == false)// pega arma 1
{
if (Input.GetKeyDown(KeyCode.G))
{
Arma1 = true;
}
if (Arma2 == true)
{
ArmaNaMao1.SetActive(false);
}
else
{
ArmaNaMao1.SetActive(true);
}
}
if (PertoDaArma2 == true && Arma2 == false)// pega arma 2
{
if (Input.GetKeyDown(KeyCode.G))
{
Arma2 = true;
}
if (Arma1 == true)
{
ArmaNaMao2.SetActive(false);
}
else
{
ArmaNaMao2.SetActive(false);
}
}
if (Arma1 == true && Arma2 == false)
{
ArmaNaMao1.SetActive(true);
ArmaNaMao2.SetActive(false);
}
if (Arma1 == false && Arma2 == true)
{
ArmaNaMao1.SetActive(false);
ArmaNaMao2.SetActive(true);
}
}
void OnTriggerEnter(Collision other)
{ // se vc entrou dentro do collider da arma
if (other.gameObject.CompareTag("Arma1"))
{
PertoDaArma1 = true; // altera o valor da variavel para true
}
if (other.gameObject.CompareTag("Arma2"))
{
PertoDaArma2 = true; // altera o valor da variavel para true
}
}
void OnTriggerExit(Collision other)
{ // se saiu do collider
if (other.gameObject.CompareTag("Arma1"))
{
PertoDaArma1 = false; // altera o valor da variavel para true
}
if (other.gameObject.CompareTag("Arma2"))
{
PertoDaArma2 = false; // altera o valor da variavel para true
}
}
void Drop()
{
if (Input.GetKeyDown(KeyCode.Q))
{
if (Arma1 == true)//Responsavel por dropar a arma1
{
GameObject cloneObjeto = Instantiate(ArmaDrop1, Player.position + Player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(Player.forward * 100);
}
if (Arma2 == true)//Responsavel por dropar a arma1
{
GameObject cloneObjeto = Instantiate(ArmaDrop2, Player.position + Player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(Player.forward * 100);
}
}
}
}
Não se esqueça daquele Like Maroto!Deu um pouco de trabalho fazer! :D
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: (ajuda) como fazer dropar e pegar arma do chão?
vi fazer aquihellkiller escreveu:Testa este script qualquer erro e só falar , pois não testei!
- Código:
using UnityEngine;
using System.Collections;
public class PegarArmas : MonoBehaviour
{
public bool Arma1, Arma2;// verifica se pegou elas basicamente
private bool PertoDaArma1,PertoDaArma2;//o mesmo do antigo script para verificar se tem elas
public GameObject ArmaNaMao1, ArmaNaMao2;//armas ja na mao do personagen para ativalas
//Drops
public Transform Player;//de onde vai sair o drop
public GameObject ArmaDrop1, ArmaDrop2;//Prefabs que vc linka para dropa-los
void Start()
{
Arma1 = false;
Arma2 = false;
PertoDaArma1 = false;
PertoDaArma2 = false;
ArmaNaMao1.SetActive(false);
ArmaNaMao2.SetActive(false);
}
void Update()
{
Drop();//Executa a void dropar
if(Arma1 == true && Arma2 == true)//Responsavel pela troca de armas no teclado 1 e 2
{
if (Input.GetKeyDown(KeyCode.Alpha1))//aperta 1 vai pra arma 1
{
ArmaNaMao1.SetActive(true);
ArmaNaMao2.SetActive(false);
}
if (Input.GetKeyDown(KeyCode.Alpha2))//aperta 2 vai pra arma 2
{
ArmaNaMao1.SetActive(false);
ArmaNaMao2.SetActive(true);
}
}
if(PertoDaArma1 == true && Arma1 == false)// pega arma 1
{
if (Input.GetKeyDown(KeyCode.G))
{
Arma1 = true;
}
if (Arma2 == true)
{
ArmaNaMao1.SetActive(false);
}
else
{
ArmaNaMao1.SetActive(true);
}
}
if (PertoDaArma2 == true && Arma2 == false)// pega arma 2
{
if (Input.GetKeyDown(KeyCode.G))
{
Arma2 = true;
}
if (Arma1 == true)
{
ArmaNaMao2.SetActive(false);
}
else
{
ArmaNaMao2.SetActive(false);
}
}
if (Arma1 == true && Arma2 == false)
{
ArmaNaMao1.SetActive(true);
ArmaNaMao2.SetActive(false);
}
if (Arma1 == false && Arma2 == true)
{
ArmaNaMao1.SetActive(false);
ArmaNaMao2.SetActive(true);
}
}
void OnTriggerEnter(Collision other)
{ // se vc entrou dentro do collider da arma
if (other.gameObject.CompareTag("Arma1"))
{
PertoDaArma1 = true; // altera o valor da variavel para true
}
if (other.gameObject.CompareTag("Arma2"))
{
PertoDaArma2 = true; // altera o valor da variavel para true
}
}
void OnTriggerExit(Collision other)
{ // se saiu do collider
if (other.gameObject.CompareTag("Arma1"))
{
PertoDaArma1 = false; // altera o valor da variavel para true
}
if (other.gameObject.CompareTag("Arma2"))
{
PertoDaArma2 = false; // altera o valor da variavel para true
}
}
void Drop()
{
if (Input.GetKeyDown(KeyCode.Q))
{
if (Arma1 == true)//Responsavel por dropar a arma1
{
GameObject cloneObjeto = Instantiate(ArmaDrop1, Player.position + Player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(Player.forward * 100);
}
if (Arma2 == true)//Responsavel por dropar a arma1
{
GameObject cloneObjeto = Instantiate(ArmaDrop2, Player.position + Player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(Player.forward * 100);
}
}
}
}
Não se esqueça daquele Like Maroto!Deu um pouco de trabalho fazer! :D
matheuseduarddo- Iniciante
- PONTOS : 3220
REPUTAÇÃO : 0
Respeito as regras :
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: (ajuda) como fazer dropar e pegar arma do chão?
deu erro na ontriggerexithellkiller escreveu:An?
matheuseduarddo- Iniciante
- PONTOS : 3220
REPUTAÇÃO : 0
Respeito as regras :
Re: (ajuda) como fazer dropar e pegar arma do chão?
Em vez de
Mudei apenas o collision para collider...
E, você colocou todas as tags?, colocou o collider certinho onde o player possa passar?
- Código:
void OnTriggerEnter(Collision other)
{ // se vc entrou dentro do collider da arma
if (other.gameObject.CompareTag("Arma1"))
{
PertoDaArma1 = true; // altera o valor da variavel para true
}
if (other.gameObject.CompareTag("Arma2"))
{
PertoDaArma2 = true; // altera o valor da variavel para true
}
}
void OnTriggerExit(Collision other)
{ // se saiu do collider
if (other.gameObject.CompareTag("Arma1"))
{
PertoDaArma1 = false; // altera o valor da variavel para true
}
if (other.gameObject.CompareTag("Arma2"))
{
PertoDaArma2 = false; // altera o valor da variavel para true
}
}
- Código:
void OnTriggerEnter(Collider other)
{ // se vc entrou dentro do collider da arma
if (other.gameObject.CompareTag("Arma1"))
{
PertoDaArma1 = true; // altera o valor da variavel para true
}
if (other.gameObject.CompareTag("Arma2"))
{
PertoDaArma2 = true; // altera o valor da variavel para true
}
}
void OnTriggerExit(Collider other)
{ // se saiu do collider
if (other.gameObject.CompareTag("Arma1"))
{
PertoDaArma1 = false; // altera o valor da variavel para true
}
if (other.gameObject.CompareTag("Arma2"))
{
PertoDaArma2 = false; // altera o valor da variavel para true
}
}
Mudei apenas o collision para collider...
E, você colocou todas as tags?, colocou o collider certinho onde o player possa passar?
Re: (ajuda) como fazer dropar e pegar arma do chão?
Troquei os o Collider pelo collision , acho que foi porque fiz as pressas!
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: (ajuda) como fazer dropar e pegar arma do chão?
vou tentar aqui
matheuseduarddo- Iniciante
- PONTOS : 3220
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» Como fazer player ir do chão pro teto e do teto pro chão (2D game)
» PEGAR ARMA DO CHÃO
» [TUTORIAL] SISTEMA DE PEGAR ARMA/SEU OBJETO DO CHÃO!
» Como fazer um pulo que não da pra controlar ate chegar no chão?
» ajuda. pegar munição e adicionar na arma
» PEGAR ARMA DO CHÃO
» [TUTORIAL] SISTEMA DE PEGAR ARMA/SEU OBJETO DO CHÃO!
» Como fazer um pulo que não da pra controlar ate chegar no chão?
» ajuda. pegar munição e adicionar na arma
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos