Script de Spawn Aleatório
2 participantes
Página 1 de 1
Script de Spawn Aleatório
Boa Tarde,eu tó querendo modificar um script de spawn,eu tó usando esse script que eu achei aqui mesmo no fórum,feito pelo próprio Marcos,o script pega os objetos que eu coloco nele e instância de forma aleatória nos pontos de spawn que eu coloquei dentro de um intervalo de tempo,só que eu queria alterar ele para que ele funcionasse da seguinte forma:ele instância apenas um objeto por ponto de spawn,queria que o script verificasse também se já existe um objeto naquele ponto de spawn para que ele não repetisse dois objetos no mesmo lugar,já tentei de tudo,mas nunca dava certo e quando dava,funcionava de uma forma estranha e bugada
[list=linenums]
[*]using UnityEngine;
[*]using System.Collections;
[*]public class Instanciador : MonoBehaviour {
[*] public Transform[] Destinos; // linke os destinos aleatorios aqui
[*] public GameObject[] Objetos; // linke os objetos aleatorios aqui
[*] private float cronometro;
[*] public float tempoPorSpawn;
[*] void Update (){
[*] cronometro += Time.deltaTime;
[*] if (cronometro >= tempoPorSpawn) {
[*] Instantiate(Objetos[Random.Range (0,Objetos.Length)],Destinos[Random.Range (0,Destinos.Length)].transform.position,transform.rotation);
[*] cronometro = 0;
[*] }
[*] }
[*]}
[/list]
[list=linenums]
[*]using UnityEngine;
[*]using System.Collections;
[*]public class Instanciador : MonoBehaviour {
[*] public Transform[] Destinos; // linke os destinos aleatorios aqui
[*] public GameObject[] Objetos; // linke os objetos aleatorios aqui
[*] private float cronometro;
[*] public float tempoPorSpawn;
[*] void Update (){
[*] cronometro += Time.deltaTime;
[*] if (cronometro >= tempoPorSpawn) {
[*] Instantiate(Objetos[Random.Range (0,Objetos.Length)],Destinos[Random.Range (0,Destinos.Length)].transform.position,transform.rotation);
[*] cronometro = 0;
[*] }
[*] }
[*]}
[/list]
vitorhugo- Membro
- PONTOS : 2798
REPUTAÇÃO : 13
Idade : 23
Respeito as regras :
Re: Script de Spawn Aleatório
Desculpe o script bugou,aqui está ele:vitorhugo escreveu:Boa Tarde,eu tó querendo modificar um script de spawn,eu tó usando esse script que eu achei aqui mesmo no fórum,feito pelo próprio Marcos,o script pega os objetos que eu coloco nele e instância de forma aleatória nos pontos de spawn que eu coloquei dentro de um intervalo de tempo,só que eu queria alterar ele para que ele funcionasse da seguinte forma:ele instância apenas um objeto por ponto de spawn,queria que o script verificasse também se já existe um objeto naquele ponto de spawn para que ele não repetisse dois objetos no mesmo lugar,já tentei de tudo,mas nunca dava certo e quando dava,funcionava de uma forma estranha e bugada,alguém pode me ajudar
- Código:
using UnityEngine;[size=14][/size]using System.Collections;[size=14][/size]public class Instanciador : MonoBehaviour {[size=14][/size] public Transform[] Destinos; // linke os destinos aleatorios aqui[size=14][/size] public GameObject[] Objetos; // linke os objetos aleatorios aqui[size=14][/size] private float cronometro;[size=14][/size] public float tempoPorSpawn;[size=14][/size] void Update (){[size=14][/size] cronometro += Time.deltaTime;[size=14][/size] if (cronometro >= tempoPorSpawn) {[size=14][/size] Instantiate(Objetos[Random.Range (0,Objetos.Length)],Destinos[Random.Range (0,Destinos.Length)].transform.position,transform.rotation);[size=14][/size] cronometro = 0;[size=14][/size] }[size=14][/size] }[size=14][/size]}
vitorhugo- Membro
- PONTOS : 2798
REPUTAÇÃO : 13
Idade : 23
Respeito as regras :
Re: Script de Spawn Aleatório
não tó conseguindo postar o script,mas aqui está o link de onde eu peguei ele:https://www.schultzgames.com/t10-tutorial-spawn-de-objetos-aleatorios-em-lugares-aleatorios?highlight=spawnvitorhugo escreveu:Desculpe o script bugou,aqui está ele:vitorhugo escreveu:Boa Tarde,eu tó querendo modificar um script de spawn,eu tó usando esse script que eu achei aqui mesmo no fórum,feito pelo próprio Marcos,o script pega os objetos que eu coloco nele e instância de forma aleatória nos pontos de spawn que eu coloquei dentro de um intervalo de tempo,só que eu queria alterar ele para que ele funcionasse da seguinte forma:ele instância apenas um objeto por ponto de spawn,queria que o script verificasse também se já existe um objeto naquele ponto de spawn para que ele não repetisse dois objetos no mesmo lugar,já tentei de tudo,mas nunca dava certo e quando dava,funcionava de uma forma estranha e bugada,alguém pode me ajudar
- Código:
using UnityEngine;[size=14][/size]using System.Collections;[size=14][/size]public class Instanciador : MonoBehaviour {[size=14][/size] public Transform[] Destinos; // linke os destinos aleatorios aqui[size=14][/size] public GameObject[] Objetos; // linke os objetos aleatorios aqui[size=14][/size] private float cronometro;[size=14][/size] public float tempoPorSpawn;[size=14][/size] void Update (){[size=14][/size] cronometro += Time.deltaTime;[size=14][/size] if (cronometro >= tempoPorSpawn) {[size=14][/size] Instantiate(Objetos[Random.Range (0,Objetos.Length)],Destinos[Random.Range (0,Destinos.Length)].transform.position,transform.rotation);[size=14][/size] cronometro = 0;[size=14][/size] }[size=14][/size] }[size=14][/size]}
vitorhugo- Membro
- PONTOS : 2798
REPUTAÇÃO : 13
Idade : 23
Respeito as regras :
Re: Script de Spawn Aleatório
Você vai ter que usar algum sistema de checagem em lista para não repetir o que já instanciou:
https://www.schultzgames.com/t5568-tutorial-gerar-numeros-aleatorios-sem-repetir-metodo-com-lista
A minha dúvida é, você vai instanciar vários objetos em várias posições, ou apenas um objeto em várias posições?
https://www.schultzgames.com/t5568-tutorial-gerar-numeros-aleatorios-sem-repetir-metodo-com-lista
A minha dúvida é, você vai instanciar vários objetos em várias posições, ou apenas um objeto em várias posições?
Re: Script de Spawn Aleatório
Eu quero instanciar apenas um objeto por spawn?MarcosSchultz escreveu:Você vai ter que usar algum sistema de checagem em lista para não repetir o que já instanciou:
https://www.schultzgames.com/t5568-tutorial-gerar-numeros-aleatorios-sem-repetir-metodo-com-lista
A minha dúvida é, você vai instanciar vários objetos em várias posições, ou apenas um objeto em várias posições?
vitorhugo- Membro
- PONTOS : 2798
REPUTAÇÃO : 13
Idade : 23
Respeito as regras :
Re: Script de Spawn Aleatório
Eu queria instanciar um objeto por spawn,em cada spawn instanciasse apenas um objeto sem repetir.vitorhugo escreveu:Eu quero instanciar apenas um objeto por spawn?MarcosSchultz escreveu:Você vai ter que usar algum sistema de checagem em lista para não repetir o que já instanciou:
https://www.schultzgames.com/t5568-tutorial-gerar-numeros-aleatorios-sem-repetir-metodo-com-lista
A minha dúvida é, você vai instanciar vários objetos em várias posições, ou apenas um objeto em várias posições?
vitorhugo- Membro
- PONTOS : 2798
REPUTAÇÃO : 13
Idade : 23
Respeito as regras :
Re: Script de Spawn Aleatório
Tente isto:
Mas o número de instâncias deve ser o mesmo do que o número de destinos.
- Código:
using UnityEngine;
using System.Collections;
public class Spawn : MonoBehaviour {
public Transform[] Destinos; // linke os destinos aleatorios aqui
public GameObject[] Objetos; // linke os objetos aleatorios aqui
void Start(){
if (Destinos.Length == Objetos.Length) {
for (int x = 0; x < Objetos.Length; x++) {
if (Objetos [x] && Destinos [x]) {
Instantiate (Objetos [x], Destinos [x].transform.position, transform.rotation);
}
}
} else {
Debug.LogError ("As listas tem numeros de elementos diferentes");
}
}
}
Mas o número de instâncias deve ser o mesmo do que o número de destinos.
Tópicos semelhantes
» [DUVIDA] SPAWN DE TERRENO ALEATORIO!
» Spawn de inimigos Aleatorio
» Como parar o spawn aleatório?
» spawn aleatorio pelo mapa
» Banco de dados Aleatorio
» Spawn de inimigos Aleatorio
» Como parar o spawn aleatório?
» spawn aleatorio pelo mapa
» Banco de dados Aleatorio
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos