Dúvida sobre raycast
3 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Dúvida sobre raycast
iai galera
estou fazendo um jogo de zumbi e preciso tirar life do zumbi com a arma, estou usando um sistema de tiros com raycas que verificar se colidiu na tag "zumbi", quero que quando o raio atinja o zumbi ele perca life, isso ja estar em funcionamento, mas todos os zumbis perdem a mesma quantidade de life por tiro.
Ex: se eu ditar na arma o valor 10, cada zumbi que for atingido e tiver a tag "zumbi" e o script ZumbiC, perde 10 de life e eu não quero isso quero ditar separadamente o valor que cada zumbi perde por cada raio que o atingir, alguém pode me ajudar?
A parte do script da arma que faz isso, é esta:
estou fazendo um jogo de zumbi e preciso tirar life do zumbi com a arma, estou usando um sistema de tiros com raycas que verificar se colidiu na tag "zumbi", quero que quando o raio atinja o zumbi ele perca life, isso ja estar em funcionamento, mas todos os zumbis perdem a mesma quantidade de life por tiro.
Ex: se eu ditar na arma o valor 10, cada zumbi que for atingido e tiver a tag "zumbi" e o script ZumbiC, perde 10 de life e eu não quero isso quero ditar separadamente o valor que cada zumbi perde por cada raio que o atingir, alguém pode me ajudar?
A parte do script da arma que faz isso, é esta:
- Código:
RaycastHit pontodecolisao;
If(Physics.Raycast (transform.position, transform.forward, out pontodecolisao)) {
If(pontodecolisao.transform.gameOject.tag =="Zumbi"){
pontodecolisao.transform.gameObject.GetComponent<ZumbiC> ().vida -= DanosPorTiro;
}
}
R R- Membro
- PONTOS : 2962
REPUTAÇÃO : 8
Idade : 27
Respeito as regras :
Re: Dúvida sobre raycast
Esse erro nao parece fazer sentido, a vida dos zumbie não é estatica né?
Eu tentaria fazer um script de vida separado e adicionaria aos zumbies, players, tudo que tivesse vida, e nesse script teria um metodo TakeDamage que calculava o dano que ele recebeu, assim quando quiser tirar vida de algo seria so executar esse metodo.
O script de vida seria parecido com esse: https://www.schultzgames.com/t2199-tutorial-script-simples-de-ai-com-comportamentos-e-eventos
Ademais pode mostrar o script dos zumbies?
Eu tentaria fazer um script de vida separado e adicionaria aos zumbies, players, tudo que tivesse vida, e nesse script teria um metodo TakeDamage que calculava o dano que ele recebeu, assim quando quiser tirar vida de algo seria so executar esse metodo.
O script de vida seria parecido com esse: https://www.schultzgames.com/t2199-tutorial-script-simples-de-ai-com-comportamentos-e-eventos
Ademais pode mostrar o script dos zumbies?
Re: Dúvida sobre raycast
Sim, sim eu mostraria o script do zumbi mas ele só faz com que o zumbi siga o player e ataque, isso eu to medindo pela distância que se for menos que dois, o player perde life a cada 0.05f segundos mas não vem ao caso, o script do life é separado, com isso eu tenho 3 script 1° da arma os outros dois do zumbi, um apenas da o comando pra NabMesh que foi o que eu citei a cima que faz tbm os ataques ao player e o outro que contém o life, e não, a variáveil vida não é estatica
O script do life é esse:
Tem apenas isso no script do life.
O script do life é esse:
- Código:
public int vida = 100;
public GameObject Zb;
void Update () {
If(vida <= 0) {
Vida = 0;
}
}
Tem apenas isso no script do life.
R R- Membro
- PONTOS : 2962
REPUTAÇÃO : 8
Idade : 27
Respeito as regras :
Re: Dúvida sobre raycast
tente usar o collider
ex
ex
- Código:
RaycastHit pontodecolisao;
If(Physics.Raycast (transform.position, transform.forward, out pontodecolisao))
If(ontodecolisao.collider.gameOject.tag =="Zumbi")
pontodecolisao.collider.GetComponent<ZumbiC> ().vida -= DanosPorTiro;
Weslley- Moderador
- PONTOS : 5729
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Dúvida sobre raycast
Vlw amigo eu consegui, coloquei uma variável int no script da vida com o nome "DanosPorTiro" e coloquei na arma ficou assim:
[list=linenums]
[*]RaycastHit pontodecolisao;
[*]If(Physics.Raycast (transform.position, transform.forward, out pontodecolisao)){
[*] If(pontodecolisao.transform.gameOject.tag =="Zumbi"){
[*] pontodecolisao.transform.GetComponent<ZumbiC> ().vida -= pontodecolisao.transform.GetComponent<ZumbiC> ().DanosPorTiro;
[*] }
[*]}
[/list]
[list=linenums]
[*]RaycastHit pontodecolisao;
[*]If(Physics.Raycast (transform.position, transform.forward, out pontodecolisao)){
[*] If(pontodecolisao.transform.gameOject.tag =="Zumbi"){
[*] pontodecolisao.transform.GetComponent<ZumbiC> ().vida -= pontodecolisao.transform.GetComponent<ZumbiC> ().DanosPorTiro;
[*] }
[*]}
[/list]
R R- Membro
- PONTOS : 2962
REPUTAÇÃO : 8
Idade : 27
Respeito as regras :
Tópicos semelhantes
» DUVIDA : Raycast
» duvida sobre essa Ui e raycast
» DUVIDA-Informação sobre objeto com Raycast
» [RESOLVIDO] Duvida sobre versao da unity e sobre o lerp
» Duvida com RayCast
» duvida sobre essa Ui e raycast
» DUVIDA-Informação sobre objeto com Raycast
» [RESOLVIDO] Duvida sobre versao da unity e sobre o lerp
» Duvida com RayCast
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos