Question by
UnityEdwardRHunter · Dec 04, 2015 at 04:00 PM ·
objectsrandomize
How to place gameobjects in random, but unique positions...
I've reviewed a lot of related questions and answers, but am still stuck.
I've placed a number of empty game objects around and I'm able to get them into an array, and randomly select their transform.position to place a prefab.
The problem is, the code occasionally chooses the same position as a previous placement. How do I ensure that once a gameobjects position has already been chosen, that it is not chosen again?
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class PickupManager : MonoBehaviour {
public int levelPickupMax;
private int pickupLocationCount;
public GameObject pickupTemplate;
public GameObject pickupPrefab;
private Vector3 lastRandomLocation;
private GameObject[] pickupPointLocations;
void Start () {
//get the location of all the pickup points
pickupPointLocations = GameObject.FindGameObjectsWithTag ("PickupPoint");
PositionPickups ();
}
int GetRandom(int low, int high){
int r = Random.Range (low,high);
return r;
}
void PositionPickups(){
//for the number of max pickups for the level
for (int i= 1; i <= levelPickupMax;i++)
{
int randIndex = GetRandom (1,pickupPointLocations.Length);
Vector3 rlocation = pickupPointLocations[randIndex].transform.position;
Instantiate(pickupPrefab,rlocation,Quaternion.identity);
}
}
}
Comment
Your answer
Follow this Question
Related Questions
How should i go about having an object have 2 clickable areas? 2 Answers
Multi-Textured objects in unity? 1 Answer
My Brain is fogged: How do I move a networked object with user input 0 Answers
How can I make an endless zoom with endless objects appearing and an endless environment? 1 Answer
Floating Object 0 Answers