Ainda Não Resolvido
4 participantes
Página 1 de 1
Ainda Não Resolvido
Viz A Vida Do Personagem,Statica Ai Quando EU Mato O 1 Inimigo Mata Todos ,Falaram Que ta Errado Pq Estava Statica , Ai Fiz Normal Sem Ser Statica Ai Ainda Ta Matando Todos Alguem Me ajuda Script Usada :
using UnityEngine;
using System.Collections;
public class TomarDanoZombie : MonoBehaviour {
public bool BalaDaAk47;
public bool DanoDaAk47;
public AudioClip ZombieTomandoDano;
private bool TocarAudio;
void Start () {
}
void Update () {
if(TocarAudio == true) {
TocarAudio = false;
}
if (BalaDaAk47 == true) {
ZombieNomal.VidaDoZombieNormal = ZombieNomal.VidaDoZombieNormal -20;
audio.clip = ZombieTomandoDano;
audio.Play();
}
if (BalaDaAk47 == false) {
ZombieNomal.EstaTomandoDano = false;
}
}
void OnTriggerEnter(Collider other) {
if (other.tag == "BalaAk47") {
BalaDaAk47 = true;
}
}
void OnTriggerExit(Collider other) {
if (other.tag == "BalaAk47") {
BalaDaAk47 = false;
}
}
}
using UnityEngine;
using System.Collections;
public class TomarDanoZombie : MonoBehaviour {
public bool BalaDaAk47;
public bool DanoDaAk47;
public AudioClip ZombieTomandoDano;
private bool TocarAudio;
void Start () {
}
void Update () {
if(TocarAudio == true) {
TocarAudio = false;
}
if (BalaDaAk47 == true) {
ZombieNomal.VidaDoZombieNormal = ZombieNomal.VidaDoZombieNormal -20;
audio.clip = ZombieTomandoDano;
audio.Play();
}
if (BalaDaAk47 == false) {
ZombieNomal.EstaTomandoDano = false;
}
}
void OnTriggerEnter(Collider other) {
if (other.tag == "BalaAk47") {
BalaDaAk47 = true;
}
}
void OnTriggerExit(Collider other) {
if (other.tag == "BalaAk47") {
BalaDaAk47 = false;
}
}
}
roger224- Avançado
- PONTOS : 3300
REPUTAÇÃO : 6
Idade : 24
Áreas de atuação : Programação C#
Respeito as regras :
Re: Ainda Não Resolvido
Deve ser alguma coisa com a referencia que está usando para o inimigo que recebe o dano!
Pelo que entendi, a parte onde computa o dano é essa:
ZombieNomal.VidaDoZombieNormal = ZombieNomal.VidaDoZombieNormal -20;
Porém, nesse script que vc postou não consta declaração para essa referencia "ZombieNomal", por isso suspeito que o problema esteja bem ai...
A variável "VidaDoZombieNormal" está em outro script? Será que ela ainda não continua Static?!
Se ainda não conseguir, manda esse outro script p/analisar melhor!
Pelo que entendi, a parte onde computa o dano é essa:
ZombieNomal.VidaDoZombieNormal = ZombieNomal.VidaDoZombieNormal -20;
Porém, nesse script que vc postou não consta declaração para essa referencia "ZombieNomal", por isso suspeito que o problema esteja bem ai...
A variável "VidaDoZombieNormal" está em outro script? Será que ela ainda não continua Static?!
Se ainda não conseguir, manda esse outro script p/analisar melhor!
Re: Ainda Não Resolvido
vc tem que especificar qual inimigo vc que tirar vida
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Ainda Não Resolvido
Pelo que esta nesse Script,
Se vc Esta Acessando a Vida do Zumbi assim: ZombieNomal.VidaDoZombieNormal
ela Ainda esta Estática, e esse é o Motivo, quando vc usa public Static vc manda o mesmo Dano pra todos Zombis que estiverem com esse Script!
deixe só em Public e cesse o Script assim:
public GameObject Zumbi;
if (BalaDaAk47 == true) {
Zumbi.GetComponent<ZombieNomal>().VidaDoZombieNormal -= 20f;
Vai Funcionar.
Se vc Esta Acessando a Vida do Zumbi assim: ZombieNomal.VidaDoZombieNormal
ela Ainda esta Estática, e esse é o Motivo, quando vc usa public Static vc manda o mesmo Dano pra todos Zombis que estiverem com esse Script!
deixe só em Public e cesse o Script assim:
public GameObject Zumbi;
if (BalaDaAk47 == true) {
Zumbi.GetComponent<ZombieNomal>().VidaDoZombieNormal -= 20f;
Vai Funcionar.
Re: Ainda Não Resolvido
Ainda Não Deu Certo AI Eu Fiz Outra Script N Ta Dando Certo Da Uma Olhada Ai
using System.Collections;
public class VidaZombie : MonoBehaviour {
// Vida Do Zombie Normal;
public GameObject ZombieNormalPrefabs;
public int VidaDoZombieNormal;
public float CronometroMorrer;
public int LimiteDeMorrer;
// Danos Da Armas;
public bool BalaDaAk47;
// Som Do Dano;
private bool TocarAudio;
void Start () {
VidaDoZombieNormal = 100;
}
void Update () {
if (VidaDoZombieNormal < 0) {
ZombieNomal.EstaAndando = false;
ZombieNomal.EstaTomandoDano = false;
ZombieNomal.ZombieMorreu = true;
ZombieNomal.PararDeSeguir = true;
CronometroMorrer += Time.deltaTime;
if (CronometroMorrer >= LimiteDeMorrer) {
Destroy (gameObject);
}
}
if(TocarAudio == true) {
TocarAudio = false;
}
if (BalaDaAk47 == true) {
ZombieNomal.EstaTomandoDano = true;
TocarAudio = true;
}
if (BalaDaAk47 == false) {
ZombieNomal.EstaTomandoDano = false;
}
}
void OnTriggerEnter(Collider other) {
if (other.tag == "BalaAk47") {
BalaDaAk47 = true;
}
}
void OnTriggerExit(Collider other) {
if (other.tag == "BalaAk47") {
BalaDaAk47 = false;
}
}
}
using System.Collections;
public class VidaZombie : MonoBehaviour {
// Vida Do Zombie Normal;
public GameObject ZombieNormalPrefabs;
public int VidaDoZombieNormal;
public float CronometroMorrer;
public int LimiteDeMorrer;
// Danos Da Armas;
public bool BalaDaAk47;
// Som Do Dano;
private bool TocarAudio;
void Start () {
VidaDoZombieNormal = 100;
}
void Update () {
if (VidaDoZombieNormal < 0) {
ZombieNomal.EstaAndando = false;
ZombieNomal.EstaTomandoDano = false;
ZombieNomal.ZombieMorreu = true;
ZombieNomal.PararDeSeguir = true;
CronometroMorrer += Time.deltaTime;
if (CronometroMorrer >= LimiteDeMorrer) {
Destroy (gameObject);
}
}
if(TocarAudio == true) {
TocarAudio = false;
}
if (BalaDaAk47 == true) {
ZombieNomal.EstaTomandoDano = true;
TocarAudio = true;
}
if (BalaDaAk47 == false) {
ZombieNomal.EstaTomandoDano = false;
}
}
void OnTriggerEnter(Collider other) {
if (other.tag == "BalaAk47") {
BalaDaAk47 = true;
}
}
void OnTriggerExit(Collider other) {
if (other.tag == "BalaAk47") {
BalaDaAk47 = false;
}
}
}
roger224- Avançado
- PONTOS : 3300
REPUTAÇÃO : 6
Idade : 24
Áreas de atuação : Programação C#
Respeito as regras :
Re: Ainda Não Resolvido
Nesse script em todo momento que vc está usando "ZombieNomal.algumaCoisa = ... ;" ainda está acessando de forma estática e alterando todo mundo...
Precisa fazer como o AndyShow comentou para dessa forma ele pegar somente o script que está anexado ao zumbi, usando:
EDIT: Tenta o seguinte...
Declara uma variavel Zumbi e coloca um GetComponent dentro Awake assim:
Agora pega seu script e troca Todos os "ZombieNomal.algumaCoisa = ... ;" por "Zumbi.algumaCoisa = ... ;"
Faz o mesmo com o primeiro script e testa.
Precisa fazer como o AndyShow comentou para dessa forma ele pegar somente o script que está anexado ao zumbi, usando:
- Código:
GetComponent<ZombieNomal>().algumaCoisa = ... ;
EDIT: Tenta o seguinte...
Declara uma variavel Zumbi e coloca um GetComponent dentro Awake assim:
- Código:
ZombieNomal Zumbi;
void Awake(){Zumbi = GetComponent<ZombieNomal>();}
Agora pega seu script e troca Todos os "ZombieNomal.algumaCoisa = ... ;" por "Zumbi.algumaCoisa = ... ;"
Faz o mesmo com o primeiro script e testa.
Re: Ainda Não Resolvido
Vlw Pessoal!!! Ja Consegui Brigado Mesmo
roger224- Avançado
- PONTOS : 3300
REPUTAÇÃO : 6
Idade : 24
Áreas de atuação : Programação C#
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Unity - Scene com poucas coisas, mas ainda pesada de mais!
» [WIP] Projeto ainda sem título
» UNITY 5 - TEMPO SEMPRE IGUAL 5
» Só baixar a imagem se ela ainda não existir
» ESSE EO JOGO QUE EU TO CRIANDO, AINDA ESTA EM DESENVOLVIMENTO
» [WIP] Projeto ainda sem título
» UNITY 5 - TEMPO SEMPRE IGUAL 5
» Só baixar a imagem se ela ainda não existir
» ESSE EO JOGO QUE EU TO CRIANDO, AINDA ESTA EM DESENVOLVIMENTO
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos