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:
Alien Planet - Atmospheric scattering test
Unity 5 Bugado
Integração PHP e Unity
Ideia Inovadora
Duvida Animation Play não faz nada
Escolher que resoluções jogo vai ter
como usar o Lookat com o addforce do rigidibody?
[MagicaVoxel] Programa de modelagem de cenários cúbicos fácil
[TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
Pra que serve o [SerializeField] e por que usar ele?
Animacao2D
[____TÓPICO LIVRE____] FALE O QUE QUISER
script
[TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
Forma uma equipe
Baixar Documentaçao Unity 3D?
Feixe de luz - melhor forma de fazer
erro sinistro
Duvida sobre o Peso do jogo?
Alquem tem alguma ideia de como fazer o Player tipo a cabeça olhar para o seu inimigo?
Cryengine 3?
Como mudar rotacao de um objeto em relacao a posicao do outro objeto
Gostaria da opinião de vocês sobre o beta da Unity
Script
[TUTORIAL] Barra de VIDA / HP contínua
[TUTORIAL] Sistema de Escada Estilo FPS
[TUTORIAL] Melhorar a estabilidade dos veículos com Wheel Collider
Guitar The Legends of Brazil
[TUTORIAL] Escolher a quantos FPS (fixos) o seu jogo deverá rodar.
Examinar
Formação de Equipe Battle of Worlds
me ajudem neste script para subir escada
Texturas
script por favor me ajudem
Números aleatorios
Tem como saber o Tamanho do Objeto?
Banco de dados Aleatorio
Procuro desenhista para jogo 2D Pixel Art (Compra)
[Dúvida] Blender erro ao aplicar osso na mesh
[resolvido]enfiar float no UItext por script
Daria para pegar as horas do computador e por no jogo?
Gerador de Characters Autodesk Online
[JOGO DE FPS MULTIPLAYER] Alguém que saiba fazer animações na Unity 5 ou no blender :D
[LANÇADO] The Dilma
Inventario
Procuro vagas em equipes [Programador]
The Dilma - O terror da Petrobrás
Ajuda Neste Script?
Teste de usuário para um jogo
Procuro Equipe de Jogos 2D
Animações de sobra
[TUTORIAL]Singleton, A melhor forma de acessar a classe!
[TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
Mudança de FPS afetam a velocidade das coisas
[TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Como criar um ranking online na Unity usando a PlayFab e o Facebook?
Problema da Conta do comerciante do developer
BUG DE VOLUME NO SCRIPT MENU DE PAUSA
controle 2D com touch ou clique do mouse
[Dúvida] MySQL. Funciona apenas no editor.
[RESOLVIDO]como acesar uma void publica pelo script e ativa-la
Active UI
Como Criar Textura De Armas
Formaçao De Equipe (FLAMEBLOOD)
Fonte Proporcional
Ativar / Desativar Varios GameObject
[Duvida] Como fazer Medkit
[RESOLVIDO]Duvida com butao UI para ativar Void
Rodando o Sul
Procuro programadores para meu projeto BR Bus
Sistema de score
Strings e quebra de texto?
Procuro programadores para meu jogo
Interação com cenário
(formação de equipe BSU 17)
Hoje à(s) 2:08 pm
Hoje à(s) 7:16 am
Hoje à(s) 5:46 am
Hoje à(s) 3:34 am
Ontem à(s) 11:57 pm
Ontem à(s) 11:55 pm
Ontem à(s) 11:46 pm
Ontem à(s) 11:46 pm
Ontem à(s) 11:36 pm
Ontem à(s) 11:31 pm
Ontem à(s) 11:30 pm
Ontem à(s) 11:24 pm
Ontem à(s) 11:11 pm
Ontem à(s) 10:58 pm
Ontem à(s) 1:32 pm
Ontem à(s) 12:01 pm
Ontem à(s) 10:53 am
Ontem à(s) 1:25 am
Ontem à(s) 1:11 am
Ontem à(s) 1:08 am
Sex Dez 02, 2016 11:59 pm
Sex Dez 02, 2016 11:20 pm
Sex Dez 02, 2016 11:15 pm
Sex Dez 02, 2016 11:10 pm
Sex Dez 02, 2016 11:09 pm
Sex Dez 02, 2016 11:08 pm
Sex Dez 02, 2016 11:02 pm
Sex Dez 02, 2016 10:58 pm
Sex Dez 02, 2016 10:52 pm
Sex Dez 02, 2016 10:50 pm
Sex Dez 02, 2016 10:04 pm
Sex Dez 02, 2016 9:12 pm
Sex Dez 02, 2016 8:53 pm
Sex Dez 02, 2016 8:49 pm
Sex Dez 02, 2016 3:14 pm
Sex Dez 02, 2016 12:46 pm
Sex Dez 02, 2016 11:53 am
Sex Dez 02, 2016 8:06 am
Qui Dez 01, 2016 11:31 pm
Qui Dez 01, 2016 10:46 pm
Qui Dez 01, 2016 7:28 pm
Qui Dez 01, 2016 6:42 pm
Qui Dez 01, 2016 5:08 pm
Qui Dez 01, 2016 5:06 pm
Qui Dez 01, 2016 4:44 pm
Qua Nov 30, 2016 11:46 pm
Qua Nov 30, 2016 11:45 pm
Qua Nov 30, 2016 11:19 pm
Ter Nov 29, 2016 8:03 pm
Ter Nov 29, 2016 7:49 pm
Ter Nov 29, 2016 12:15 pm
Ter Nov 29, 2016 10:46 am
Ter Nov 29, 2016 10:13 am
Ter Nov 29, 2016 10:08 am
Ter Nov 29, 2016 6:32 am
Ter Nov 29, 2016 6:29 am
Ter Nov 29, 2016 3:13 am
Ter Nov 29, 2016 2:51 am
Ter Nov 29, 2016 2:47 am
Ter Nov 29, 2016 2:45 am
Ter Nov 29, 2016 1:42 am
Ter Nov 29, 2016 12:44 am
Ter Nov 29, 2016 12:24 am
Seg Nov 28, 2016 10:38 pm
Seg Nov 28, 2016 10:03 pm
Seg Nov 28, 2016 10:00 pm
Seg Nov 28, 2016 6:33 pm
Seg Nov 28, 2016 5:32 pm
Seg Nov 28, 2016 5:22 pm
Seg Nov 28, 2016 3:57 pm
Seg Nov 28, 2016 3:38 pm
Seg Nov 28, 2016 1:29 pm
Seg Nov 28, 2016 1:01 pm
Seg Nov 28, 2016 8:29 am
Seg Nov 28, 2016 7:22 am
Madness
AndyShow
artplayer
Madness
vinilucas
Marc7
Dom3000
ismarspn
weslleyFx
weslleyFx
weslleyFx
weslleyFx
weslleyFx
weslleyFx
mafipt
dimmuo
dimmuo
Dom3000
Dom3000
Dom3000
Callyde Jr
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Dom3000
edumoran
dstaroski
dstaroski
Manawydan
Dom3000
artplayer
mlmattos
rafaelllsd
weslleyFx
Extreme Craft
Édipo
weslleyFx
weslleyFx
weslleyFx
weslleyFx
weslleyFx
weslleyFx
mayokota
weslleyFx
artplayer
dimmuo
Hardencio
Hardencio
Callyde Jr
Callyde Jr
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Extreme Craft
kalielson
kalielson
artplayer
leandroinforware
leandroinforware
John Rambo
Extreme Craft
WesleyLemosLeal
Kelvyn_Feitosa
Weverton Borges da Silva
leandroinforware
mafipt
dimmuo
dstaroski

[AJUDA] Aumentar velocidade de um objeto a cada rodada

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

DÚVIDA [AJUDA] Aumentar velocidade de um objeto a cada rodada

Mensagem por John Rambo em Qua Maio 18, 2016 3:32 pm

Olá pessoal!

eu estou tendo uma dúvida de um assunto um tanto complexo que é aumentar a velocidade de um objeto que é movido por NavMeshAgent. Vou explicar bem detalhado:


Estou fazendo um jogo no qual o objetivo é tão somente sobreviver ao máximo que conseguir. Neste jogo você começa na rodada 1. e na rodada 1 são spawnados 8 inimigos com velocidade 2... Quando voce mata todos os 8 inimigos vc avança pra rodada 2. na rodada 2 são spawnados 13 inimigos. E o que eu quero fazer é aumentar a velocidade de perseguição a cada rodada que se passa, pra ficar mais dificil! E eu tô desde ontem tentando fazer isso mas não to de jeito nehum conseguindo  Sad Sad Sad Sad Sad.

Aqui esta o script que controla os spawns e as rodadas:

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

public class Instanciador : MonoBehaviour {
 
 public Transform[] Destinos;
 public GameObject[] Objetos;
 private float cronometro;
 public float tempoPorSpawn;
 public static int rodada;
 private float intervalo;
 public int maximoPorRodada;
 public int numeroDeInstanciados;
 public bool limitePorRodada;
 public Text hUDRodada;
 public static int inimigosPresents;
 
 void Start (){
 rodada = 1;
 intervalo = 0;
 maximoPorRodada = 8;
 numeroDeInstanciados = 0;
 limitePorRodada = false;
 inimigosPresents = 0;
 }
 
 void Update (){
 cronometro += Time.deltaTime;
 intervalo += Time.deltaTime;
 
 if (cronometro >= tempoPorSpawn && intervalo >= 8 && numeroDeInstanciados <= maximoPorRodada && limitePorRodada == false) {
 Instantiate (Objetos [Random.Range (0, Objetos.Length)], Destinos [Random.Range (0, Destinos.Length)].transform.position, transform.rotation);
 cronometro = 0;
 numeroDeInstanciados = numeroDeInstanciados + 1;
 inimigosPresents = inimigosPresents + 1;
 }
 if (numeroDeInstanciados >= maximoPorRodada) {
 limitePorRodada = true;
 }
 if (limitePorRodada == true && inimigosPresents == 0) {
 rodada = rodada + 1;
 maximoPorRodada = maximoPorRodada + 6;
 limitePorRodada = false;
 intervalo = 0;
 numeroDeInstanciados = 0;
 }
 hUDRodada.text = "      " + rodada;

 }
}

E aqui está o script do inimigo:

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

[RequireComponent(typeof(NavMeshAgent))]
public class Zombie : MonoBehaviour {
 private int health = 100;
 private GameObject Player;
 public NavMeshAgent naveMesh;
 
 void Start () {
 naveMesh = transform.GetComponent<NavMeshAgent> ();
 Player = GameObject.FindWithTag ("Player");
 naveMesh.acceleration = 2;
 naveMesh.speed = 2;


 }
 void Update () {
 naveMesh.destination = Player.transform.position;

 }


 public void DeductHealth(int dmg){
 health -= dmg;
 CheckHealth();
 }
 
 void CheckHealth(){
 if (health <= 0) {
 Destroy (gameObject);
 Instanciador.inimigosPresents--;
 }
 }
}


Poderiam me ajudar com isto?  bounce bounce

John Rambo
Moderador

Masculino PONTOS : 1286
REPUTAÇÃO : 225
Idade : 17
Áreas de atuação :
Unity;
Programação;
Modelagem;
Criação de cenários;
Sonorização;

Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: [AJUDA] Aumentar velocidade de um objeto a cada rodada

Mensagem por weslleyFx em Qua Maio 18, 2016 6:26 pm

Bom o que vc pode fazer e verifica se o total de numero De inimigos que vc tem em jogo e igual a 0 para conseguir começar a próxima rodada
ai vc pode procura pela classe Zombie e acessa a variável naveMesh e seta um novo valor

para isso a cada inimigo eliminado vc tem que decrementar 1 do total de inimigos esse e a forma simples

ou vc pode criar uma classe que não herde do monobehaviour e fazer os objetivos ex

Código:
[System.Serializable]
public class Objetivos {
    public int totalDeInimigos;
    public float tempoDejogo;
    public float VelocidadeDoInimigo;
    //e a sim vai
}

Quando chegar ao fim da roda vc passa para próximo objetivo

ex:

Código:
public int indexObjetivoAtual;
public int totalDeInimigos;
public GameObject Objetos;
public Objetivos[] objetivos;
public Transform[] Destinos;

if(totalDeInimigos <= 0)
{
   indexObjetivoAtual++;
  
   for(int i = 0; i < Objetos.Length; i++)
   {
      Objetos[i].GetComponent<NavMeshAgent>().speed = objetivos[indexObjetivoAtual].VelocidadeDoInimigo;
   }

   while(totalDeInimigos < objetivos[indexObjetivoAtual].totalDeInimigos)
   {
       Instantiate (Objetos [Random.Range (0, Objetos.Length)], Destinos [Random.Range (0, Destinos.Length)].transform.position, transform.rotation);
       totalDeInimigos++;
   }
}


Não esqueça de usar o Serializable  na classe objetivo
entenda um pouco sobre o assunto
http://www.schultzgames.com/t1399-tutorial-variavel-de-instancia-classe?highlight=varaivel+de+instancia

so que no caso esse tipo não e de instância
então vc pode fazer os ajuste manualmente no inspector 

OBS : Isso e so uma luz caso não tenha entendido diga ai pra min explicar Very Happy

weslleyFx
Moderador

Masculino PONTOS : 1845
REPUTAÇÃO : 394
Idade : 18
Áreas de atuação : Csharp programming language C#
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: [AJUDA] Aumentar velocidade de um objeto a cada rodada

Mensagem por John Rambo em Qui Maio 19, 2016 1:52 pm

A unica coisa que eu preciso é aumentar a velocidade do inimigo toda vez que a varivel rodada receber mais 1. Da uma explicada ai  tongue

[list=linenums]
[*] if (limitePorRodada == true && inimigosPresents == 0) {

[*] rodada = rodada + 1;

[*] maximoPorRodada = maximoPorRodada + 6;

[*] limitePorRodada = false;

[*] intervalo = 0;

[*] numeroDeInstanciados = 0;

[*] }

[/list]

tipo nesta parte eu acessaria o script do inimigo e aumentaria o valor da velocidade. Ja tentei de tudo no qual eu tenho conhecimento mas nao deu  pale

(e eu tambem nao to conseguindo colocar os scripts na caixinha de codidos do forum sem que fique dando bug).

John Rambo
Moderador

Masculino PONTOS : 1286
REPUTAÇÃO : 225
Idade : 17
Áreas de atuação :
Unity;
Programação;
Modelagem;
Criação de cenários;
Sonorização;

Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: [AJUDA] Aumentar velocidade de um objeto a cada rodada

Mensagem por MarcosSchultz em Qui Maio 19, 2016 11:01 pm

Troca o seu script "instanciar" por este:

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

public class Instanciador : MonoBehaviour {

   public Transform[] Destinos;
   public GameObject[] Objetos;
   private float cronometro;
   public float tempoPorSpawn;
   public static int rodada;
   private float intervalo;
   public float aumentoVelRodada = 1;
   public int maximoPorRodada;
   public int numeroDeInstanciados;
   public bool limitePorRodada;
   public Text hUDRodada;
   public static int inimigosPresents;

   void Start (){
      rodada = 1;
      intervalo = 0;
      maximoPorRodada = 8;
      numeroDeInstanciados = 0;
      limitePorRodada = false;
      inimigosPresents = 0;
   }

   void Update (){
      cronometro += Time.deltaTime;
      intervalo += Time.deltaTime;

      if (cronometro >= tempoPorSpawn && intervalo >= 8 && numeroDeInstanciados <= maximoPorRodada && limitePorRodada == false) {
         GameObject inimigo = Instantiate (Objetos [Random.Range (0, Objetos.Length)], Destinos [Random.Range (0, Destinos.Length)].transform.position, transform.rotation)as GameObject;
         inimigo.GetComponent<NavMeshAgent> ().speed = ((inimigo.GetComponent<NavMeshAgent> ().speed) + (rodada*aumentoVelRodada));
         cronometro = 0;
         numeroDeInstanciados = numeroDeInstanciados + 1;
         inimigosPresents = inimigosPresents + 1;
      }
      if (numeroDeInstanciados >= maximoPorRodada) {
         limitePorRodada = true;
      }
      if (limitePorRodada == true && inimigosPresents == 0) {
         rodada = rodada + 1;
         maximoPorRodada = maximoPorRodada + 6;
         limitePorRodada = false;
         intervalo = 0;
         numeroDeInstanciados = 0;
      }
      hUDRodada.text = "      " + rodada;

   }
}

MarcosSchultz
Administrador

Masculino PONTOS : 7132
REPUTAÇÃO : 878
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

DÚVIDA Re: [AJUDA] Aumentar velocidade de um objeto a cada rodada

Mensagem por weslleyFx em Sex Maio 20, 2016 12:10 am

ta ai 
para que a logica funciona vc não pode destruir o inimigo basta desativá-lo 

OBS: Fiz no bloco de notas Pois estou sem o Unity Então Pode ou não funcionar Very Happy

Código:








using UnityEngine;

using System.Collections.Generic;

using System.Collections;





public class Teste : MonoBehaviour 

{

    [System.Serializable]

    public class ObjectiveRound

    {

        public int amountEnemyRound;

        public float tempRound;

        public float speedEnemy;

        //inplementar algo se For Preciso

    }



    public Transform[] destiny;

    public GameObject[] enemy;

    public ObjectiveRound[] objectiveRound;

    public float tempSpawn;

    public float tempRound;



    private float currentTempToSpawn; 

    private int amountEnemyInGame;

    private int maxEnemyInGame;

    private float currentTempRound;

    private int round;

    private List<Zoobie> enemiesInGame;



    void Start()

    {

        enemiesInGame = new List<Zoobie>();

        Instance();

    }



    void Update()

    {

        currentTempRound += Time.deltaTime;

        currentTempToSpawn += Time.deltaTime;



        if(currentTempToSpawn >= tempSpawn)

        { 

            Spawn(); 

            currentTempToSpawn = 0;

        }



        if(currentTempRound >= tempRound || amountEnemyInGame <= 0)

        {

            amountEnemyInGame = 0;

            NextRound();

            Instance();

            currentTempRound = 0;

        }

    }



    private void NextRound()

    {

        round++;

        maxEnemyInGame = objectiveRound[round].amountEnemyRound;

        tempRound = objectiveRound[round].tempRound;



        NewVelocityZoobie();

    }



    private void Instance()

    {

        int amountEnemyCount = enemiesInGame.Count;



        for(int amountEnemyList = enemiesInGame.Count; amountEnemyList < maxEnemyInGame; amountEnemyList++)

        {

            amountEnemyCount++;

            GameObject tempEnemy = Instantiate(enemy[Random.Range (0, enemy.Length)]) as GameObject;

            tempEnemy.transform.SetParent (transform);

            tempEnemy.SetActive(false); 

            Zoobie tempZoobie = tempEnemy.GetComponent<Zoobie>();

            enemiesInGame.Add(tempZoobie);

        }



        amountEnemyInGame = amountEnemyCount;

    }



    private void Spawn()

    {

        foreach(Zoobie zoobie in enemiesInGame)

        {

            if(!zoobie.gameObject.activeSelf)

            {

                zoobie.gameObject.SetActive(true);

                zoobie.gameObject.transform.position = destiny[Random.Range(0, destiny.Length)].position;

                Debug.Log ("Spawn");

                break;

            }

        }

    }



    private void NewVelocityZoobie()

    {

        foreach (var zoobie in enemiesInGame) 

        {

            zoobie.naveMesh.speed = objectiveRound [round].speedEnemy;

        }

    }

}


@Edit1 : Tirei o erro do script


Última edição por weslleyFx em Sex Maio 20, 2016 8:03 pm, editado 2 vez(es) (Razão : mudança no Spawn e tirando o erros pq fiz sem o unity pelo bloco de notas '-')

weslleyFx
Moderador

Masculino PONTOS : 1845
REPUTAÇÃO : 394
Idade : 18
Áreas de atuação : Csharp programming language C#
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: [AJUDA] Aumentar velocidade de um objeto a cada rodada

Mensagem por John Rambo em Dom Maio 22, 2016 1:00 pm

Ainda assim não deu certo :/
vc tem skype?

John Rambo
Moderador

Masculino PONTOS : 1286
REPUTAÇÃO : 225
Idade : 17
Áreas de atuação :
Unity;
Programação;
Modelagem;
Criação de cenários;
Sonorização;

Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: [AJUDA] Aumentar velocidade de um objeto a cada rodada

Mensagem por weslleyFx em Dom Maio 22, 2016 2:03 pm

tenho
weslley.fx

weslleyFx
Moderador

Masculino PONTOS : 1845
REPUTAÇÃO : 394
Idade : 18
Áreas de atuação : Csharp programming language C#
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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