SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Efeito arma giratória
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
[TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
IsLocalPlayer não existe, o que substitui ele?
Trocar controles de keyboard para gui
Script de Chute Futebol
Polygon Collider anexado a sprite com areas transparentes
Seleçao de personagens no Photon.
Botão para acionar velocidade e botão para retornar a posição inicial
Duvidas sobre jogos 2d
como fazer sistema de seleção de personagem para moba no photon?
Sombras na "tampa" de buracos no blender
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[____ADMINISTRAÇÃO____] PRECISO DE AJUDA [DICA PARA SER AJUDADO]
Gradiente de cores
Personagem olhar para frente ao andar.
[TUTORIAL] Criando um simples Multiplayer [UNITY 5]
[Dúvida] Multiplayer Client Object Spawn
Tangram ou Quebra Cabeça
[RESOLVIDO] Problema Com o transform.LookAt!
Jogo com Battle Royale já em desenvolvimento
[TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
Inimigo jogar o jogador de volta.
Como fazer um gráfico em forma de pizza na unity?
Texturização no Blender
Tudo fica bugado ao mudar o projeto de PC para Android
erro de dll's
Como alterar todos os materiais de um mesh renderer?
Destruir Polygon Collider 2D e Readiciona-lo, porém não há uma precisão no colisor gerado!
[TUTORIAL] Mudando material
[RESOLVIDO] Remover child
[RESOLVIDO] Como compilar pra android ?
Inimigo seguir o jogador sem usar o NavMesh
Resolução
(DUVIDA) Pq os Graficos Não Diminuem Corretamente?
[RESOLVIDO] Script não ativa bool do animator
[FORMAÇÃO DE EQUIPE]Equipe para jogo De Carros
Como evitar que o QualitySettings afete a qualidade da textura de um texto do canvas?
[TUTORIAL] Deixar o Texto (UI) mais bonito - HD
Código não compila
Há alguma forma de Fazer o apk Funcionar somente se for baixado pela Play Store ?
[Alpha Android] - Winthia Chronicles (Alpha Devlog, 21 de março de 2018). V 1.6
Configurar MS vehicle system free para UFPS
CRIAR MENSAGEM NA TELA PARA PERSOAGEM
[RESOLVIDO] Dúvida sobre animação do personagem
Duvida sobre Cenas
[RESOLVIDO] Duvida sobre versao da unity e sobre o lerp
[RESOLVIDO] problemas ao animar o game object
[DÚVIDA] Sair som e acender luz de um BOTÃO UI ao pressionar uma tecla
Dificuldade em criação de mapa simples no Unity
Procuro Modelador 3D, To criando uma equipe.vamos?
[TUTORIAL] Inteligência Artificial
[Devlog] ZByte Defender 10/04 (Alpha Aberta) + Download
[____ADMINISTRAÇÃO____] Alterações IMPORTANTES no fórum.
[TUTORIAL] Decrescer o valor do Emission Particlesystem
Limitar quantidades de vezes chamadas na void Update
[TUTORIAL] Sistema de inventário Sobrevivência
Sistema de Particulas não inicia com o jogo
[TUTORIAL] Serialização - JSON
Como posso resolver um bug reporter que não me deixa abrir o projeto?
[TUTORIAL]Sistema de Pet Virtual [Tamagotchi] Completo (ANDROID/PC)
Como arrumar efeitos do UFPS?
Servidor de discord para desenvolvedores.
Setar objeto filho de outro objeto via scrit
[RESOLVIDO] NavMesh nao funciona direito com terrain ?
[PEDIDO]Criar uma vestimenta para esse modelo que fiz no blender (Com-rig)
Duvida sobre blender para unity
Script para Sistema de Entregas e no final ganhar dinheiro
Problema com contator
Formação de equipe
Criar jogo estilo clash of clans
Form API POST WebService unity
Por que a engine Unity 3D ficou pesado(FPS pior) depois da versão 5?
[TUTORIAL] Screenshoot do jogo no editor (em resoluções mais altas)
[DÚVIDA] Fazer pontuação quando objeto passar por um collider
Como marcar um limite do direcional light em cada parte da cidade?
[Duvida] Multiplayer Moviment Client [Bug?!]
desenvolvimento do meu projeto, fase final
Movimentação 2D em personagem 3D
Ajuda com Substance Designer
Duvida usar posicao do mouse para mudar direcao de Ray
Ajuda Brush de Árvore Terreno
Command 888
Preciso de programador
Sistema de probabilidade de Spawn para Waves
Ajuda com o recuo da arma Jogo de Fps no unity
FPS Asset package completo
Duvida sobre como instanciar 3 objetos de uma vez mas com um tempo entre cada instancia
Shadow of the colossus materiais e models
Duvida Nav Mesh
Dificuldade na Criação de fase bônus
Bomb Battle Jogo Online Em Desenvolvimento
Arquivos NUGET
Controle de Som Quiz
CANVAS BUGADO
Script de Gol ou Escanteio / Pong / Campo de Volei..Alguém??
[TUTORIAL] Sistema de vida,morte,dano
Video no Unity
Problema para fazer Rank de jogadores
Hoje à(s) 1:32 am
Hoje à(s) 12:00 am
Ontem à(s) 7:05 pm
Ontem à(s) 6:21 pm
Ontem à(s) 4:49 pm
Ontem à(s) 3:12 pm
Ontem à(s) 3:07 pm
Ontem à(s) 12:58 pm
Ontem à(s) 6:39 am
Ontem à(s) 6:28 am
Ontem à(s) 6:24 am
Ontem à(s) 1:05 am
Qui Abr 19, 2018 10:35 am
Qui Abr 19, 2018 10:34 am
Qui Abr 19, 2018 10:33 am
Qui Abr 19, 2018 9:33 am
Qui Abr 19, 2018 6:45 am
Qui Abr 19, 2018 6:02 am
Qua Abr 18, 2018 10:30 pm
Qua Abr 18, 2018 9:13 pm
Qua Abr 18, 2018 8:57 pm
Qua Abr 18, 2018 6:33 pm
Qua Abr 18, 2018 6:18 pm
Qua Abr 18, 2018 5:48 pm
Qua Abr 18, 2018 3:28 pm
Qua Abr 18, 2018 2:59 pm
Qua Abr 18, 2018 1:41 pm
Ter Abr 17, 2018 9:55 pm
Ter Abr 17, 2018 8:05 pm
Ter Abr 17, 2018 8:01 pm
Ter Abr 17, 2018 8:00 pm
Ter Abr 17, 2018 7:53 pm
Ter Abr 17, 2018 3:35 pm
Ter Abr 17, 2018 2:22 pm
Ter Abr 17, 2018 1:07 pm
Seg Abr 16, 2018 10:28 pm
Seg Abr 16, 2018 9:03 pm
Seg Abr 16, 2018 6:36 pm
Seg Abr 16, 2018 6:33 pm
Seg Abr 16, 2018 6:31 pm
Seg Abr 16, 2018 1:19 pm
Seg Abr 16, 2018 12:40 pm
Seg Abr 16, 2018 12:09 pm
Seg Abr 16, 2018 10:01 am
Seg Abr 16, 2018 1:07 am
Dom Abr 15, 2018 8:28 am
Dom Abr 15, 2018 12:06 am
Sab Abr 14, 2018 4:29 pm
Sab Abr 14, 2018 2:52 pm
Sab Abr 14, 2018 1:23 pm
Sab Abr 14, 2018 11:23 am
Sab Abr 14, 2018 11:10 am
Sab Abr 14, 2018 9:56 am
Sex Abr 13, 2018 10:20 pm
Sex Abr 13, 2018 10:01 pm
Sex Abr 13, 2018 8:12 pm
Sex Abr 13, 2018 7:22 pm
Sex Abr 13, 2018 4:50 pm
Sex Abr 13, 2018 3:12 pm
Sex Abr 13, 2018 1:30 pm
Sex Abr 13, 2018 12:59 pm
Sex Abr 13, 2018 12:20 pm
Sex Abr 13, 2018 12:16 pm
Sex Abr 13, 2018 12:02 pm
Qui Abr 12, 2018 10:14 pm
Qui Abr 12, 2018 7:01 pm
Qui Abr 12, 2018 12:09 pm
Qua Abr 11, 2018 9:02 pm
Qua Abr 11, 2018 4:26 pm
Qua Abr 11, 2018 2:00 pm
Ter Abr 10, 2018 11:33 pm
Ter Abr 10, 2018 8:26 pm
Ter Abr 10, 2018 5:57 pm
Ter Abr 10, 2018 2:30 pm
Seg Abr 09, 2018 9:12 pm
Seg Abr 09, 2018 8:37 pm
Seg Abr 09, 2018 5:36 pm
Dom Abr 08, 2018 5:38 pm
Dom Abr 08, 2018 4:53 pm
Dom Abr 08, 2018 3:51 am
Sab Abr 07, 2018 11:00 pm
Sab Abr 07, 2018 8:39 pm
Sab Abr 07, 2018 7:28 pm
Sab Abr 07, 2018 5:27 pm
Sab Abr 07, 2018 12:05 am
Sex Abr 06, 2018 8:07 pm
Sex Abr 06, 2018 6:27 pm
Sex Abr 06, 2018 4:42 pm
Sex Abr 06, 2018 4:30 pm
Sex Abr 06, 2018 2:43 pm
Sex Abr 06, 2018 12:45 pm
Qui Abr 05, 2018 5:22 pm
Qui Abr 05, 2018 4:49 pm
Qui Abr 05, 2018 4:30 pm
Qui Abr 05, 2018 1:51 pm
Qui Abr 05, 2018 1:05 pm
Qui Abr 05, 2018 12:23 am
Qua Abr 04, 2018 10:32 pm
Qua Abr 04, 2018 9:01 pm
Before Dawn
MarcosSchultz
DreamKiller
YmKx
otavio00augusto
dstaroski
dstaroski
Callyde Jr
Phph09
Phph09
Phph09
felipehobs1
dstaroski
dstaroski
dstaroski
Daniel Pires da Silva
Phph09
Callyde Jr
luizmauro123
MarcosUAC
MarcosUAC
guimaraf
rafaelllsd
oilson
Yagogomes
Fluttershy28
hetrodo_gamer
Dom3000
MarcosSchultz
Dom3000
AmaralGabriel2
TioUV
dstaroski
Zack2
glauco
Daniel Pires da Silva
fabriciorsz34
Daniel Pires da Silva
Souris
Souris
fabriciorsz34
Cássio Ambelouer
Phph09
felipehobs1
Callyde Jr
Phph09
Ronmaster
nando07
Souris
Callyde Jr
Dom3000
Dom3000
Mateus2583
MarcosSchultz
ffabim
Daniel Pires da Silva
Fluttershy28
YmKx
natanael.olimpio
Souris
dstaroski
Phph09
BRGC
Phph09
Callyde Jr
BRGC
Zack2
heliab125
ruanzikaad
Souris
gcs13
natanael.olimpio
Daniel Pires da Silva
dstaroski
srhuculak
MarcosSchultz
Callyde Jr
Patrick
Souris
PedroSilva
Souris
YmKx
Callyde Jr
Phph09
Callyde Jr
rafaelllsd
gcs13
360flip
brunopereira06
YmKx
360flip
Phph09
natanael.olimpio
antoniodeveloper
rZwr
ffabim
Callyde Jr
natanael.olimpio
Phph09

Sistema de probabilidade de Spawn para Waves

Ir em baixo

DÚVIDA Sistema de probabilidade de Spawn para Waves

Mensagem por Gwiisk em Sab Mar 31, 2018 2:31 pm

Opa, estou desenvolvendo um jogo com sistema de Waves, e queria implementar um sistema de Probabilidade de Spawn de certo inimigo ou Power up, tenho uma ideia mais ou menos de como pode ser feito mas estou tendo problemas e não estou conseguindo, espero que alguém disposto possa me ajudar nesse meu problema;


Código do sistema de Waves:
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Wave_spawn : MonoBehaviour {

   public enum SpawnState { SPAWNING, WAITING, COUNTING };

    [System.Serializable]
    public class Enemy
    {
        public Transform enemyPrefab;
        [Range(0,100)]
        public float probability = 0;
    }

   [System.Serializable]
   public class Wave {
      public string name;
      public Enemy[] enemies;
      public int count;
      public float rate;
   }

   public Wave[] waves;
   private int nextWave = 0;

   public Transform[] spawnPoints;

   public float timeBetweenWaves = 5f;
   private float waveCountdown;

   private float searchCountdown = 1f;

   public SpawnState state = SpawnState.COUNTING;

   void Start() {
        waveCountdown = timeBetweenWaves;
    }

   void Update() {

      if (state == SpawnState.WAITING) {
         if (!EnemyIsAlive ()) {
            WaveCompleted ();
         } else {
            return;
         }
      }

      if (waveCountdown <= 0) {
         if (state != SpawnState.SPAWNING) {
            StartCoroutine (SpawnWave(waves[nextWave]));
         }
      } else {
         waveCountdown -= Time.deltaTime;
      }
   }

   void WaveCompleted() {

      state = SpawnState.COUNTING;
      waveCountdown = timeBetweenWaves;

      if (nextWave + 1 > waves.Length - 1) {
         nextWave = 0;
      } else {
         nextWave++;
      }
   }

   bool EnemyIsAlive() {

      searchCountdown -= Time.deltaTime;
      if(searchCountdown <= 0f) {
         searchCountdown = 1f;
         if (GameObject.FindGameObjectWithTag ("Enemy") == null) {
            return false;
         }
      }

      return true;
   }

   IEnumerator SpawnWave (Wave _wave) {
      state = SpawnState.SPAWNING;

      for (int i = 0; i < _wave.count; i++) {
         

         int ran = Random.Range(0, 100);

         //Probabilidade

         int e = Random.Range(0, _wave.enemies.Length);

         SpawnEnemy (_wave.enemies[e].enemyPrefab);
         yield return new WaitForSeconds (1f / _wave.rate);
      }

      state = SpawnState.WAITING;

      yield break;
   }

   void SpawnEnemy(Transform _enemy) {

      Transform _sp = spawnPoints[Random.Range(0, spawnPoints.Length)];
      Instantiate (_enemy, _sp.position, _sp.rotation);
   }
}

Gwiisk
Membro
Membro

PONTOS : 857
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de probabilidade de Spawn para Waves

Mensagem por Phph09 em Dom Abr 01, 2018 8:31 am



SISTEMA DE HORDAS(^)
avatar
Phph09
ProgramadorMaster

Masculino PONTOS : 1264
REPUTAÇÃO : 185
Idade : 12
Áreas de atuação :

Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de probabilidade de Spawn para Waves

Mensagem por Gwiisk em Dom Abr 01, 2018 5:21 pm

@Phph09 escreveu:

SISTEMA DE HORDAS(^)
Acho que não entendeu bem meu problema kk, eu tenho um sistema de Waves funcionando normalmente, porém ele só sorteia entre os Prefabs que eu escolhi, eu quero que um tipo de inimigo tenha mais chance que aparecer que outro Smile

Gwiisk
Membro
Membro

PONTOS : 857
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de probabilidade de Spawn para Waves

Mensagem por Callyde Jr em Dom Abr 01, 2018 6:45 pm

Voce poderia criar um tipo de id ou facçao para os inimigos ou ate mesmo um tipo de level,
Ex; Level de 1 a 5 spawnar inimigos classe baixa e 6 a 10 classe media 11 a 20  classe alta entedeu.
avatar
Callyde Jr
Programador

Masculino PONTOS : 2229
REPUTAÇÃO : 300
Idade : 39
Áreas de atuação : Iniciante em modelagem
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de probabilidade de Spawn para Waves

Mensagem por Gwiisk em Dom Abr 01, 2018 7:08 pm

@Callyde Jr escreveu:Voce poderia criar um tipo de id ou facçao para os inimigos ou ate mesmo um tipo de level,
Ex; Level de 1 a 5 spawnar inimigos classe baixa e 6 a 10 classe media 11 a 20  classe alta entedeu.
Eu queria mais de probabilidade, qro por chance de aparecer um inimigo especial ou item especial por exemplo, mas que não sejam comuns,

Gwiisk
Membro
Membro

PONTOS : 857
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de probabilidade de Spawn para Waves

Mensagem por Callyde Jr em Dom Abr 01, 2018 7:25 pm

Eu fiz um texte no script ver se funciona,
E so alterar com outro script o level desse script que ele tem que spawnar o enemy com o mesmo level
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Wave_spawn : MonoBehaviour {

  public enum SpawnState { SPAWNING, WAITING, COUNTING };

    [System.Serializable]
    public class Enemy
    {
      public int level;
        public Transform enemyPrefab;
        [Range(0,100)]
        public float probability = 0;
    }

  [System.Serializable]
  public class Wave {
      public string name;
      public Enemy[] enemies;
      public int count;
      public float rate;
  }

  public Wave[] waves;
  private int nextWave = 0;

  public Transform[] spawnPoints;

  public float timeBetweenWaves = 5f;
  private float waveCountdown;

  private float searchCountdown = 1f;

  public SpawnState state = SpawnState.COUNTING;
  public int level = 1;

  void Start() {
        waveCountdown = timeBetweenWaves;
    }

  void Update() {

      if (state == SpawnState.WAITING) {
        if (!EnemyIsAlive ()) {
            WaveCompleted ();
        } else {
            return;
        }
      }

      if (waveCountdown <= 0) {
        if (state != SpawnState.SPAWNING) {
            StartCoroutine (SpawnWave(waves[nextWave]));
        }
      } else {
        waveCountdown -= Time.deltaTime;
      }
  }

  void WaveCompleted() {

      state = SpawnState.COUNTING;
      waveCountdown = timeBetweenWaves;

      if (nextWave + 1 > waves.Length - 1) {
        nextWave = 0;
      } else {
        nextWave++;
      }
  }

  bool EnemyIsAlive() {

      searchCountdown -= Time.deltaTime;
      if(searchCountdown <= 0f) {
        searchCountdown = 1f;
        if (GameObject.FindGameObjectWithTag ("Enemy") == null) {
            return false;
        }
      }

      return true;
  }

  IEnumerator SpawnWave (Wave _wave) {
      state = SpawnState.SPAWNING;

      for (int i = 0; i < _wave.count; i++) {
       

        int ran = Random.Range(0, 100);

        //Probabilidade

        int e = Random.Range(0, _wave.enemies.Length);

        SpawnEnemy (_wave.enemies[e].enemyPrefab);
        yield return new WaitForSeconds (1f / _wave.rate);
      }

      state = SpawnState.WAITING;

      yield break;
  }

  void SpawnEnemy(Transform _enemy) {
      if(level ==  enemies.level){
      Transform _sp = spawnPoints[Random.Range(0, spawnPoints.Length)];
      Instantiate (_enemy, _sp.position, _sp.rotation);
     }
  }
}
avatar
Callyde Jr
Programador

Masculino PONTOS : 2229
REPUTAÇÃO : 300
Idade : 39
Áreas de atuação : Iniciante em modelagem
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de probabilidade de Spawn para Waves

Mensagem por Gwiisk em Dom Abr 01, 2018 7:57 pm

@Callyde Jr escreveu:Eu fiz um texte no script ver se funciona,
E so alterar com outro script o level desse script que ele tem que spawnar o enemy com o mesmo level
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Wave_spawn : MonoBehaviour {

   public enum SpawnState { SPAWNING, WAITING, COUNTING };

    [System.Serializable]
    public class Enemy
    {
 public int level;
        public Transform enemyPrefab;
        [Range(0,100)]
        public float probability = 0;
    }

   [System.Serializable]
   public class Wave {
      public string name;
      public Enemy[] enemies;
      public int count;
      public float rate;
   }

   public Wave[] waves;
   private int nextWave = 0;

   public Transform[] spawnPoints;

   public float timeBetweenWaves = 5f;
   private float waveCountdown;

   private float searchCountdown = 1f;

   public SpawnState state = SpawnState.COUNTING;
   public int level = 1;

   void Start() {
        waveCountdown = timeBetweenWaves;
    }

   void Update() {

      if (state == SpawnState.WAITING) {
         if (!EnemyIsAlive ()) {
            WaveCompleted ();
         } else {
            return;
         }
      }

      if (waveCountdown <= 0) {
         if (state != SpawnState.SPAWNING) {
            StartCoroutine (SpawnWave(waves[nextWave]));
         }
      } else {
         waveCountdown -= Time.deltaTime;
      }
   }

   void WaveCompleted() {

      state = SpawnState.COUNTING;
      waveCountdown = timeBetweenWaves;

      if (nextWave + 1 > waves.Length - 1) {
         nextWave = 0;
      } else {
         nextWave++;
      }
   }

   bool EnemyIsAlive() {

      searchCountdown -= Time.deltaTime;
      if(searchCountdown <= 0f) {
         searchCountdown = 1f;
         if (GameObject.FindGameObjectWithTag ("Enemy") == null) {
            return false;
         }
      }

      return true;
   }

   IEnumerator SpawnWave (Wave _wave) {
      state = SpawnState.SPAWNING;

      for (int i = 0; i < _wave.count; i++) {
        

         int ran = Random.Range(0, 100);

         //Probabilidade

         int e = Random.Range(0, _wave.enemies.Length);

         SpawnEnemy (_wave.enemies[e].enemyPrefab);
         yield return new WaitForSeconds (1f / _wave.rate);
      }

      state = SpawnState.WAITING;

      yield break;
   }

   void SpawnEnemy(Transform _enemy) {
      if(level ==  enemies.level){
      Transform _sp = spawnPoints[Random.Range(0, spawnPoints.Length)];
      Instantiate (_enemy, _sp.position, _sp.rotation);
  }
   }
}
É bacana, mas para o que eu procuro não é o que preciso, quero ser capaz de por exemplo, dar 5% de chance de spawnar um inimigo super forte, ou seja, pode ser que ele apareça ou não na rodada, depende da sorte(ou azar né) do jogador

Gwiisk
Membro
Membro

PONTOS : 857
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de probabilidade de Spawn para Waves

Mensagem por Callyde Jr em Dom Abr 01, 2018 8:37 pm

Hummm etendi da uma olhada nesse
Topico
avatar
Callyde Jr
Programador

Masculino PONTOS : 2229
REPUTAÇÃO : 300
Idade : 39
Áreas de atuação : Iniciante em modelagem
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de probabilidade de Spawn para Waves

Mensagem por Gwiisk em Dom Abr 01, 2018 10:02 pm

@Callyde Jr escreveu:Hummm etendi da uma olhada nesse
Topico
Eu consegui aplicar o sistema, porém agora surgiu um problema, as wave não para de dar spawn e não passa para a proxima.

Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Wave_spawn : MonoBehaviour {

   public enum SpawnState { SPAWNING, WAITING, COUNTING };

    [System.Serializable]
    public class Enemy
    {
        public Transform enemyPrefab;
        [Range(0,100)]
        public float probability = 0;
    }

   [System.Serializable]
   public class Wave {
      public string name;
      public Enemy[] enemies;
      public int count;
      public float rate;
   }

   public Wave[] waves;
   private int nextWave = 0;
   float value;

   public Transform[] spawnPoints;

   public float timeBetweenWaves = 5f;
   private float waveCountdown;

   private float searchCountdown = 1f;

   public SpawnState state = SpawnState.COUNTING;

   void Start() {
        waveCountdown = timeBetweenWaves;
    }

   void Update() {

      if (state == SpawnState.WAITING) {
         if (!EnemyIsAlive ()) {
            WaveCompleted ();
         } else {
            return;
         }
      }

      if (waveCountdown <= 0) {
         if (state != SpawnState.SPAWNING) {
            StartCoroutine (SpawnWave(waves[nextWave]));
         }
      } else {
         waveCountdown -= Time.deltaTime;
      }
   }

   void WaveCompleted() {

      state = SpawnState.COUNTING;
      waveCountdown = timeBetweenWaves;

      if (nextWave + 1 > waves.Length - 1) {
         nextWave = 0;
      } else {
         nextWave++;
      }
   }

   bool EnemyIsAlive() {

      searchCountdown -= Time.deltaTime;
      if(searchCountdown <= 0f) {
         searchCountdown = 1f;
         if (GameObject.FindGameObjectWithTag ("Enemy") == null) {
            return false;
         }
      }

      return true;
   }

   IEnumerator SpawnWave (Wave _wave) {
      state = SpawnState.SPAWNING;

      if(_wave.enemies.Length == 1)
         _wave.enemies[0].probability = 100f;

      for (int i = 0; i < _wave.count; i++) {
         int ran = Random.Range(0, 100);

         for(i = 0; i < _wave.enemies.Length; i++) {
            value += _wave.enemies[i].probability;
            if (ran < value) {
               Debug.Log(_wave.enemies[i].enemyPrefab);
               yield return i;
               break;
            }
         }
         value = 0;

         SpawnEnemy (_wave.enemies[i].enemyPrefab);
         yield return new WaitForSeconds (1f / _wave.rate);
      }

      state = SpawnState.WAITING;

      yield break;
   }

   void SpawnEnemy(Transform _enemy) {

      Transform _sp = spawnPoints[Random.Range(0, spawnPoints.Length)];
      Instantiate (_enemy, _sp.position, _sp.rotation);
   }
}

Gwiisk
Membro
Membro

PONTOS : 857
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de probabilidade de Spawn para Waves

Mensagem por Callyde Jr em Dom Abr 01, 2018 11:22 pm

Eu achei um exemplo na net ver ai se pode te ajudar
Probabilidades Diferentes
avatar
Callyde Jr
Programador

Masculino PONTOS : 2229
REPUTAÇÃO : 300
Idade : 39
Áreas de atuação : Iniciante em modelagem
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de probabilidade de Spawn para Waves

Mensagem por Gwiisk em Seg Abr 02, 2018 10:58 am

@Callyde Jr escreveu:Eu achei um exemplo na net ver ai se pode te ajudar
Probabilidades Diferentes
Então, consegui montar o sistema, porém tem algo estranho acontecendo, a Wave atual(No caso a primeira) não termina, ele continua spawnando inimigos indeterminadamente, não consigo achar o problema sendo que só adicionei um for dentro do spawn de wave.

Gwiisk
Membro
Membro

PONTOS : 857
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de probabilidade de Spawn para Waves

Mensagem por Callyde Jr em Seg Abr 02, 2018 1:59 pm

Ha ele fica spawnando direto sem parar?
Eu fiz um pra mim e coloquei um tipo de quantidade quando chegar a zero parar
avatar
Callyde Jr
Programador

Masculino PONTOS : 2229
REPUTAÇÃO : 300
Idade : 39
Áreas de atuação : Iniciante em modelagem
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de probabilidade de Spawn para Waves

Mensagem por Callyde Jr em Sab Abr 07, 2018 12:05 am

Voce pode adicionar EX:
Código:
public int level = 1;
public int quantidade = 5; //de enemys
public int count; //contagem de kill
bool ativado = false;
Toda vez que instanciar um enemy voce diminue a quantidade
Quando a quantidade chegar a 0 voce desativa a bool que faz parar a intanciar
Em cont  toda vez que um enemy for morto voce adiciona += 1 cont
Quando cont for igual a quantidade  voce adiciona mais um level e cont = 0
almentando agora a quantidade

level 1, quantidade   = 5
level 2 , quantidade = 8
e etc...
avatar
Callyde Jr
Programador

Masculino PONTOS : 2229
REPUTAÇÃO : 300
Idade : 39
Áreas de atuação : Iniciante em modelagem
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de probabilidade de Spawn para Waves

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum