Here is the UnityScript implementation of the method i use to generate a randomly tiled background, the problem i'm having relates to how to translate the call to the newTile method in c#, so far i've had no luck fiddling... can anyone point me in the correct direction?
Thanks
#pragma strict
import System.Collections.Generic;
var mapSizeX : int;
var mapSizeY : int;
var xOffset : float;
var yOffset : float;
var tilePrefab : GameObject;
var tilePrefab2 : GameObject;
var tiles : List.<Transform> = new List.<Transform>();
function Start () {
var i : int = 0;
var xIndex : int = 0;
var yIndex : int = 0;
xOffset = 2.69;
yOffset = -1.97;
while(yIndex < mapSizeY){
xIndex = 0;
while(xIndex < mapSizeX){
var z = Random.Range(0, 5);
if (z > 2)
{
var newTile : GameObject = Instantiate (tilePrefab, Vector3(xIndex*0.64 - (xOffset * (mapSizeX/10)), yIndex*-0.64 - (yOffset * (mapSizeY/10)), 0), Quaternion.identity);
tiles.Add(newTile.transform);
newTile.transform.parent = transform;
newTile.transform.name = "tile_"+i;
i++;
xIndex++;
}
if (z < 2)
{
var newTile2 : GameObject = Instantiate (tilePrefab2, Vector3(xIndex*0.64 - (xOffset * (mapSizeX/10)), yIndex*-0.64 - (yOffset * (mapSizeY/10)), 0), Quaternion.identity);
tiles.Add(newTile2.transform);
newTile2.transform.parent = transform;
newTile2.transform.name = "Ztile_"+i;
i++;
xIndex++;
}
}
yIndex++;
}
}
C# Version [Fixed]
using UnityEngine;
using System.Collections;
public class LevelGen : MonoBehaviour {
public int mapSizeX;
public int mapSizeY;
public float xOffset;
public float yOffset;
public GameObject tilePrefab;
public GameObject tilePrefab2;
int i;
public System.Collections.Generic.List<Transform> tiles = new System.Collections.Generic.List<Transform>();
// Use this for initialization
void Start () {
int i = 0;
int xIndex = 0;
int yIndex = 0;
xOffset = 1.58f;
yOffset = -1.156f;
while (yIndex < mapSizeY)
{
xIndex = 0;
while(xIndex < mapSizeX) {
int z = Random.Range(0, 5);
if (z > 5)
{
GameObject newTile = (GameObject)Instantiate(tilePrefab, new Vector3(xIndex*0.64f - (xOffset * (mapSizeX/10.0f)), yIndex*-0.64f - (yOffset * (mapSizeY/10.0f)), 0), Quaternion.identity);
tiles.Add(newTile.transform);
newTile.transform.parent = transform;
newTile.transform.name = "tile_"+i;
i++;
xIndex++;
}
if (z < 5)
{
GameObject newTile2 = (GameObject)Instantiate(tilePrefab, new Vector3(xIndex*0.64f - (xOffset * (mapSizeX/10.0f)), yIndex*-0.64f - (yOffset * (mapSizeY/10.0f)), 0), Quaternion.identity);
tiles.Add(newTile2.transform);
newTile2.transform.parent = transform;
newTile2.transform.name = "tile2_"+i;
i++;
xIndex++;
}
}
yIndex++;
}
}
// Update is called once per frame
void Update () {
}
}