Spawnar Objetos aleatorios em lugares pre-definidos
4 participantes
Página 1 de 1
Spawnar Objetos aleatorios em lugares pre-definidos
Oi boa tarde,
Estou fazendo um jogo de terror para celular parecido com "Granny",
mas encontrei um problema.
Pesquisei em varios lugares mas nao encontrei a solução.
Eu quero que objetos(exemplo: chave, pá, baterias,etc) surjam em lugares pre-definidos,
ou seja, que eles spawnen por exemplo em gavetas ou armarios.
E tambem que eles nunca spawnen mais que uma vez por partida,(pois so pode ter uma chave, pá, ou bateria).
Agradeço muito.
Estou fazendo um jogo de terror para celular parecido com "Granny",
mas encontrei um problema.
Pesquisei em varios lugares mas nao encontrei a solução.
Eu quero que objetos(exemplo: chave, pá, baterias,etc) surjam em lugares pre-definidos,
ou seja, que eles spawnen por exemplo em gavetas ou armarios.
E tambem que eles nunca spawnen mais que uma vez por partida,(pois so pode ter uma chave, pá, ou bateria).
Agradeço muito.
gabrielgame6772- Iniciante
- PONTOS : 1496
REPUTAÇÃO : 2
Respeito as regras :
Re: Spawnar Objetos aleatorios em lugares pre-definidos
- Código:
public Transform[] posicoes;
public Transform objeto;
void Start()
{
objeto.position = posicoes[Random.Range(0, posicoes.Lenght)];
}
testa ae pra ver se funciona
JulioWinchester- MembroAvançado
- PONTOS : 2093
REPUTAÇÃO : 48
Idade : 20
Áreas de atuação : https://linktr.ee/juliopepe
Respeito as regras :
Re: Spawnar Objetos aleatorios em lugares pre-definidos
JulioWinchester escreveu:
- Código:
public Transform[] posicoes;
public Transform objeto;
void Start()
{
objeto.position = posicoes[Random.Range(0, posicoes.Lenght)];
}
testa ae pra ver se funciona
Funcionou nao
gabrielgame6772- Iniciante
- PONTOS : 1496
REPUTAÇÃO : 2
Respeito as regras :
Re: Spawnar Objetos aleatorios em lugares pre-definidos
mesmo erroSauloeArthur escreveu:Tente trocar Lenght por Length
gabrielgame6772- Iniciante
- PONTOS : 1496
REPUTAÇÃO : 2
Respeito as regras :
Re: Spawnar Objetos aleatorios em lugares pre-definidos
na void start, o erro esta vindo pq esta saindo um indice Transform ao inves de position
objeto.position = posicoes[Random.Range(0, posicoes.Length)];
correçao:
boa tarde
objeto.position = posicoes[Random.Range(0, posicoes.Length)];
correçao:
- Código:
objeto.position = posicoes[Random.Range(0, posicoes.Length)].position;
boa tarde
Re: Spawnar Objetos aleatorios em lugares pre-definidos
FelipeSouza11 escreveu:na void start, o erro esta vindo pq esta saindo um indice Transform ao inves de position
objeto.position = posicoes[Random.Range(0, posicoes.Length)];
correçao:
- Código:
objeto.position = posicoes[Random.Range(0, posicoes.Length)].position;
boa tarValeu ajudou bastante, mas quando eu boto mais de um objeto, eles nascem no mesmo lugar. E preciso que eles spwanen em lugares aleatorios mas nunca dois em um so lugar.
gabrielgame6772- Iniciante
- PONTOS : 1496
REPUTAÇÃO : 2
Respeito as regras :
Re: Spawnar Objetos aleatorios em lugares pre-definidos
gabrielgame6772 escreveu:FelipeSouza11 escreveu:na void start, o erro esta vindo pq esta saindo um indice Transform ao inves de position
objeto.position = posicoes[Random.Range(0, posicoes.Length)];
correçao:
- Código:
objeto.position = posicoes[Random.Range(0, posicoes.Length)].position;
boa tarValeu ajudou bastante, mas quando eu boto mais de um objeto, eles nascem no mesmo lugar. E preciso que eles spwanen em lugares aleatorios mas nunca dois em um so lugar.
SE ALGUEM PUDER ME AJUDAR
gabrielgame6772- Iniciante
- PONTOS : 1496
REPUTAÇÃO : 2
Respeito as regras :
Re: Spawnar Objetos aleatorios em lugares pre-definidos
boa tarde brow , depois de quase 1 semana tentando montar minha propria lógica eu felizmente consegui, pesquisei tambem ,más na maioria raramente os objetos spawnaram no mesmo lugar, nao sei se o meu esta perfeito mas deve dá pro gasto
Obs: estou usando os items que são prefabs,
é só o que consegui,espero que ajude
Obs: estou usando os items que são prefabs,
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PrefabsSpawn : MonoBehaviour
{
[Header("Digite o numero maximo de items")]
int maxItems = 4; //max de items que vai ser aleatoriamentes spawnado
public GameObject[] ItemsPrefabs; //Arraste os prefabs pro inspector
public Transform[] RandomLocalsItems; //Transform. Locais de spawnPoint
public List<Transform> lista = new List<Transform>(); //Lista de transform os pontos de spawn serao armazenados aqui
private float tempo = 0.02f;
// Start is called before the first frame update
void Start()
{
SpawnItems();
}
void SpawnItems()
{
StartCoroutine("Spawn");
}
//Ienumerator Coroutine
IEnumerator Spawn() {
yield return new WaitForSeconds(tempo);
if (lista.Count < maxItems)//calcular se a quantidade contida na lista é menor que o maximo de items
{
var index = Random.Range(0, maxItems); //sair um numero aleatorio [0- maxitems ou seja 4]
for (int i = 0; i < maxItems; i++)
{
if (!lista.Contains(RandomLocalsItems[index])) //se a lista nao conter o numero sorteado adicionar o local de spawn correspondete ao sortedo
{
lista.Add(RandomLocalsItems[index]); //add o local a lista
// ol.Add(ItemsPrefabs[index]);
}
else
{
//se ja conter o numero sorteado, chamar novamente o coroutine paara sortear novamente
StartCoroutine("Spawn");
}
}
}
else
{
for(int x=0; x<lista.Count; x++)
{
if (x < lista.Count)
{
GameObject ob = Instantiate(ItemsPrefabs[x], lista[x].position, Quaternion.identity);
StopCoroutine("Spawn");
}
}
}
}
}
é só o que consegui,espero que ajude
Tópicos semelhantes
» [TUTORIAL] Spawn de objetos aleatorios em lugares aleatorios
» Spawnar Paginas em Lugares aleatórios, tipo Slender
» [TUTORIAL] Mover objetos 2D e conectar em lugares específicos
» [RESLVIDO] Unity - "transform.SetParent()" em 2 objetos move outros objetos
» SPAWNAR OBJETOS EM DETERMINADO LUGAR
» Spawnar Paginas em Lugares aleatórios, tipo Slender
» [TUTORIAL] Mover objetos 2D e conectar em lugares específicos
» [RESLVIDO] Unity - "transform.SetParent()" em 2 objetos move outros objetos
» SPAWNAR OBJETOS EM DETERMINADO LUGAR
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos