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 :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Efeito Glowing
ESTOU COM UM PROBLEMA DE ANIMAÇÃO!!!
Enemy grid movement
[RESOLVIDO] AJUDA COM SCRIPT
TANK DEFENDER II
[TUTORIAL] Sistema simples de Cutscenes
[Asset] Repositório + Assets
Sisteminha para coleta de itens
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Objeto que pula
Bool ficar verdadeira no multiplayer em script de inimigo? (Unet)
Recrutamento para desenvolvimento de um Projeto
Câmera Orbital Modificada
ESTOU COM UM PROBLEMA EM UM SCRIPT
fazer unity5 imprimir
[TUTORIAL] Cena inicial de CARREGAMENTO, creditos, logo, etc [UNITY 5]
Pack de áudio/ efeitos sonoros gratuitos.
AJUDA COM SCRIPT DE DISPARO
Um código e um agradecimento ao todo mundo.
Dúvida de shotter 2D...
Estou com um problema no script de animação
Rodar música fora do App
Salvar Cores com Json
GENTE EU ESTOU COM UM PROBLEMA NO UNITY
Erro Ao Tentar vincular SCRIPT C# com Objeto (Script need's to derive from MonoBehaviour)
criar um app que atende a vários produtos.
onde publicar os trabalhos prontos.
tela preta do unity apos abrir no celular..
tela branca ao iniciar videoplayer
2 JOGOS EM ANDAMENTO:
[Encerrado] - Key gratuita para "Ingame Logs Viewer" para quem avalia-lo!
Como faz para o jogo saber se e windows, android,tablet , mac e ios?
[RESOLVIDO] Detecta o fim da animação e conjura um novo evento.
como limitar o zoom mínimo e máximo no lean touch
[Resolvido] Unity - Executar Pagina Web Dentro De Um Programa
Rádio para programadores
StreamWriter... ajuda rapida no salvamento
[RESOLVIDO] Detectar distância de objetos
Software para testar AR no PC
Fazer cada Scene em uma orientação
[TUTORIAL] Compilar para Android
Asset de paint com lag
Utilizar movimento de plataforma na UI
COMO MOVER UM OBJETO OU PERSONAGEM
[TUTORIAL] CONFIGURANDO O UNITY PARA COMPILAR PARA ANDROID
Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
texto com rolamento pela seta
[RESOLVIDO] Rotacionar Personagem De Acordo Com a Direção Do Analógico
Dúvida Com Conta Matematica
[RESOLVIDO] Colocar uma condição para remover uma variavel do inspector?
APK trava com Admob
Conectar ao wifi
Celular dentro do game
[TUTORIAL] Como fazer um TELEPORTE
[RESOLVICO] Colisor que ao atravessar ele eu mudo minha cena no Unity2D ?
[TUTORIAL] Mover, arremessar e girar objetos com o mouse
Objeto sempre ocupando toda a camera
Transições de Animações de Sprites
[RESOLVIDO] Sprites mudando posição
Renderização no blender
[RESOLVIDO] AJUDA ERRO COM INIMIGO
Unity - Erro ao Salvar
Duvida resolucao
Mecânica de destruição de parte de um sprite
[RESOLVIDO] Reconhecimento de Joystick e Teclado
convert byte[] em texture2D
[TUTORIAL] Mover objetos 2D e conectar em lugares específicos
Captura de imagem
Como fazer variáveis se ocultarem no Editor?
[TUTORIAL] Unity 5 - Sistema Completo de PORTAS E CHAVES
paredes
OnTriggerExit2D detectando collider desativado
[TUTORIAL] Wheel Collider - como configurar corretamente.
posição de cubos..
[RESOLVIDO] Movimentar personagem por grade com clique do mouse. (Isométrico)
[RESOLVIDO] Data e hora atual no android
Game Engine
Dúvida Sobre o lucky patcher
[TUTORIAL] Converter uma variável String em Vetores
Tem como reproduzir vídeo em android?
Preferência em Games
[TUTORIAL] Singleton, A melhor forma de acessar a classe!
[RESOLVIDO] Acessar Scripts de Objetos Que Estão Como "DontDestroyOnLoad()" ?
[TUTORIAL] Arma tipo a do call of duty
[TUTORIAL] Double Jumping para games em 2D
[TUTORIAL] Unity 2019 - Lanterna e pilhas, com UI
GameJam valendo 15 mil reais em bitcoin!!
Combinar prefabs?!?
[TUTORIAL] Como usar FREE EASY CRIATURA CONTROLE IA
[TUTORIAL] MOVIMENTO NA ARMA PARA FICAR MAIS REAL!
Multiplayer será tirado da Unity?
Como dar o mesmo valor a varias variaveis ?
Procurando modelador de personagens!
Conta playstore
[TUTORIAL] Sistema de "Entrar" em locais
[TUTORIAL] Sistema de Lanterna com Pilhas
Como mudar cor do botao UI
[RESOLVIDO] Set Materials
Uma duvida sobre colliders 2d
Hoje à(s) 4:44 pm
Hoje à(s) 3:06 pm
Hoje à(s) 2:19 pm
Hoje à(s) 12:53 pm
Ontem à(s) 11:52 pm
Ontem à(s) 11:22 pm
Ontem à(s) 10:02 pm
Ontem à(s) 9:20 pm
Ontem à(s) 5:25 pm
Ontem à(s) 2:15 pm
Ontem à(s) 1:47 pm
Ontem à(s) 1:39 am
Dom Mar 24, 2019 7:22 pm
Dom Mar 24, 2019 7:02 pm
Dom Mar 24, 2019 6:17 pm
Dom Mar 24, 2019 4:08 pm
Dom Mar 24, 2019 3:17 am
Sab Mar 23, 2019 10:30 pm
Sab Mar 23, 2019 9:18 pm
Sab Mar 23, 2019 8:39 pm
Sab Mar 23, 2019 4:51 pm
Sab Mar 23, 2019 3:56 pm
Sab Mar 23, 2019 1:03 pm
Sab Mar 23, 2019 10:10 am
Sab Mar 23, 2019 9:43 am
Sab Mar 23, 2019 12:02 am
Sex Mar 22, 2019 11:51 pm
Sex Mar 22, 2019 11:36 pm
Sex Mar 22, 2019 11:16 pm
Sex Mar 22, 2019 8:18 pm
Sex Mar 22, 2019 8:07 pm
Sex Mar 22, 2019 6:58 pm
Sex Mar 22, 2019 2:49 pm
Sex Mar 22, 2019 12:09 pm
Qui Mar 21, 2019 11:13 pm
Qui Mar 21, 2019 11:02 pm
Qui Mar 21, 2019 9:22 pm
Qui Mar 21, 2019 5:01 pm
Qui Mar 21, 2019 11:52 am
Qui Mar 21, 2019 10:18 am
Qua Mar 20, 2019 9:29 pm
Qua Mar 20, 2019 9:19 pm
Qua Mar 20, 2019 8:39 pm
Qua Mar 20, 2019 8:33 pm
Ter Mar 19, 2019 10:03 pm
Ter Mar 19, 2019 1:50 pm
Ter Mar 19, 2019 7:03 am
Ter Mar 19, 2019 6:23 am
Ter Mar 19, 2019 6:02 am
Seg Mar 18, 2019 6:48 pm
Seg Mar 18, 2019 3:39 pm
Seg Mar 18, 2019 3:28 pm
Seg Mar 18, 2019 1:00 pm
Seg Mar 18, 2019 4:31 am
Dom Mar 17, 2019 3:43 pm
Sab Mar 16, 2019 5:11 pm
Sab Mar 16, 2019 4:37 pm
Sab Mar 16, 2019 3:48 pm
Sex Mar 15, 2019 6:40 pm
Sex Mar 15, 2019 3:09 pm
Sex Mar 15, 2019 9:32 am
Sex Mar 15, 2019 9:27 am
Qui Mar 14, 2019 9:55 pm
Qui Mar 14, 2019 9:50 pm
Qui Mar 14, 2019 9:45 pm
Qui Mar 14, 2019 9:44 pm
Qui Mar 14, 2019 9:42 pm
Qui Mar 14, 2019 9:38 pm
Qui Mar 14, 2019 9:00 pm
Qui Mar 14, 2019 8:54 pm
Qui Mar 14, 2019 8:33 pm
Qui Mar 14, 2019 8:29 pm
Qui Mar 14, 2019 5:06 pm
Qui Mar 14, 2019 3:39 pm
Qua Mar 13, 2019 5:30 pm
Ter Mar 12, 2019 2:54 pm
Seg Mar 11, 2019 10:21 pm
Seg Mar 11, 2019 1:25 pm
Seg Mar 11, 2019 11:51 am
Seg Mar 11, 2019 12:35 am
Dom Mar 10, 2019 9:49 pm
Dom Mar 10, 2019 8:20 pm
Dom Mar 10, 2019 5:47 pm
Dom Mar 10, 2019 5:21 pm
Dom Mar 10, 2019 2:12 pm
Sab Mar 09, 2019 7:50 pm
Sab Mar 09, 2019 12:18 pm
Sex Mar 08, 2019 6:55 pm
Sex Mar 08, 2019 2:40 pm
Qui Mar 07, 2019 12:19 pm
Qui Mar 07, 2019 12:12 pm
Qui Mar 07, 2019 11:59 am
Qui Mar 07, 2019 11:12 am
Qui Mar 07, 2019 1:29 am
Qua Mar 06, 2019 10:32 pm
Qua Mar 06, 2019 5:37 pm
Qua Mar 06, 2019 1:21 pm
Ter Mar 05, 2019 2:53 pm
Seg Mar 04, 2019 7:39 pm
NKKF
gutovic29
Unidade3d5
Diego Felix
wagnercaragua
AnderGames
dimmuo
Magnatah
Tegh
luiz12345
luiz12345
ShadowWG
MrToddyYT
Nalfam
Encracker
JOOOONHYYY
Zack2
Diego Felix
dstaroski
Weslley
gutovic29
NKKF
Duarte
Simplizãum S
CaerHunter
marciosilva
marciosilva
marciosilva
marciosilva
dstaroski
dstaroski
Chilinger
fabricadegame
eduardonog30
Magnatah
Magnatah
Encracker
numb123
Magnatah
joffersoju
fabricadegame
MarcosSchultz
MarcosSchultz
MarcosSchultz
fabricadegame
Akuma97
Magnatah
Magnatah
Magnatah
luiz12345
rejão
Zack2
Zack2
MarcosSchultz
luiz12345
henriquegames501
lesgoy
MiguelLuiz
Lteo
diegopds
Diego Felix
Magnatah
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Isabela
Isabela
Annko
juniorhotes
Weslley
Daniel Dória
juniorhotes
lesgoy
lucaslbatista
Flávio
Magnatah
diegopds
MayLeone
glauco
dimmuo
AnderGames
Unidade3d5
arthurunity
artplayer
diegopds
zeca urubu
Daniel Dória
AnderGames
MarcosSchultz
Alanigma
ffabim
Flávio

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 : 1196
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(^)
Phph09
Phph09
ProgramadorMaster

Masculino PONTOS : 1719
REPUTAÇÃO : 236
Idade : 13
Á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 : 1196
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.
Callyde Jr
Callyde Jr
Programador

Masculino PONTOS : 2890
REPUTAÇÃO : 385
Idade : 40
Áreas de atuação : Iniciante em modelagem Blender,ScketSHUP
Progamador
Ideialista

Meu Canal
https://www.youtube.com/ch
Respeito as regras :

Ver perfil do usuário http://unnygames.000webhostapp.com/

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 : 1196
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);
     }
  }
}
Callyde Jr
Callyde Jr
Programador

Masculino PONTOS : 2890
REPUTAÇÃO : 385
Idade : 40
Áreas de atuação : Iniciante em modelagem Blender,ScketSHUP
Progamador
Ideialista

Meu Canal
https://www.youtube.com/ch
Respeito as regras :

Ver perfil do usuário http://unnygames.000webhostapp.com/

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 : 1196
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
Callyde Jr
Callyde Jr
Programador

Masculino PONTOS : 2890
REPUTAÇÃO : 385
Idade : 40
Áreas de atuação : Iniciante em modelagem Blender,ScketSHUP
Progamador
Ideialista

Meu Canal
https://www.youtube.com/ch
Respeito as regras :

Ver perfil do usuário http://unnygames.000webhostapp.com/

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 : 1196
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
Callyde Jr
Callyde Jr
Programador

Masculino PONTOS : 2890
REPUTAÇÃO : 385
Idade : 40
Áreas de atuação : Iniciante em modelagem Blender,ScketSHUP
Progamador
Ideialista

Meu Canal
https://www.youtube.com/ch
Respeito as regras :

Ver perfil do usuário http://unnygames.000webhostapp.com/

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 : 1196
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
Callyde Jr
Callyde Jr
Programador

Masculino PONTOS : 2890
REPUTAÇÃO : 385
Idade : 40
Áreas de atuação : Iniciante em modelagem Blender,ScketSHUP
Progamador
Ideialista

Meu Canal
https://www.youtube.com/ch
Respeito as regras :

Ver perfil do usuário http://unnygames.000webhostapp.com/

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...
Callyde Jr
Callyde Jr
Programador

Masculino PONTOS : 2890
REPUTAÇÃO : 385
Idade : 40
Áreas de atuação : Iniciante em modelagem Blender,ScketSHUP
Progamador
Ideialista

Meu Canal
https://www.youtube.com/ch
Respeito as regras :

Ver perfil do usuário http://unnygames.000webhostapp.com/

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

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