private void Generate() { _manager = FindObjectOfType <MANAGER.CityManager>(); myRenderer = this.GetComponent <MeshRenderer>(); myMesh = this.GetComponent <MeshFilter>(); this.GetComponent <MeshCollider>().enabled = false; }
void OnEnable() { if (_instance == null) { _instance = this; } else { Destroy(gameObject); }; }
private void PlaceBlock(int slope, int nextRotation, int x, int y, int z) { Vector3 incVector = Vector3.right * inc_x + Vector3.up * inc_y + Vector3.forward * inc_z; Quaternion nextQuat = Quaternion.Euler(0f, nextRotation, 0f); //Debug.Log(CityManager.CheckTile(x + inc_x, y + inc_y, z + inc_z)); if (CityManager.CheckTile(x + inc_x, y + inc_y, z + inc_z) == false) { CityManager.floorOccupied[x + inc_x, y + inc_y, z + inc_z] = true; child = Instantiate(tilePrefab, transform.position + (incVector * CityManager.size), nextQuat); child.parent = this.transform; child.GetComponent <RouteTile>().Initialize(slope, nextRotation); recursionCount++; } else if (recursionCount > 0) { Destroy(this); } }
public void Begin() { _city = MANAGER.CityManager.Instance; if (recursion <= 0) { Destroy(this.gameObject); } else { _size = MANAGER.CityManager.size; switch (tileType) { case 0: //meshstuff break; case 1: //meshstuff break; case 2: //meshstuff break; default: posX = MANAGER.CityManager.floorOccupied.GetLength(0) / 2; posY = 0; posZ = MANAGER.CityManager.floorOccupied.GetLength(2) / 2; float xPos = posX - MANAGER.CityManager.floorOccupied.GetLength(0) / 2; float zPos = posZ - MANAGER.CityManager.floorOccupied.GetLength(2) / 2; this.transform.position = new Vector3((xPos * _size) + _size / 2, (posY * _size), (zPos * _size) + _size / 2); break; } //Debug.Log(posX + " " + posY + " " + posZ); CheckNewTile(); } }