[RESOLVIDO] Pegar e Jogar armas no chão (estilo CS 1.6)
5 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Pegar e Jogar armas no chão (estilo CS 1.6)
Galera blz ?
estou com um projeto pronto estilo CS e nao consigo jogar a arma no chao ... só pegar ela usando o "SetPatern".... como que faço pra jogar ela novamente no chão ?
eu sei que tem que fazer um inventário no jogador e outro na fase pra ativar e desativar o objeto..... mais a duvida é:
1 - COMO VOU JOGAR ELA NO CHAO;
&
2 - COMO A ARMA VAI PARA O CHÃO COM A MESMA QUANTIDADE DE MUNIÇÃO PARA OUTRA PESSOA PEGAR ?
E se alguém também souber... como que faz um "timer" para acabar a partida ou matar o time adversário e reiniciar o jogo....
OBS.... ja garimpei a net toda .. ja comprei curso na UDEMY e nada desse código
estou com um projeto pronto estilo CS e nao consigo jogar a arma no chao ... só pegar ela usando o "SetPatern".... como que faço pra jogar ela novamente no chão ?
eu sei que tem que fazer um inventário no jogador e outro na fase pra ativar e desativar o objeto..... mais a duvida é:
1 - COMO VOU JOGAR ELA NO CHAO;
&
2 - COMO A ARMA VAI PARA O CHÃO COM A MESMA QUANTIDADE DE MUNIÇÃO PARA OUTRA PESSOA PEGAR ?
E se alguém também souber... como que faz um "timer" para acabar a partida ou matar o time adversário e reiniciar o jogo....
OBS.... ja garimpei a net toda .. ja comprei curso na UDEMY e nada desse código
lhm- Iniciante
- PONTOS : 2684
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Pegar e Jogar armas no chão (estilo CS 1.6)
Creio que vc nao possa pedir scripts prontos aqui, mas vc deveria que criar um prefab da arma, que quando vc aperta o botao de dropar a arma, vai spawnar uma prefab da arma que cai no chao e ela vai receber o valor INT da muniçao em que estava enquanto ela estava em maos.
Lteo- Avançado
- PONTOS : 2967
REPUTAÇÃO : 27
Idade : 24
Áreas de atuação : Desenvolvedor web
Respeito as regras :
Re: [RESOLVIDO] Pegar e Jogar armas no chão (estilo CS 1.6)
Não da pra enquanto a arma estiver com o player ela desativa a gravidade e quando solta dela ativa? Assim ela cai? Pra isso, ela precisa ter um rigibody.
Re: [RESOLVIDO] Pegar e Jogar armas no chão (estilo CS 1.6)
lhm escreveu:Galera blz ?
estou com um projeto pronto estilo CS e nao consigo jogar a arma no chao ... só pegar ela usando o "SetPatern".... como que faço pra jogar ela novamente no chão ?
eu sei que tem que fazer um inventário no jogador e outro na fase pra ativar e desativar o objeto..... mais a duvida é:
1 - COMO VOU JOGAR ELA NO CHAO;
&
2 - COMO A ARMA VAI PARA O CHÃO COM A MESMA QUANTIDADE DE MUNIÇÃO PARA OUTRA PESSOA PEGAR ?
E se alguém também souber... como que faz um "timer" para acabar a partida ou matar o time adversário e reiniciar o jogo....
OBS.... ja garimpei a net toda .. ja comprei curso na UDEMY e nada desse código
Saudações amigo!
Creio que nestes tópicos encontrará respostas para o que procura. https://www.schultzgames.com/t519-tutorial-pegar-arma-do-chao-ao-aperta-e-unity-5?highlight=Pegar
https://www.schultzgames.com/t1010-ajuda-como-fazer-dropar-e-pegar-arma-do-chao?highlight=Dropar
https://www.schultzgames.com/t4311-tutorial-pegar-e-dropar-item-no-chao-2-0?highlight=Dropar
https://www.schultzgames.com/t6981-tutorial-pegar-e-dropar-itens-2-1?highlight=Dropar
JohnRambo- Moderador
- PONTOS : 5171
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Re: [RESOLVIDO] Pegar e Jogar armas no chão (estilo CS 1.6)
Pra soltar a arma no chão e ela cair, você precisa de duas coisas:
Primeiro: que ela tenha a física, para que possa ser afetada pela gravidade e cair.
Segundo: que ela pare de ser filha do jogador principal, para que ela não receba mais o Transform do pai.
Par fazer isso, adicione um Rigibody no objeto da arma e dê um freeze rotation no eixo Z. Então quando o jogador pegar essa arma e fazer ela ser filha, você vai desativar a detecção de colisão(para não dar bug com a colisão do Player) e desativar a gravidade.
Daí para largar a arma é simples: Basta verificar se aquele objeto é filho do Player e se vc apertou a tecla pra largar, caso sim, vc faz com que a arma pare de ser filha do Player (setando o transform.parent para nulo) e ativa a gravidade e a colisão de novo:
Esse script deve estar no objeto da arma, e o player deve estar com a tag "Player".
O efeito fica esse (player = cubo; arma = cilindro):
Se não quiser que a arma saia rolando por aí, só dar um freeze rotation em X e em Y também.
Primeiro: que ela tenha a física, para que possa ser afetada pela gravidade e cair.
Segundo: que ela pare de ser filha do jogador principal, para que ela não receba mais o Transform do pai.
Par fazer isso, adicione um Rigibody no objeto da arma e dê um freeze rotation no eixo Z. Então quando o jogador pegar essa arma e fazer ela ser filha, você vai desativar a detecção de colisão(para não dar bug com a colisão do Player) e desativar a gravidade.
Daí para largar a arma é simples: Basta verificar se aquele objeto é filho do Player e se vc apertou a tecla pra largar, caso sim, vc faz com que a arma pare de ser filha do Player (setando o transform.parent para nulo) e ativa a gravidade e a colisão de novo:
- Código:
using UnityEngine;
using System.Collections;
public class DropObject : MonoBehaviour {
private Rigidbody rb;
private GameObject transformParent;
void Awake(){
transformParent = GameObject.FindGameObjectWithTag ("Player");
rb = GetComponent<Rigidbody> ();
}
void Update () {
if (Input.GetKeyDown(KeyCode.A) && transform.IsChildOf(transformParent.transform)) {
transform.parent = null;
rb.useGravity = true;
rb.detectCollisions = true;
}
if (transform.IsChildOf(transformParent.transform)) {
rb.detectCollisions = false;
rb.useGravity = false;
}
}
}
Esse script deve estar no objeto da arma, e o player deve estar com a tag "Player".
O efeito fica esse (player = cubo; arma = cilindro):
Se não quiser que a arma saia rolando por aí, só dar um freeze rotation em X e em Y também.
Re: [RESOLVIDO] Pegar e Jogar armas no chão (estilo CS 1.6)
Galera muito obrigado... a lógica do script não tava vindo na cabeça.... ainda vou tentar fazer o menu das armas.... valew "MyLeone" .... vou tentar aki pra ver como q fica
lhm- Iniciante
- PONTOS : 2684
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Pegar e Jogar armas no chão (estilo CS 1.6)
nao ta indo... ja coloquei o script na arma e rigidbody.... aperto a tecla e nada
lhm- Iniciante
- PONTOS : 2684
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Pegar e Jogar armas no chão (estilo CS 1.6)
eu to testando aqui.... pra ve o q deu de errado.... vou postar sim !!
lhm- Iniciante
- PONTOS : 2684
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Pegar e Jogar armas no chão (estilo CS 1.6)
2- Voce pode criar um script e colicar na arma que vai para o chão , e colocar uma variavel referindo a quantidade de balas atiradas e quando o player pegar a arma voce passa essa quantidade para o script da arma
3-Voce pode contar quantas pessoas estão vivas em cada time, caso algum time se esgote voce reinicia a partida, ou fazer um contador e caso ultrapasse o seu tempo máximo reinicia a partida
3-Voce pode contar quantas pessoas estão vivas em cada time, caso algum time se esgote voce reinicia a partida, ou fazer um contador e caso ultrapasse o seu tempo máximo reinicia a partida
- Código:
float count;
public float time;
void Start(){
count = Time.time +time;
}
void Update(){
if(count < Time.time){
//reseta a partida
}
}
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: [RESOLVIDO] Pegar e Jogar armas no chão (estilo CS 1.6)
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PegarArma2 : MonoBehaviour {
bool _podepegar;
public Transform mao;
public Transform chao;
public FixedButton jogararma;
int idArma;
void Start(){
}
void OnTriggerEnter (Collider other ) {
if (other.gameObject.tag == "m4") {
other.transform.position = mao.position;
other.transform.rotation = mao.rotation;
other.transform.SetParent (mao);
_podepegar = true;
largar ();
}
}
void OnTriggerExit (Collider other) {
largar ();
}
void largar(){
if (_podepegar == true) {
if (jogararma.Pressed) {
transform.SetParent (chao);
}
}
}
} // class
e ai galera coloquei esse script pra pegar a arma se eu chegar perto do box colider dela..... mais ela nao joga fora se eu apertar o botão desejado.. o que faço ?
lhm- Iniciante
- PONTOS : 2684
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Pegar e Jogar armas no chão (estilo CS 1.6)
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PegarArma2 : MonoBehaviour {
bool _podepegar;
public Transform mao;
public Transform chao;
public FixedButton jogararma;
int idArma;
void Start(){
}
void Update(){
if ( jogararma.Pressed && idArma ==1) {
mao.transform.SetParent (chao);
}
}
void OnTriggerEnter (Collider obj ) {
if (obj.gameObject.tag == "m4" ) {
obj.transform.position = mao.position;
obj.transform.rotation = mao.rotation;
obj.transform.SetParent (mao);
_podepegar = true;
idArma = 1;
Debug.Log ("esta no enter");
}
}
void OnTriggerExit (Collider obj) {
_podepegar = false;
Debug.Log ("esta no exit");
}
} // class
eu mesmo resolvi.... mais fica ai pra quem quer pegar uma arma só no trigger collider e soltar clicando em algum botão..
obrigado!
lhm- Iniciante
- PONTOS : 2684
REPUTAÇÃO : 1
Respeito as regras :
Tópicos semelhantes
» Pegar armas no chao?
» [TUTORIAL] Pegar Armas do Chão
» [RESOLVIDO] Pegar armas
» Carro Pegar armas em
» Role play online estilo gta bora jogar...
» [TUTORIAL] Pegar Armas do Chão
» [RESOLVIDO] Pegar armas
» Carro Pegar armas em
» Role play online estilo gta bora jogar...
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos