public void Populate3DLevel(int xPos, int zPos, string id) { Vector3 spawnPos = new Vector3(transform.position.x + xPos, transform.position.y, transform.position.z + zPos); GameObject newfloor = null; GameObject newobject = null; switch (id[0]) { case 'P': Debug.Log("player made"); newobject = Instantiate <GameObject>(_playerOBJ, spawnPos, _playerOBJ.transform.rotation, transform); newobject.AddComponent <Player>(); newobject.GetComponent <Player>().Init(xPos, zPos); GridHandler.AddObjectToGrid(xPos, zPos, newobject.GetComponent <Player>()); newfloor = Instantiate <GameObject>(_floorOBJ, spawnPos, _floorOBJ.transform.rotation, transform); break; case 'O': Debug.Log("tile made"); newobject = null; newfloor = Instantiate <GameObject>(_floorOBJ, spawnPos, _floorOBJ.transform.rotation, transform); break; case 'L': Debug.Log("light source made"); string[] letters1 = Regex.Split(id, ":"); newobject = Instantiate <GameObject>(_yLightHouseOBJ, spawnPos, _yLightHouseOBJ.transform.rotation, transform); newobject.AddComponent <TestObjectScript>(); GridHandler.AddObjectToGrid(xPos, zPos, newobject.GetComponent <TestObjectScript>()); if (letters1[1] == "S") { newobject.transform.Rotate(Vector3.up, 90); } else if (letters1[1] == "W") { newobject.transform.Rotate(Vector3.up, 180); } else if (letters1[1] == "N") { newobject.transform.Rotate(Vector3.up, 270); } newfloor = Instantiate <GameObject>(_floorOBJ, spawnPos, _floorOBJ.transform.rotation, transform); break; case 'B': Debug.Log("bridge made"); string[] letters2 = Regex.Split(id, ":"); newobject = null; newfloor = Instantiate <GameObject>(_bridgeOBJ, spawnPos, _bridgeOBJ.transform.rotation, transform); if (letters2[1] == "V") { newfloor.transform.Rotate(Vector3.up, 90); } //add script to brdige to do cool color stuff break; case 'W': Debug.Log("wall made"); string[] letters3 = Regex.Split(id, ":"); newobject = Instantiate <GameObject>(_wallOBJ, spawnPos, _wallOBJ.transform.rotation, transform); if (letters3[1] == "N") { newobject.transform.Rotate(Vector3.up, 90); } else if (letters3[1] == "E") { newobject.transform.Rotate(Vector3.up, 180); } else if (letters3[1] == "S") { newobject.transform.Rotate(Vector3.up, 270); } newfloor = null; break; default: Debug.Log("nothing made"); newobject = null; newfloor = null; break; } _objectTracker[xPos, zPos] = newobject; _floorTracker[xPos, zPos] = newfloor; }