[RESOLVIDO] Clones morrendo ao mesmo tempo?
3 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Clones morrendo ao mesmo tempo?
gente alguém pode me dar uma ideia?
to brincando em um projeto de aprendizagem e me deparei com algo que ta me dando uma dor de cabeça..
quando instancio o prefab inimigo (cubo) em um spawnpoint tudo funciona blz só que aparece 1 minha bala da o dano e tudo chega ate matar
porem se aparecer mais de 1 inimigo desse instanciado em cena ou o da frente não morre ou agora que mudei algo quando atiro em um a vida afeta todos ou seja se um morre todos morrem ao mesmo tempo '-'
so pra facilitar posso estar errado mas acredito que o erro esta sendo na minha variável de vida do inimigo
public int startHP;
public static int currentHP;
não sei o quando esse "static" afeta em tudo mas sem ele não encontro a vida do inimigo pra dar o dano da bala '-'
to brincando em um projeto de aprendizagem e me deparei com algo que ta me dando uma dor de cabeça..
quando instancio o prefab inimigo (cubo) em um spawnpoint tudo funciona blz só que aparece 1 minha bala da o dano e tudo chega ate matar
porem se aparecer mais de 1 inimigo desse instanciado em cena ou o da frente não morre ou agora que mudei algo quando atiro em um a vida afeta todos ou seja se um morre todos morrem ao mesmo tempo '-'
so pra facilitar posso estar errado mas acredito que o erro esta sendo na minha variável de vida do inimigo
public int startHP;
public static int currentHP;
não sei o quando esse "static" afeta em tudo mas sem ele não encontro a vida do inimigo pra dar o dano da bala '-'
speedluk- Avançado
- PONTOS : 2676
REPUTAÇÃO : 29
Idade : 32
Respeito as regras :
Re: [RESOLVIDO] Clones morrendo ao mesmo tempo?
O ideal é postar o script completo, fica mais fácil de achar o problema, mas provavelmente é o static que está causando o seu erro mesmo.
Dá uma olhada nesse tutorial:
https://www.schultzgames.com/t4560-tutorial-script-de-arma-automatica
Dá uma olhada nesse tutorial:
https://www.schultzgames.com/t4560-tutorial-script-de-arma-automatica
abraao36- Membro
- PONTOS : 2017
REPUTAÇÃO : 5
Respeito as regras :
Re: [RESOLVIDO] Clones morrendo ao mesmo tempo?
O modificador Static torna a variável, método, classe, etc... Globais, por tal motivo se você está diminuindo o valor de um variável do tipo static, todos os componentes que a possuem, serão afetados. Procure retirar o mesmo e adaptar o código para sua necessidade.
Espero ter ajudado, qualquer coisa argumenta aí.
Tegh- Avançado
- PONTOS : 2653
REPUTAÇÃO : 97
Idade : 23
Respeito as regras :
Re: [RESOLVIDO] Clones morrendo ao mesmo tempo?
Mds ^^ to garrado nisso tem uns 3 dias e pior que sei que é coisa boba
tudo funcionou bem ate a parte de que todos morrem juntos ^^
agora cheguei ate a separar o status do inimigo achando que não poderia ter tudo em um script so
vou postar os scripts ainda assim morrendo de vergonha porque pra falar verdade ja me perdi foi todo agora
inimigo
tudo funcionou bem ate a parte de que todos morrem juntos ^^
agora cheguei ate a separar o status do inimigo achando que não poderia ter tudo em um script so
vou postar os scripts ainda assim morrendo de vergonha porque pra falar verdade ja me perdi foi todo agora
inimigo
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Enemy : MonoBehaviour {
public float DistanciaDoPlayer = 3.0f;
EnemyStatus enemyStatus;
void Start () {
enemyStatus = GetComponent<EnemyStatus> ();
}
void Update () {
if (enemyStatus.currentHP <= 0) {
Morreu ();
}
}
public void Morreu () {
Destroy (gameObject);
GameManager.ouro += enemyStatus.gold;
}
}
- Código:
//a bala
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Bala : MonoBehaviour {
public int damage;
EnemyStatus enemyStatus;
void Start () {
enemyStatus = GetComponent<EnemyStatus> ();
}
void Update () {
Destroy (gameObject, 2);
}
void OnTriggerEnter(Collider col) {
if (col.gameObject.tag == "Enemy") {
enemyStatus.currentHP -= damage;
Destroy (gameObject);
}
}
}
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class EnemyStatus : MonoBehaviour {
public int startHP;
public int currentHP;
public float speed;
public int gold;
public Transform player;
public NavMeshAgent navMesh;
void Start () {
currentHP = startHP;
navMesh = transform.GetComponent<NavMeshAgent> ();
}
void Update () {
}
}
speedluk- Avançado
- PONTOS : 2676
REPUTAÇÃO : 29
Idade : 32
Respeito as regras :
Re: [RESOLVIDO] Clones morrendo ao mesmo tempo?
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Enemy : MonoBehaviour
{
public float DistanciaDoPlayer = 3.0f;
EnemyStatus enemyStatus;
void Start()
{
enemyStatus = GetComponent<EnemyStatus>();
}
void Update()
{
if (enemyStatus.currentHP <= 0)
{
GameManager.ouro += enemyStatus.gold;
Morreu();
}
}
public void Morreu()
{
Destroy(gameObject);
}
}
- Código:
//a bala
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Bala : MonoBehaviour
{
public int damage;
void Start()
{
}
void Update()
{
Destroy(gameObject, 2);
}
void OnTriggerEnter(Collider col)
{
if (col.gameObject.tag == "Enemy")
{
if(col.transform.gameObject.GetComponent<EnemyStatus>().currentHP != null)
{
col.transform.gameObject.GetComponent<EnemyStatus>().currentHP -= damage;
}
Destroy(gameObject);
}
}
}
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class EnemyStatus : MonoBehaviour
{
public int startHP;
public int currentHP;
public float speed;
public int gold;
public Transform player;
public NavMeshAgent navMesh;
void Start()
{
currentHP = startHP;
navMesh = transform.GetComponent<NavMeshAgent>();
}
void Update()
{
}
}
Testa aí, funcionando ou não fala aqui
abraao36- Membro
- PONTOS : 2017
REPUTAÇÃO : 5
Respeito as regras :
Re: [RESOLVIDO] Clones morrendo ao mesmo tempo?
cara era exatamente isso funcionou!!
o problema todo é que eu não estava sabendo como usar o currentHP do outro script
mano me salvou muito obrigadoo!!!
o problema todo é que eu não estava sabendo como usar o currentHP do outro script
mano me salvou muito obrigadoo!!!
olha onde tava o problema ai ^^
- Código:
void OnTriggerEnter(Collider col) {
if (col.gameObject.tag == "Enemy") {
if(col.transform.gameObject.GetComponent<EnemyStatus>().currentHP != null) {
col.transform.gameObject.GetComponent<EnemyStatus>().currentHP -= damage;
}
Destroy(gameObject);
}
}
speedluk- Avançado
- PONTOS : 2676
REPUTAÇÃO : 29
Idade : 32
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Desativar/ativar vários colliders ao mesmo tempo
» [RESOLVIDO] Como Verificar a distancia de varios objs ao mesmo tempo?
» [RESOLVIDO] Botões de Ataque e Pular carrega duas animações ao mesmo tempo
» 2 Objetos no mesmo spawner ao mesmo tempo
» Rotação em 2 eixos ao mesmo tempo
» [RESOLVIDO] Como Verificar a distancia de varios objs ao mesmo tempo?
» [RESOLVIDO] Botões de Ataque e Pular carrega duas animações ao mesmo tempo
» 2 Objetos no mesmo spawner ao mesmo tempo
» Rotação em 2 eixos ao mesmo tempo
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos