Applying texture to quads on procedural cube

Hey guys, I am getting some weird texture stretching, I have spherized a cube with a random number of faces (which means twice as many triangles) per side and randomized their height from the origin to make my planetoid.

However, I want to apply my texture to each side of the cube before I spherize it.

I will attach my code as I have procedurally generated my cube (basically iterate through x,y,z and if x||y||z = units/2 (units is my number of quads per side) then I place a vector3 at (x,y,z).

I then assigned references to those verts in subcollections based on their position (so my edge/corner vertices are in multiple collections).

I now want to use those collections to assign my texture to that face…

WHAT AM I MISSING?!

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System;


// manipulate indexOf of cubeSides instead!


public class Spherizer : MonoBehaviour {
	public Transform World, cube; 
	MeshFilter worldFilter;
	public float radius = 5f; //IDE
	public float units = 10, limit = 5; //units defined in IDE
	public int smooth = 50; // 0-100 bigger = smoother
	Vector3 cubeOrigin;
	List<Vector2> uvs;
	Mesh mesh;
	// Use this for initialization
	void Start () {		
		MakeSphere();
	}
	
	// Update is called once per frame
	void Update () {
		
        /*for(int i = 0; i < worldFilter.mesh.vertices.Length; i++) {

            Debug.DrawRay(worldFilter.mesh.vertices<em>, worldFilter.mesh.normals _* 2, Color.green);_</em>

}*/
* }*
* public void MakeSphere(){*
* //instantiate global variables*
* World = GameObject.FindGameObjectWithTag(“World”).transform;*
* cubeOrigin = transform.position;*
* limit = units/2;*
* worldFilter = World.gameObject.GetComponent();*

* //instantiate local variables*
* List worldVertices = new List();*
* List worldNormals = new List();*
* List worldTriangles = new List();*
* List uvs = new List();*
* //temp lists*
* List<List> cubeSides = new List<List>();*
* for (int i = 0; i < 6; i++) {*
* cubeSides.Add(new List());*
* }*

* //Build world mesh*
* for (float x=-limit;x<=limit;x++){*
* for (float y=-limit;y<=limit;y++) {*
* for (float z=-limit;z<=limit;z++){*
* if (Math.Abs(x)==limit||Math.Abs(y)==limit||Math.Abs(z)==limit&&!worldVertices.Contains(new Vector3(x,y,z))) {*
* worldVertices.Add(new Vector3(x,y,z)); *
* }*
* }*
* }*
* }*
* foreach (Vector3 vert in worldVertices) {*
* worldNormals.Add(vert.normalized);*
* if (vert.x==limit) {*
* cubeSides[0].Add(vert);*
* }*
* if (vert.y==limit) { *
* cubeSides[1].Add(vert);*
* }*
* if (vert.z==limit) {*
* cubeSides[2].Add(vert);*
* }*
* if (vert.x==-limit) { *
* cubeSides[3].Add(vert);*
* }*
* if (vert.y==-limit) {*
* cubeSides[4].Add(vert);*
* }*
* if (vert.z==-limit) { *
* cubeSides[5].Add(vert);*
* }*
* }*
* for (int side = 0;side<cubeSides.Count;side++) {*
* switch (side) {*
* case 0: //x=5*
* for (int i = 0;i<(cubeSides[side].Count);i++){*
if (cubeSides[side].y<limit&&cubeSides[side].z<limit) {
_ worldTriangles.Add(worldVertices.IndexOf(cubeSides[side]));
* worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+(int)units+2]));
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+1]));*_

_ worldTriangles.Add(worldVertices.IndexOf(cubeSides[side]));
* worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+(int)units+1]));
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+(int)units+2]));
}
}
break;
case 1: //y=5*

* for (int i = 0;i<(cubeSides[side].Count);i++){
if (cubeSides[side].x<limit&&cubeSides[side].z<limit) {
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side]));
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+1]));
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+(int)units+2]));*_

_ worldTriangles.Add(worldVertices.IndexOf(cubeSides[side]));
* worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+(int)units+2]));
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+(int)units+1]));
}
}
break;
case 2: //z=5*

* for (int i = 0;i<(cubeSides[side].Count);i++){
if (cubeSides[side].x<limit&&cubeSides[side].y<limit) {
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side]));
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+(int)units+2]));
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+1]));*_

_ worldTriangles.Add(worldVertices.IndexOf(cubeSides[side]));
* worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+(int)units+1]));
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+(int)units+2]));
}
}
break;
case 3: //x=-5*

* for (int i = 0;i<(cubeSides[side].Count);i++){
if (cubeSides[side].y<limit&&cubeSides[side].z<limit) {
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side]));
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+1]));
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+(int)units+2]));*_

_ worldTriangles.Add(worldVertices.IndexOf(cubeSides[side]));
* worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+(int)units+2]));
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+(int)units+1]));
}
}
break;
case 4: //y=-5*

* for (int i = 0;i<(cubeSides[side].Count);i++){
if (cubeSides[side].x<limit&&cubeSides[side].z<limit) {
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side]));
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+(int)units+2]));
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+1]));*_

_ worldTriangles.Add(worldVertices.IndexOf(cubeSides[side]));
* worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+(int)units+1]));
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+(int)units+2]));
}
}
break;
case 5: //z=-5*

* for (int i = 0;i<(cubeSides[side].Count);i++){
if (cubeSides[side].y<limit&&cubeSides[side].x<limit) {
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side]));
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+1]));
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+(int)units+2]));*_

_ worldTriangles.Add(worldVertices.IndexOf(cubeSides[side]));
* worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+(int)units+2]));
worldTriangles.Add(worldVertices.IndexOf(cubeSides[side][i+(int)units+1]));
}
}
break;
default:
Debug.Log(“Out of Bounds”);
break;
}
}
for(int i = 0;i<worldVertices.Count;i++){
Vector3 vert = worldVertices;
float distance = (cubeOrigin-vert).magnitude;
Vector3 vect = cubeOrigin - vert;
vect = vect.normalized;
vect = ((distance - radius) + UnityEngine.Random.Range(-radius/smooth, radius/smooth));
vert += vect;

worldVertices = vert;
* }
//worldFilter.mesh.RecalculateNormals();
//worldFilter.mesh.RecalculateBounds();
worldFilter.mesh.vertices = worldVertices.ToArray();
worldFilter.mesh.triangles = worldTriangles.ToArray();
worldFilter.mesh.normals = worldNormals.ToArray();
foreach (Vector3 vert in worldVertices) {
//vert.Normalize();
uvs.Add (new Vector2( vert.normalized.x,// / Mathf.PI + 0.5f,
vert.normalized.y));// / Mathf.PI + 0.5f));
}
worldFilter.mesh.uv = uvs.ToArray();
worldFilter.mesh.uv1 = worldFilter.mesh.uv;
worldFilter.mesh.uv2 = worldFilter.mesh.uv;
//World.gameObject.renderer.material.mainTextureScale = new Vector2(units,units);
//Debug.Log(worldFilter.gameObject.GetComponent().name);
}
}*_

[9179-planetoid.jpg|9179]

I ended up rethinking the entire process and scrapping this method.

If anyone finds a solution to this send me a message, otherwise I am retiring this question as a poor implementation of a concept.