- Home /
My randomly generated slope game doesn't seem to work?
So made a prototype of this game where different slope segments would randomly generate and you would slide down, avoiding obstacles and such. It just doesn't seem to work at all though. Gaps appear throughout the level, slopes are instantiated in spots where there already is one. I've been trying to fix this for nearly two hours now and would really appreciate some help! The code is shown in the video! Code:
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class SlopeGeneration : MonoBehaviour { public GameObject slope1; public GameObject slope2; public GameObject slope3; public GameObject spawnon; public GameObject player; private float distance_; private int randomslope; private GameObject slopestag; private bool can1; private bool can2; private bool can3;
void Start()
{
spawnon.transform.position = new Vector3(0, 0, 0);
can1 = true;
can2 = true;
can3 = true;
}
void FixedUpdate()
{
distance_ = Vector3.Distance(player.transform.position, spawnon.transform.position);
if(distance_ < 300)
{
spawnPlatform();
}
destroyiftoofar();
}
private void spawnPlatform()
{
randomslope = Random.Range(0, 3);
Debug.Log(randomslope);
if(randomslope == 0 && can1 == true)
{
Instantiate(slope1);
slope1.transform.position = spawnon.transform.position;
spawnon.transform.position = spawnon.transform.position + new Vector3(0, -25.88f, 96.6f);
can1 = false;
can2 = true;
can3 = true;
}
else if (randomslope == 1 && can2 == true)
{
Instantiate(slope2);
slope2.transform.position = spawnon.transform.position;
spawnon.transform.position = spawnon.transform.position + new Vector3(0, -25.88f, 96.6f);
can1 = true;
can2 = false;
can3 = true;
}
else if (randomslope == 2 && can3 == true)
{
Instantiate(slope3);
slope3.transform.position = spawnon.transform.position;
spawnon.transform.position = spawnon.transform.position + new Vector3(0, -25.88f, 96.6f);
can1 = true;
can2 = true;
can3 = false;
}
}
private void destroyiftoofar()
{
if(Vector3.Distance(gameObject.transform.position, player.transform.position) > 600)
{
Object.Destroy(gameObject);
}
}
}
Your answer
Follow this Question
Related Questions
Keep constant number of prefabs 1 Answer
Unity not Instantiating Prefabs Properly 0 Answers
How do I Instantiate a prefab to touch and still update a score? 1 Answer
Prefabs Transforms LookAt 0 Answers
All instances of a an object are being updated at once instead of the object in question. 1 Answer