Hello everyone, I have two questions to which I can’t find a solution. When my obstacles are generated, it usually happens that sometimes they are generated one on top of the other, how do I make this not happen? The next question is that one of these obstacles is floating but as the map continues to be generated, the obstacle never appears floating again, it appears on the ground, how do I solve this?
This is my code
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class GameManager : MonoBehaviour
{
public GameObject menuPrincipal;
public GameObject menuGameOver;
public float velocidad = 2;
public GameObject col;
public GameObject piedra1;
public GameObject aleteo;
public GameObject aleteo2;
public Renderer fondo;
public bool gameOver = false;
public bool start = false;
public List<GameObject> cols;
public List<GameObject> obstaculos;
// Start is called before the first frame update
void Start()
{
// Crear Mapa
for (int i = 0; i < 21; i++)
{
cols.Add(Instantiate(col, new Vector2(-8 + i, -5), Quaternion.identity));
}
// Crear Piedras
obstaculos.Add(Instantiate(piedra1, new Vector2(-3, -3), Quaternion.identity));
obstaculos.Add(Instantiate(aleteo, new Vector2(5, -3), Quaternion.identity));
obstaculos.Add(Instantiate(aleteo2, new Vector2(14, -1.6f), Quaternion.identity));
}
// Update is called once per frame
void Update()
{
if (start == false)
{
if (Input.GetKeyDown(KeyCode.X))
{
start = true;
}
}
if (start == true && gameOver == true)
{
menuGameOver.SetActive(true);
if (Input.GetKeyDown(KeyCode.X))
{
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
}
}
if (start == true && gameOver == false)
{
menuPrincipal.SetActive(false);
fondo.material.mainTextureOffset = fondo.material.mainTextureOffset + new Vector2(0.1f, 0) * Time.deltaTime;
// Mover Mapa
for (int i = 0; i < cols.Count; i++)
{
if (cols*.transform.position.x <= -10)*
{
cols*.transform.position = new Vector3(10, -5, 0);*
}
cols.transform.position = cols_.transform.position + new Vector3(-1, 0, 0) * Time.deltaTime * velocidad;
}
// Mover Obstaculos
for (int i = 0; i < obstaculos.Count; i++)
{
if (obstaculos*.transform.position.x <= -10)*
{
float randomObs = Random.Range(11, 18);
obstaculos*.transform.position = new Vector3(randomObs, -3, 0);*
}
obstaculos.transform.position = obstaculos.transform.position + new Vector3(-1, 0, 0) * Time.deltaTime * velocidad;
}
}
}
}_