Script voor de objectpooler
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Collections;
using System.Collections.Generic;
public class ObjectPooler : MonoBehaviour {
public GameObject pooledObject;
public int pooledAmount;
List <GameObject> pooledObjects;
// Use this for initialization
void Start ()
{
pooledObjects = new List <GameObject>();
void Start ()
{
pooledObjects = new List <GameObject>();
for (int i = 0; i < pooledAmount; i++)
{
GameObject obj = Instantiate((GameObject)pooledObject);
obj.SetActive(false);
pooledObjects.Add(obj);
}
}
{
GameObject obj = Instantiate((GameObject)pooledObject);
obj.SetActive(false);
pooledObjects.Add(obj);
}
}
public GameObject GetPooledObject ()
{
for (int i = 0; i < pooledObjects.Count; i++)
{
if(!pooledObjects[i].activeInHierarchy)
{
return pooledObjects[i];
}
}
{
for (int i = 0; i < pooledObjects.Count; i++)
{
if(!pooledObjects[i].activeInHierarchy)
{
return pooledObjects[i];
}
}
GameObject obj = Instantiate((GameObject)pooledObject);
obj.SetActive(false);
pooledObjects.Add(obj);
return obj;
}
obj.SetActive(false);
pooledObjects.Add(obj);
return obj;
}
}
PlatformGenerator script
using UnityEngine;
using System.Collections;
using System.Collections;
public class PlatformGenerator : MonoBehaviour {
public GameObject platform;
public Transform platformGeneratePoint;
public float distanceBetween;
public Transform platformGeneratePoint;
public float distanceBetween;
public float timerSwitchPlatorm;
private float PlatformWith;
bool platformCheck;
bool platformCheck;
private int platformSelector;
//public GameObject[] thePlatforms;
private float[] platformWihts;
//public GameObject[] thePlatforms;
private float[] platformWihts;
public ObjectPooler[] theObjectPools;
//private CoinGenerator theCoinGenerator;
//private CoinGenerator theCoinGenerator;
//public float randomCoinSpawn;
// Use this for initialization
void Start ()
{
//PlatformWith = platform.GetComponent<BoxCollider>().size.x;
platformWihts = new float[theObjectPools.Length];
for (int i = 0; i < theObjectPools.Length; i++)
{
platformWihts[i] = theObjectPools[i].pooledObject.GetComponent<BoxCollider>().size.x;
}
void Start ()
{
//PlatformWith = platform.GetComponent<BoxCollider>().size.x;
platformWihts = new float[theObjectPools.Length];
for (int i = 0; i < theObjectPools.Length; i++)
{
platformWihts[i] = theObjectPools[i].pooledObject.GetComponent<BoxCollider>().size.x;
}
//theCoinGenerator = FindObjectOfType<CoinGenerator>();
timerSwitchPlatorm = 1;
platformSelector = 1;
}
// Update is called once per frame
void Update ()
{
//Debug.Log("selected platform: " + platformSelector + ", timer: " + timerSwitchPlatorm);
if (transform.position.z < platformGeneratePoint.position.z)
{
if (timerSwitchPlatorm > 0)
{
timerSwitchPlatorm -= Time.deltaTime;
}
else
{
platformSelector = Random.Range(0, theObjectPools.Length );
timerSwitchPlatorm = 1;
}
platformSelector = 1;
}
// Update is called once per frame
void Update ()
{
//Debug.Log("selected platform: " + platformSelector + ", timer: " + timerSwitchPlatorm);
if (transform.position.z < platformGeneratePoint.position.z)
{
if (timerSwitchPlatorm > 0)
{
timerSwitchPlatorm -= Time.deltaTime;
}
else
{
platformSelector = Random.Range(0, theObjectPools.Length );
timerSwitchPlatorm = 1;
}
transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z + (platformWihts[platformSelector] / 2) + distanceBetween);
//Instantiate(/*platform*/thePlatforms[platformSelector], transform.position, transform.rotation);
switch (platformSelector)
{
case 0:
GameObject newPlatform = theObjectPools[platformSelector].GetPooledObject();
newPlatform.transform.position = transform.position;
newPlatform.transform.rotation = transform.rotation;
newPlatform.SetActive(true);
{
case 0:
GameObject newPlatform = theObjectPools[platformSelector].GetPooledObject();
newPlatform.transform.position = transform.position;
newPlatform.transform.rotation = transform.rotation;
newPlatform.SetActive(true);
transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z + (platformWihts[platformSelector] / 2));
/*
if (Random.Range(0f, 10f) < randomCoinSpawn)
{
theCoinGenerator.SpwanCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
gameObject.SetActive(true);
}
*/
break;
case 1:
GameObject newPlatform1 = theObjectPools[platformSelector].GetPooledObject();
/*
if (Random.Range(0f, 10f) < randomCoinSpawn)
{
theCoinGenerator.SpwanCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
gameObject.SetActive(true);
}
*/
break;
case 1:
GameObject newPlatform1 = theObjectPools[platformSelector].GetPooledObject();
newPlatform1.transform.position = transform.position;
newPlatform1.transform.rotation = transform.rotation;
newPlatform1.SetActive(true);
newPlatform1.transform.rotation = transform.rotation;
newPlatform1.SetActive(true);
transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z + (platformWihts[platformSelector] / 2));
/*
if (Random.Range(0f, 10f) < randomCoinSpawn)
{
theCoinGenerator.SpwanCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
gameObject.SetActive(true);
}
*/
break;
case 2:
GameObject newPlatform2 = theObjectPools[platformSelector].GetPooledObject();
GameObject newPlatform2 = theObjectPools[platformSelector].GetPooledObject();
newPlatform2.transform.position = transform.position;
newPlatform2.transform.rotation = transform.rotation;
newPlatform2.SetActive(true);
newPlatform2.transform.rotation = transform.rotation;
newPlatform2.SetActive(true);
transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z + (platformWihts[platformSelector] / 2));
/*
if (Random.Range(0f, 10f) < randomCoinSpawn)
{
theCoinGenerator.SpwanCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
gameObject.SetActive(true);
}
*/
break;
if (Random.Range(0f, 10f) < randomCoinSpawn)
{
theCoinGenerator.SpwanCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
gameObject.SetActive(true);
}
*/
break;
case 3:
GameObject newPlatform3 = theObjectPools[platformSelector].GetPooledObject();
GameObject newPlatform3 = theObjectPools[platformSelector].GetPooledObject();
newPlatform3.transform.position = transform.position;
newPlatform3.transform.rotation = transform.rotation;
newPlatform3.SetActive(true);
newPlatform3.transform.rotation = transform.rotation;
newPlatform3.SetActive(true);
transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z + (platformWihts[platformSelector] / 2));
/*
if (Random.Range(0f, 10f) < randomCoinSpawn)
{
theCoinGenerator.SpwanCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
gameObject.SetActive(true);
}
*/
break;
case 4:
GameObject newPlatform4 = theObjectPools[platformSelector].GetPooledObject();
GameObject newPlatform4 = theObjectPools[platformSelector].GetPooledObject();
newPlatform4.transform.position = transform.position;
newPlatform4.transform.rotation = transform.rotation;
newPlatform4.SetActive(true);
newPlatform4.transform.rotation = transform.rotation;
newPlatform4.SetActive(true);
transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z + (platformWihts[platformSelector] / 2));
/*
if (Random.Range(0f, 10f) < randomCoinSpawn)
{
theCoinGenerator.SpwanCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
gameObject.SetActive(true);
}
*/
break;
}
}
}
}
if (Random.Range(0f, 10f) < randomCoinSpawn)
{
theCoinGenerator.SpwanCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
gameObject.SetActive(true);
}
*/
break;
}
}
}
}