public void Generate() { Kill(); int size = (int)Mathf.Sqrt(number); for (int i = 0; i < size; ++i) { for (int j = 0; j < size; ++j) { GameObject story = new GameObject(); story.transform.SetParent(transform); story.name = "roof_" + i + "," + j; story.transform.position = new Vector3(i * 1.1f, 0, j * 1.1f); GameObject obj = Instantiate(clone, new Vector3(i * 2, 0, j * 2), Quaternion.identity); obj.transform.SetParent(story.transform); RoofGenerator g = obj.GetComponent <RoofGenerator>(); g.height = Random.Range(0.5f, 2f); g.semiHeight = Random.Range(0.5f, g.height); g.xSizeA = Random.Range(0.5f, 1.6f); g.xSizeB = Random.Range(0.5f, g.xSizeA); g.zSizeA = Random.Range(0.5f, 1.6f); g.zSizeB = Random.Range(0.5f, g.zSizeA); g.topSize = Random.Range(0f, g.zSizeB); g.GenerateRoof(); } } }
public override void OnInspectorGUI() { RoofGenerator roofGen = (RoofGenerator)target; if (DrawDefaultInspector()) { if (roofGen.autoUpdate) { roofGen.GenerateRoof(); } } if (GUILayout.Button("Generate")) { roofGen.GenerateRoof(); } }
public void Build() { DestroyHouse(); int Storeys = Random.Range(minPieces, maxPieces); float height = .0f; GameObject clone; //Objects.transform.localScale = new Vector3(Objects.transform.localScale.x, 0.5f, Objects.transform.localScale.z); clone = SpawnObject(Objects); height += clone.transform.localScale.y; clone.transform.parent.position += new Vector3(0, height / 2, 0); clone.name = "Ground"; spawnDoor(clone); //spawnWindow(clone); storeys.Add(clone); for (int i = 1; i < Storeys; i++) { clone = SpawnObject(storeys[storeys.Count - 1]); height += clone.transform.localScale.y / 2; PositionShift(clone, height); //spawnWindow(clone); ComparePosition(clone, storeys[storeys.Count - 1]); height += clone.transform.localScale.y / 2; clone.name = "Storey " + i; storeys.Add(clone); } GameObject roof = Instantiate(roofPrefab); roof.transform.position = new Vector3(clone.transform.position.x, height, clone.transform.position.z); roof.transform.SetParent(transform); RoofGenerator g = roof.GetComponent <RoofGenerator>(); g.height = Random.Range(0.5f, 2f); g.semiHeight = Random.Range(0.5f, Random.Range(0.5f, g.height)); g.xSizeA = Random.Range(clone.transform.localScale.x + 0.05f, clone.transform.localScale.x + 0.3f); g.xSizeB = Random.Range(0.5f, g.xSizeA); g.zSizeA = Random.Range(clone.transform.localScale.z + 0.05f, clone.transform.localScale.z + 0.3f); g.zSizeB = Random.Range(0.5f, Random.Range(0.5f, g.zSizeA)); g.topSize = Random.Range(0f, Random.Range(0f, g.zSizeB)); g.GenerateRoof(); }