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:
Menu de Spawn
Photon Pun2 - Error: NewScene Clean
Impossible to escape (JOGO) terro completo
Como fazer objeto se mover dentro de um collider 2d ou dentro de um sprite?
Continuar tocando som com o aparelho bloqueado
QUAL JOGO VOCÊ GOSTARIA QUE FOSSE REFEITO?
Build apk aab unity 2019.4
[TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
Ofereço-me é diferente de formar equipes
[TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
COMO RESOLVO O ERRO DESSE SCRIPT
Trocar Personagem/Skin
Como funciona o drop de itens?
Como reduzir tamanho do .APK ?
[DUVIDA]Steam
como criar uma iluminação para um jogo com graficos low poly?
Simulador de policia [C#] [Jogo em andamento] [Procurando Equipe]
Ativar Animação ao colidir com BoxCollider
me ajudem, dem uma dica de como posso fazer um limitador para esse codigo
Realidade Virtual e Aumentada - onde tem?
Como salvar alterações de SetActive em GameObjects (UNITY)
interagir com os objetos somente se o mouse não estiver sobre o canvas
Sprites só é renderizado se diminuir o Size da camera
Alguém tem ideia de como posso fazer a movimentação do Lampião?
[RESOLVIDO] Mudar cor ?
[Dúvida] Toques na tela e UIs
[DUVIDA RAPIDA] SOBRE SCRIPTS
Unity celular - computador
Dúvida com botoes
Ajuda simples no trigger
preciso de ajuda
Como faço pra interagir com objeto ao olhar pra ele?
Busco alguem pra fazer algumas programações basicas (PAGO EM DINHEIRO)
Ativar animação ao se mover
[TUTORIAL] GameObject.FindWithTag ( Achar objetos na cena pelas Tags )
Colocar contagem regressiva
[TUTORIAL] Script de arma completo! [FREE]
Como faço pro carro só se mover quando eu engra no carro?
Como criar um cabo e realizar conexões
PLATAFORMA/COR ALEATORIA + AUMENTO DE VELOCIDADE
PRECISO DE UMA PESSOA QUE SAIBA MECHER COM ONLINE NO UNITY
Ajuda com Colisão na Camera
Como limitar o ângulo que um objeto pode atingir com Quaternion.LookRotation?
The freddy krueger's pie (Game)
Como programar animações de fade in e fade out para botão no Unity
Iniciar script sem anexá-lo a um GameObject
IDLE game tutorial, alguem?
Unity3D - Realistic Fps Prefab 1.44,1.45 - Sistema de Veículos - EVP5
nao consigo publicar um asset, me ajudem
Não Consigo salvar ao sair, se puderem ajudar
Duvida sobre animações
Efeito realista em textura
Salvar as auterações de um prefab em modo de jogo.
[TUTORIAL] Sistema de Suspenção a Ar para carros (WheelCollider)
Sistema de Escolher Frases no Dialogo
Como transformo a posição de um objeto em outra posição?
Como posso girar a câmera envolta do player com touch
[TUTORIAL] Salvar SCORE e substituir caso faça mais pontos.
Sistema de backup local "semi-automático".
[TUTORIAL] Sistema de FPS com Corpo
COMO MUDAR GETKEY WASD PARA GETBUTTON HORIZONTAL E VERTICAL ???
BLENDER SNAP COM PROBLEMA
Dúvida sobre o Aleatório
objeto voando
PlayerPrefab
movimentar a camera com o mouse estilo jogo RTS
[TUTORIAL] AI Enemy ( Jogos de terror )
Unity - Como eu desativo e ativo uma hierarquia ao apertar um botão?
Problema na iluminação do shader Diffuse
[TUTORIAL] Limitar casas decimais sem arredondar
Erros atualização de versão da Unity
Erro no SDK - unity
Arquivos em Nuvem
Como faz para salvar as escalas dos arquivos no TilePallets?
[RESOLVIDO] To precisando de ajuda em um script pra fazer uma malha dinamica
Sistema de teletransporte em Python
[____SUGESTÕES PARA O FÓRUM____]
[RESOLVIDO] Como consigo uma conexão local?
Problema em Saber Qual Objeto vai ser Spawnado
Procuro ROTEIRISTA
[RESOLVIDO] Colocar limite de cliques em button
Número Aleatório Unity C#
Comsegui terminar um jogo, Agradeço a todos
Ajuda com recursos do unity.
[RESOLVIDO] Dicas de Otimização
Multiplayer - Por onde começar?
MENU DE SELEÇÃO DE FASES
DOTS - ECS + JOBS + Burst!
Salvar informação de loja
[TUTORIAL] Observer Pattern em C# - Tudo o que você precisa saber
Procura-Se Modelador e Programador, Com Futura Remuneraçao
Programe seus jogos mesmo sem saber C# (BOLT ⚡)
Como mudar a direção do tiro usando o controle analógico?
duvida navmesh
[RESOLVIDO] Problema na câmera com Realidade aumentada
vamos formar uma equipe pra lançar um jogo
Alterações indo para os prefabs e não para os clones.
Jogo de Terror com imagem pixelada
problemas com celulares android grande
Hoje à(s) 2:49 pm
Hoje à(s) 1:03 pm
Hoje à(s) 4:05 am
Hoje à(s) 2:10 am
Hoje à(s) 2:08 am
Hoje à(s) 2:07 am
Hoje à(s) 2:04 am
Hoje à(s) 12:28 am
Hoje à(s) 12:27 am
Hoje à(s) 12:26 am
Ontem à(s) 2:29 pm
Ontem à(s) 2:09 pm
Sex Ago 07, 2020 5:15 pm
Qui Ago 06, 2020 5:00 pm
Qui Ago 06, 2020 4:28 pm
Qui Ago 06, 2020 8:03 am
Qui Ago 06, 2020 3:05 am
Qua Ago 05, 2020 11:59 pm
Qua Ago 05, 2020 8:39 pm
Qua Ago 05, 2020 5:44 pm
Qua Ago 05, 2020 4:24 pm
Qua Ago 05, 2020 11:14 am
Ter Ago 04, 2020 11:16 pm
Ter Ago 04, 2020 8:34 pm
Ter Ago 04, 2020 5:54 pm
Ter Ago 04, 2020 3:37 pm
Ter Ago 04, 2020 10:42 am
Ter Ago 04, 2020 10:33 am
Ter Ago 04, 2020 1:15 am
Seg Ago 03, 2020 9:28 pm
Seg Ago 03, 2020 8:32 pm
Seg Ago 03, 2020 8:28 pm
Seg Ago 03, 2020 7:38 pm
Seg Ago 03, 2020 3:41 pm
Seg Ago 03, 2020 9:39 am
Seg Ago 03, 2020 1:40 am
Dom Ago 02, 2020 5:53 pm
Dom Ago 02, 2020 5:44 pm
Dom Ago 02, 2020 2:28 pm
Dom Ago 02, 2020 1:14 pm
Dom Ago 02, 2020 12:57 pm
Dom Ago 02, 2020 4:40 am
Sab Ago 01, 2020 11:57 pm
Sab Ago 01, 2020 2:10 pm
Sab Ago 01, 2020 11:37 am
Sab Ago 01, 2020 8:31 am
Sab Ago 01, 2020 12:26 am
Sex Jul 31, 2020 9:02 pm
Sex Jul 31, 2020 3:58 pm
Qui Jul 30, 2020 7:18 pm
Qui Jul 30, 2020 4:54 pm
Qui Jul 30, 2020 10:55 am
Qui Jul 30, 2020 8:47 am
Qui Jul 30, 2020 4:42 am
Qua Jul 29, 2020 3:29 pm
Qua Jul 29, 2020 10:56 am
Qua Jul 29, 2020 12:30 am
Seg Jul 27, 2020 5:45 pm
Seg Jul 27, 2020 6:28 am
Dom Jul 26, 2020 7:15 pm
Dom Jul 26, 2020 5:53 pm
Dom Jul 26, 2020 4:33 pm
Dom Jul 26, 2020 4:10 pm
Dom Jul 26, 2020 4:02 am
Dom Jul 26, 2020 3:58 am
Dom Jul 26, 2020 3:58 am
Dom Jul 26, 2020 3:52 am
Dom Jul 26, 2020 3:48 am
Dom Jul 26, 2020 12:04 am
Sab Jul 25, 2020 11:46 pm
Sab Jul 25, 2020 11:38 pm
Sab Jul 25, 2020 11:02 pm
Sab Jul 25, 2020 10:27 pm
Sab Jul 25, 2020 10:26 pm
Sab Jul 25, 2020 10:09 pm
Sab Jul 25, 2020 10:06 pm
Sab Jul 25, 2020 9:50 pm
Sab Jul 25, 2020 8:03 pm
Sex Jul 24, 2020 11:51 pm
Sex Jul 24, 2020 5:45 pm
Sex Jul 24, 2020 3:04 pm
Sex Jul 24, 2020 7:03 am
Qui Jul 23, 2020 6:15 pm
Qui Jul 23, 2020 5:31 pm
Qui Jul 23, 2020 5:27 pm
Qui Jul 23, 2020 1:58 pm
Qui Jul 23, 2020 1:51 pm
Qui Jul 23, 2020 1:43 pm
Qui Jul 23, 2020 12:48 pm
Qui Jul 23, 2020 11:58 am
Qui Jul 23, 2020 11:43 am
Qui Jul 23, 2020 8:18 am
Qua Jul 22, 2020 8:48 pm
Qua Jul 22, 2020 8:22 pm
Qua Jul 22, 2020 7:40 pm
Qua Jul 22, 2020 7:17 pm
Qua Jul 22, 2020 4:52 pm
Qua Jul 22, 2020 2:33 pm
Qua Jul 22, 2020 1:34 pm
TIKO
NKKF
SherDown
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Weslley
Weslley
speedluk
numb123
gtcmcsgo
JulioWinchester
Giwn
BoraAprender15
pietro1524
Callyde Jr
Alexlucas
JulioWinchester
TioUV
LúcioHenrique098
Callyde Jr
poyser
NKKF
Kakaroto222
garrito
CShar
Magnatah
Magnatah
MayLeone
BoraAprender15
NKKF
JohnRambo
maxwellvale
maxwellvale
CShar
NKKF
SeTk
JulioWinchester
BigCouve
Callyde Jr
TheusReis
BRGC
speedluk
Samuelostgamer
Yuri Heinz
joaoguil3
DhanielBrandão2
Édipo
Antônio T
garrito
EricknhYT
BigCouve
g2013santtos@gmail.com
raphaelperez
fabricadegame
SamonBR
CShar
IOOI
pdsimulador
iToddy
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
VaiPraLá123
Magnatah
JoelMJunior
KurotamaXIII
MarcosSchultz
MarcosSchultz
diegopds
MarcosSchultz
MarcosSchultz
NinjalaranjaTV
CShar
Ele paiva
Agoraaae3432
CShar
Yuri Heinz
sabbath
VaiPraLá123
artplayer
herisson07
artplayer
undertakerbr
sabbath
EricknhYT
Fagner
Fagner
Fagner
orph
Yuri Heinz
NKKF
VaiPraLá123
Fagner

Spawn Random simultâneo em pontos específicos

Ir em baixo

DÚVIDA Spawn Random simultâneo em pontos específicos

Mensagem por Godigod em Ter Jun 18, 2019 9:00 pm

Boa noite. Estou com dúvida para criar um sistema de spawn. Tenho 10 chaves iguais (mesmo objeto) e 30 locais pra spawnar. Preciso que quando o jogo seja iniciado, as 10 chaves spawnem em 10 locais dos 30 existentes ao mesmo tempo. Elas não podem se sobrepor aonde ja tiverem sido spawnadas, por exemplo: não posso ter 1 ou mais chaves spawnadas no mesmo local (se sobrepondo). Segue abaixo o código que to usando.

Código:
using UnityEngine;
using System.Collections;
public class Instanciador : MonoBehaviour
{
    public Transform[] LocaisDeSpawn;
    public GameObject[] Chaves;
    private float cronometro;
    public float tempoPorSpawn;
 
    void Update()
    {
        cronometro += Time.deltaTime;
        if (cronometro >= tempoPorSpawn)
        {
            Instantiate(Chaves[Random.Range(0, 9)], LocaisDeSpawn[Random.Range(0, 29)].transform.position, transform.rotation);

            cronometro = 0;
        }
    }
}

Godigod
Iniciante
Iniciante

PONTOS : 432
REPUTAÇÃO : 0
Respeito as regras : Spawn Random simultâneo em pontos específicos  WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por Matrirxp em Ter Jun 18, 2019 9:27 pm

Código:
 int Local;
 int[] LocaisEscolhidos; 
 bool Trava;

if (cronometro >= tempoPorSpawn)
        {

            Local = Random.Range(0, 29);

            for(int i =0;i<LocaisEscolhidos.lenght;i++){
             if(Local == LocaisEscolhidos[i]){
                Trava = true;
             }
             }

            if(Trava == false){
            Instantiate(Chaves[Random.Range(0, 9)], LocaisDeSpawn[Local].transform.position, transform.rotation);
            LocaisEscolhidos.Add(Local);
            }else{
             Local = Random.Range(0, 29);
            }

            cronometro = 0;
        }
Matrirxp
Matrirxp
ProgramadorMaster

Masculino PONTOS : 1778
REPUTAÇÃO : 77
Idade : 18
Áreas de atuação : Programação: C#, Java,C++,JavaScript.
Modelagem 3D.
Respeito as regras : Spawn Random simultâneo em pontos específicos  Aad8pUi

https://www.youtube.com/channel/UCkngjEDMx9y_vW0t7Io05gg

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por Godigod em Qua Jun 19, 2019 1:58 am

O que tem que ser adicionado no meu código e o que não vai ser mais aproveitado? Desculpa minha ignorância, mas sou iniciante ainda e to tentando pegar as manhas. Vi que você criou 3 variáveis 2 int e 1 boleana. Não teria que colocá-las como públicas para aparecerem no Unity? É necessário colocar cronômetro nesse código mesmo? Não vi muito importância nesse meu caso. A propósito obrigado por estar tentando me ajudar. Uso void Update mesmo ou o void Start já que só quero que faça o posicionamento só uma vez quando o jogo rodar? O código ficou assim agora:

Spawn Random simultâneo em pontos específicos  Unknown

Código:
using UnityEngine;
using System.Collections;
public class Instanciador : MonoBehaviour
{
    public Transform[] LocaisDeSpawn;
    public GameObject[] Chaves;
    private float cronometro;
    public float tempoPorSpawn;
    int Local;
    int[] LocaisEscolhidos;
    bool Trava;

    void Update()
    {
       
        if (cronometro >= tempoPorSpawn)
        {

            Local = Random.Range(0, 29);

            for (int i = 0; i < LocaisEscolhidos.Length; i++)
            {
                if (Local == LocaisEscolhidos[i])
                {
                    Trava = true;
                }
            }

            if (Trava == false)
            {
                Instantiate(Chaves[Random.Range(0, 9)], LocaisDeSpawn[Local].transform.position, transform.rotation);
                LocaisEscolhidos.Add(Local);
            }
            else
            {
                Local = Random.Range(0, 29);
            }

            cronometro = 0;
        }
    }
}

Godigod
Iniciante
Iniciante

PONTOS : 432
REPUTAÇÃO : 0
Respeito as regras : Spawn Random simultâneo em pontos específicos  WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por Godigod em Qua Jun 19, 2019 2:10 am

Esqueci de comentar que tava aparecendo esse erro abaixo.

Spawn Random simultâneo em pontos específicos  Unknown

Godigod
Iniciante
Iniciante

PONTOS : 432
REPUTAÇÃO : 0
Respeito as regras : Spawn Random simultâneo em pontos específicos  WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por Matrirxp em Qua Jun 19, 2019 12:36 pm

1-

Código:
    int Local; //Armazena o local de spawn do objeto atual
    int[] LocaisEscolhidos; //Armazena os locais ja escolhidos 
    bool Trava; //assume o valor true quando a variavel "Local" for igual a algum dos valores da array "LocaisEscolhidos"



2-
https://docs.unity3d.com/ScriptReference/Array.Add.html
Parece estar certo.
Execute o código se continuar dando erro mande outra mensagem que eu te ajudo.

3-
Ja que você quer que o código seja executado apenas uma vez coloque no void Start()

4-
As variáveis não são púbicas pois são usadas apenas pelo código. (Coordenando ações da Script)

5-
https://www.schultzgames.com/t9107-tutorial-gerando-objetos-proceduralmente#63224
Matrirxp
Matrirxp
ProgramadorMaster

Masculino PONTOS : 1778
REPUTAÇÃO : 77
Idade : 18
Áreas de atuação : Programação: C#, Java,C++,JavaScript.
Modelagem 3D.
Respeito as regras : Spawn Random simultâneo em pontos específicos  Aad8pUi

https://www.youtube.com/channel/UCkngjEDMx9y_vW0t7Io05gg

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por Godigod em Qua Jun 19, 2019 4:55 pm

Continua dando erro Add sublinhado. Entrei no link que voce mandou que explica sobre Array.Add() porém lá mesmo, fala isso," Note: This is javascript only. C# does not use this feature. " Eu preciso fazer algo la na Unity pra que o Add funcione ou algo do tipo? O código não roda acho q só por isso mesmo. 

Godigod
Iniciante
Iniciante

PONTOS : 432
REPUTAÇÃO : 0
Respeito as regras : Spawn Random simultâneo em pontos específicos  WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por Matrirxp em Qua Jun 19, 2019 5:05 pm

Código:
List<int> LocaisEscolhidos = new List<int>();

troque o "LocaisEscolhidos" por isso.
Matrirxp
Matrirxp
ProgramadorMaster

Masculino PONTOS : 1778
REPUTAÇÃO : 77
Idade : 18
Áreas de atuação : Programação: C#, Java,C++,JavaScript.
Modelagem 3D.
Respeito as regras : Spawn Random simultâneo em pontos específicos  Aad8pUi

https://www.youtube.com/channel/UCkngjEDMx9y_vW0t7Io05gg

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por Godigod em Qua Jun 19, 2019 6:40 pm

Código:
using UnityEngine;
using System.Collections;
public class Instanciador : MonoBehaviour
{
    public Transform[] LocaisDeSpawn;
    public GameObject[] Chaves;
    private float cronometro;
    public float tempoPorSpawn;
    int Local;
    int[] LocaisEscolhidos;
    bool Trava;

    void Start ()
    {
       
        if (cronometro >= tempoPorSpawn)
        {

            Local = Random.Range(0, 29);

            for (int i = 0; i < LocaisEscolhidos.Length; i++)
            {
                if (Local == LocaisEscolhidos[i])
                {
                    Trava = true;
                }
            }

            if (Trava == false)
            {
                Instantiate(Chaves[Random.Range(0, 9)], LocaisDeSpawn[Local].transform.position, transform.rotation);
                List<int> LocaisEscolhidos = new List<int>();
            }
            else
            {
                Local = Random.Range(0, 29);
            }

            cronometro = 0;
        }
    }
}
Spawn Random simultâneo em pontos específicos  Unknown

Godigod
Iniciante
Iniciante

PONTOS : 432
REPUTAÇÃO : 0
Respeito as regras : Spawn Random simultâneo em pontos específicos  WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por Godigod em Qua Jun 19, 2019 6:40 pm

Continua dando erro na linha 32

Godigod
Iniciante
Iniciante

PONTOS : 432
REPUTAÇÃO : 0
Respeito as regras : Spawn Random simultâneo em pontos específicos  WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por Matrirxp em Qua Jun 19, 2019 11:01 pm

Não e assim kkkk. 
Risonho
Assim:

Código:
using UnityEngine;
using System.Collections;
public class Instanciador : MonoBehaviour
{
    public Transform[] LocaisDeSpawn;
    public GameObject[] Chaves;
    private float cronometro;
    public float tempoPorSpawn;
    int Local;
    List<int> LocaisEscolhidos = new List<int>(); //aqui
    bool Trava;

    void Update()
    {
        
        if (cronometro >= tempoPorSpawn)
        {

            Local = Random.Range(0, 29);

            for (int i = 0; i < LocaisEscolhidos.Length; i++)
            {
                if (Local == LocaisEscolhidos[i])
                {
                    Trava = true;
                }
            }

            if (Trava == false)
            {
                Instantiate(Chaves[Random.Range(0, 9)], LocaisDeSpawn[Local].transform.position, transform.rotation);
                LocaisEscolhidos.Add(Local);
            }
            else
            {
                Local = Random.Range(0, 29);
            }

            cronometro = 0;
        }
    }
}
Matrirxp
Matrirxp
ProgramadorMaster

Masculino PONTOS : 1778
REPUTAÇÃO : 77
Idade : 18
Áreas de atuação : Programação: C#, Java,C++,JavaScript.
Modelagem 3D.
Respeito as regras : Spawn Random simultâneo em pontos específicos  Aad8pUi

https://www.youtube.com/channel/UCkngjEDMx9y_vW0t7Io05gg

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por Godigod em Seg Jun 24, 2019 6:47 am

Código:
using UnityEngine;
using System.Collections.Generic;
public class Instanciador : MonoBehaviour
{
    public Transform[] LocaisDeSpawn;
    public GameObject[] Chaves;
    private float cronometro;
    public float tempoPorSpawn;
    int Local;
    List<int> LocaisEscolhidos = new List<int>(); //aqui
    bool Trava;

    void Start ()
    {

        if (cronometro >= tempoPorSpawn)
        {

            Local = Random.Range(0, 29);

            for (int i = 0; LocaisEscolhidos.Length; i++)
            {
                if (Local == LocaisEscolhidos[i])
                {
                    Trava = true;
                }
            }

            if (Trava == false)
            {
                Instantiate(Chaves[Random.Range(0, 9)], LocaisDeSpawn[Local].transform.position, transform.rotation);
                LocaisEscolhidos.Add(Local);
            }
            else
            {
                Local = Random.Range(0, 29);
            }

            cronometro = 0;
        }
    }
}

KKKKk. 
Agora ta dando erro na linha 21 no Lenght. Acho q é a respeito do máximo de pontos que quero escolher como respawn escolhidos. Nao sei q q tenho q fazer. Eu quero que dentre 30 pontos pivos sejam escolhidos 10 deles e que eles nao se repitam pra nao haver ambiguidade de chaves em nenhum dos 10 pivos escolhidos.

Godigod
Iniciante
Iniciante

PONTOS : 432
REPUTAÇÃO : 0
Respeito as regras : Spawn Random simultâneo em pontos específicos  WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por Godigod em Seg Jun 24, 2019 6:50 am

Spawn Random simultâneo em pontos específicos  Unknown
No unity aparece esse erro. Acho q só falta isso pra dar certo mesmo.

Godigod
Iniciante
Iniciante

PONTOS : 432
REPUTAÇÃO : 0
Respeito as regras : Spawn Random simultâneo em pontos específicos  WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por MarcosSchultz em Seg Jun 24, 2019 5:33 pm

provavelmente isso acontece por que você está setando "locais escolhidos" que não existem nas outras arrays...

lembre-se, as arrays começam em 0
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 62975
REPUTAÇÃO : 2466
Idade : 23
Áreas de atuação : Administrador do fórum
Respeito as regras : Spawn Random simultâneo em pontos específicos  Aad8pUi

https://www.schultzgames.com

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por Godigod em Ter Jun 25, 2019 3:38 am

@MarcosSchultz escreveu:provavelmente isso acontece por que você está setando "locais escolhidos" que não existem nas outras arrays...

lembre-se, as arrays começam em 0

Oi Marcos eu sei disso a minha array ta começando "aparentemente" com as quantidades corretas, tanto de chaves, quanto pontos escolhidos e pontos pivos (vou chamar assim). Se tenho 10 chaves, então é de 0 a 9 (certo?) Se tenho 30 pontos pivos, vai de 0 a 29 (certo?). E se quero que seja 10 pontos escolhidos dentre os 30 pontos pivos, vai de 0 a 9 (certo?). Alguem tenta me mostrar como resolvo mais diretamente eu nao manjo de programação o suficiente ainda Sad.

Godigod
Iniciante
Iniciante

PONTOS : 432
REPUTAÇÃO : 0
Respeito as regras : Spawn Random simultâneo em pontos específicos  WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por ffabim em Ter Jun 25, 2019 2:14 pm

Código:
 public Transform[] LocaisDeSpawn;
 public GameObject[] Chaves;
 private float cronometro;
 public float tempoPorSpawn;
 int Local;
 List<int> LocaisEscolhidos = new List<int>();
 bool Trava;

 void Start ()
 {
 if (cronometro >= tempoPorSpawn)
 {
 Local = Random.Range(0, 29);

 for(int i = 0;i<LocaisEscolhidos.Count;i++)
 {
 if (Local == LocaisEscolhidos[i])
 Trava = true;
 }

 if (Trava == false)
 {
 Instantiate(Chaves[Random.Range(0, 9)], LocaisDeSpawn[Local].transform.position, transform.rotation);
 LocaisEscolhidos.Add(Local);
 }else {
 Local = Random.Range(0, 29);
 }

 cronometro = 0;
 }
 }
}
ffabim
ffabim
MembroAvançado

Masculino PONTOS : 1745
REPUTAÇÃO : 54
Respeito as regras : Spawn Random simultâneo em pontos específicos  WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por Godigod em Qui Jun 27, 2019 10:55 am

Opa ffabim. Se eu deixar como void Start ele ta colocando apenas uma chave em um dos pontos escolhidos. Se eu coloco como void Update, aí ele coloca uma quantidade de chaves aleatorias. Por exemplo: as vezes poe 5 chaves, as vezes 8, as vezes 1 e por ai vai ... Eu preciso que ele coloque um total de 10 chaves.

Godigod
Iniciante
Iniciante

PONTOS : 432
REPUTAÇÃO : 0
Respeito as regras : Spawn Random simultâneo em pontos específicos  WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por ffabim em Sab Jun 29, 2019 10:42 pm

é por causa disso, ele ira colocar dentre 0 a 9 chaves aleatoriamente
Código:
(Chaves[Random.Range(0, 9)]
não sei se vai funcionar mas tenta usar isso
Código:
public Transform[] LocaisDeSpawn;
 public List<GameObject>Chaves =new List<GameObject>();
 private float cronometro;
 public float tempoPorSpawn;
 int Local;
 List<int> LocaisEscolhidos = new List<int>();
 bool Trava;

 void Start ()
 {
 if (cronometro >= tempoPorSpawn)
 {
 Local = Random.Range(0, 29);

 for(int i = 0;i<LocaisEscolhidos.Count;i++)
 {
 if (Local == LocaisEscolhidos[i])
 Trava = true;
 }

 if (Trava == false)
 {
 for(int i = 0;i<Chaves.Count;i++)
 {
 Instantiate(Chaves[i], LocaisDeSpawn[Local].transform.position, transform.rotation);
 LocaisEscolhidos.Add(Local);
 }else {
 Local = Random.Range(0, 29);
 }

 cronometro = 0;
 }
ffabim
ffabim
MembroAvançado

Masculino PONTOS : 1745
REPUTAÇÃO : 54
Respeito as regras : Spawn Random simultâneo em pontos específicos  WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por Matrirxp em Dom Jun 30, 2019 12:57 pm

Código:
public Transform[] LocaisDeSpawn;
 public List<GameObject>Chaves =new List<GameObject>();
 private float cronometro;
 public float tempoPorSpawn;
 int Local;
 List<int> LocaisEscolhidos = new List<int>(9);
 bool Trava;

 void Start ()
 {
 if (cronometro >= tempoPorSpawn)
 {
 Local = Random.Range(0, 29);

 for(int i = 0;i<LocaisEscolhidos.Count;i++)
 {
 if (Local == LocaisEscolhidos[i])
 Trava = true;
 }

 if (Trava == false)
 {
 for(int i = 0;i<Chaves.Count;i++)
 {
 Instantiate(Chaves[i], LocaisDeSpawn[Local].transform.position, transform.rotation);
 LocaisEscolhidos.Add(Local);
 }else {
 Local = Random.Range(0, 29);
 }

 cronometro = 0;
 }
Inicialize a list com 9 (Numero máximo de spawn)

Código:
 List<int> LocaisEscolhidos = new List<int>(9);


https://answers.unity.com/questions/506896/how-to-create-a-list-with-initial-capacity.html
O certo e .Count, me confundi com array que e .Length  Shhh
Matrirxp
Matrirxp
ProgramadorMaster

Masculino PONTOS : 1778
REPUTAÇÃO : 77
Idade : 18
Áreas de atuação : Programação: C#, Java,C++,JavaScript.
Modelagem 3D.
Respeito as regras : Spawn Random simultâneo em pontos específicos  Aad8pUi

https://www.youtube.com/channel/UCkngjEDMx9y_vW0t7Io05gg

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por Fagner em Dom Jun 30, 2019 3:02 pm

Eu tenho 30 pontos de spawn (Transforms);

Spawn Random simultâneo em pontos específicos  5CHZdVa

Armazeno estes em um vetor;
Caso a tecla Espaço seja pressionada, embaralho as posições utilizando o algoritmo FYS;
Depois é só mover as dez chaves para as primeiras 10 posições no vetor de spawn(Transform), pois como este vetor agora está embaralhado, as chaves ficam em posições aleatórias e sem o problema de ter duas chaves na mesma posição.

Spawn Random simultâneo em pontos específicos  Yz3K808

Segue o projeto, caso tenha interesse em dar uma olhada:
Projeto Spawner de Chaves
Fagner
Fagner
Moderador

Masculino PONTOS : 2183
REPUTAÇÃO : 386
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras : Spawn Random simultâneo em pontos específicos  Aad8pUi

Voltar ao Topo Ir em baixo

DÚVIDA Re: Spawn Random simultâneo em pontos específicos

Mensagem por guimaraf em Sab Jul 06, 2019 11:47 am

Achei legal o que foi mostrado, resolvi dar meus 2 centavos.

Fiz diversas mudanças para deixar o código o mais simples possível para ser usado.
Como reparei que os objetos tinham posições fixas, então utilizei 2 loopings para gerar elas, assim eu não preciso mais da array de transform, além de outras mudanças.

O único objeto que precisa ser colocado no script é o prefab da chave.

Mudei a tecla de "espaço" para "K"

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

public class Instancier : MonoBehaviour
{
    private Vector3[] pos = new Vector3[30];
    public GameObject keyPrefab = default;
    public GameObject[] keys = default;

    public List<int> spawnAllId = default;
    public List<int> spawUniqueRandom = default;

    private void Start()
    {
        keys = new GameObject[10];
        CreateSpawPositions();
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.K))
        {
            RandomPositions();
        }
    }

    private void CreateSpawPositions()
    {
        //generate all positions
        int[] x = new int[5] { 0, -2, -4, -6, -8 };
        int[] z = new int[6] { 0, -2, -4, -6, -8, -10 };

        int posIndex = 0;
        for (int i = 0; i < 6; i++)
        {
            for (int j = 0; j < 5; j++)
            {
                pos[posIndex] = new Vector3(x[j] + 4, 0f, z[i] + 6);
                print(pos[posIndex]);
                posIndex++;
            }
        }
    }

    private void RandomPositions()
    {
        DestroyAllKeysExisting();

        //Simple addition of sequential indices
        for (int i = 0; i < 30; i++)
        {
            spawnAllId.Add(i);
        }

        //sort only 10 unique numbers
        for (int i = 0; i < 10; i++)
        {
            int n = Random.Range(0, spawnAllId.Count);
            spawUniqueRandom.Add(spawnAllId[n]);
            print(spawnAllId[n]);
            spawnAllId.Remove(spawnAllId[n]);
        }
        //Instantiated the keys in the correct locations
        for (int i = 0; i < spawUniqueRandom.Count; i++)
        {
            Quaternion quat = new Quaternion();
            keys[i] = Instantiate(keyPrefab, pos[spawUniqueRandom[i]], quat);
        }
    }

    private void DestroyAllKeysExisting()
    {
        //reset all lists and destroy all instantiate keys
        if (spawnAllId.Count > 0)
        {
            spawnAllId.Clear();
        }
        if (spawUniqueRandom.Count > 0)
        {
            spawUniqueRandom.Clear();

            if (keys.Length > 0)
            {
                for (int i = 0; i < keys.Length; i++)
                {
                    Destroy(keys[i]);
                }
            }
        }
    }
}

Quem quiser baixar a versão que eu fiz, publiquei no meu github
guimaraf
guimaraf
ProgramadorMaster

Masculino PONTOS : 1537
REPUTAÇÃO : 87
Idade : 37
Áreas de atuação : Programação de jogos e técnico de informática
Respeito as regras : Spawn Random simultâneo em pontos específicos  Aad8pUi

http://guimaraf.github.io

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