using System.Collections; using System.Collections.Generic; using UnityEngine; public class ConstructObject : MonoBehaviour { public static void AddObject(int nO) { float w = DOIT.ConvertStringToNumber(_G.OBJs[nO][6]); float h = DOIT.ConvertStringToNumber(_G.OBJs[nO][7]); float d = DOIT.ConvertStringToNumber(_G.OBJs[nO][8]); float px = DOIT.ConvertStringToNumber(_G.OBJs[nO][15]); float py = DOIT.ConvertStringToNumber(_G.OBJs[nO][16]); float pz = DOIT.ConvertStringToNumber(_G.OBJs[nO][17]); float rx = DOIT.ConvertStringToNumber(_G.OBJs[nO][18]); float ry = DOIT.ConvertStringToNumber(_G.OBJs[nO][19]); float rz = DOIT.ConvertStringToNumber(_G.OBJs[nO][20]); //Color col1 = DOIT.CSc(_G.OBJs[nO][60]); //Color col2 = DOIT.CSc(_G.OBJs[nO][61]); //Color col3 = DOIT.CSc(_G.OBJs[nO][62]); print("float py______________________" + py); //create BASE GameObject BASE = GameObject.CreatePrimitive(PrimitiveType.Cube);//new GameObject(); BASE.transform.localScale = new Vector3(w + 0.2f, h + 1, d + 1); BASE.name = _G.OBJs[nO][0]; BASE.transform.parent = GameObject.Find("SCENE").transform; Destroy(GameObject.Find("New Game Object")); //Model print("_G.OBJs[nO][1]=====" + _G.OBJs[nO][1]); GameObject T = Instantiate(Resources.Load("Objects/" + _G.OBJs[nO][1], typeof(GameObject))) as GameObject; int index = System.Array.IndexOf(_OL.OBJ, _G.SC[0]); _G.addOBJ = _OL.OBJ[index + 1]; float sw = DOIT.ConvertStringToNumber(_OL.OBJ[index + 2]); float sh = DOIT.ConvertStringToNumber(_OL.OBJ[index + 3]); float sd = DOIT.ConvertStringToNumber(_OL.OBJ[index + 4]); T.transform.localScale = new Vector3(w/sw, h/sh, d/sd); T.name = "T1"; T.transform.parent = BASE.transform; T.transform.localRotation = Quaternion.Euler(0, 180, 0); if (T.transform.Find("GREY")) { GameObject GO = T.transform.Find("GREY").gameObject; for (int i = 0; i < GO.transform.childCount; i++) { GO.transform.GetChild(i).GetComponent().material = new Material(Shader.Find("Universal Render Pipeline/Lit")); GO.GetComponent().material.color = Color.grey; GO.transform.GetChild(i).GetComponent().material.SetFloat("_Metallic", 0.3F); GO.transform.GetChild(i).GetComponent().material.SetFloat("_Glossiness", 0.6F); } } if (T.transform.Find("GLASS")) { GameObject GO = T.transform.Find("GLASS").gameObject; for (int i = 0; i < GO.transform.childCount; i++) { GO.transform.GetChild(i).GetComponent().material = Resources.Load("MATERIALS/GLASS") as Material; //BM.GLASS; GO.transform.GetChild(i).GetComponent().material.SetFloat("_Metallic", 0.3F); GO.transform.GetChild(i).GetComponent().material.SetFloat("_Glossiness", 0.6F); } } if (T.transform.Find("BLACK")) { GameObject GO = T.transform.Find("BLACK").gameObject; for (int i = 0; i < GO.transform.childCount; i++) { GO.transform.GetChild(i).GetComponent().material = Resources.Load("MATERIALS/BLACK") as Material; //BM.BLACK; GO.transform.GetChild(i).GetComponent().material.SetFloat("_Metallic", 0.3F); GO.transform.GetChild(i).GetComponent().material.SetFloat("_Glossiness", 0.6F); } } if (T.transform.Find("RED")) { GameObject GO = T.transform.Find("RED").gameObject; for (int i = 0; i < GO.transform.childCount; i++) { GO.transform.GetChild(i).GetComponent().material = Resources.Load("MATERIALS/GRT") as Material; //BM.GRT; GO.transform.GetChild(i).GetComponent().material.SetFloat("_Metallic", 0.3F); GO.transform.GetChild(i).GetComponent().material.SetFloat("_Glossiness", 0.6F); } } if (T.transform.Find("CHROME")) { GameObject GO = T.transform.Find("CHROME").gameObject; for (int i = 0; i < GO.transform.childCount; i++) { GO.transform.GetChild(i).GetComponent().material = Resources.Load("MATERIALS/BLACK") as Material; //BM.BLACK; GO.transform.GetChild(i).GetComponent().material.SetFloat("_Metallic", 0.3F); GO.transform.GetChild(i).GetComponent().material.SetFloat("_Glossiness", 0.6F); } } if (T.transform.Find("GW")) { GameObject GW = T.transform.Find("GW").gameObject; for (int i = 0; i < GW.transform.childCount; i++) { GW.transform.GetChild(i).GetComponent().material = Resources.Load("MATERIALS/ST") as Material; // GW.transform.GetChild(i).GetComponent().material.SetFloat("_Metallic", 0.3F); GW.transform.GetChild(i).GetComponent().material.SetFloat("_Glossiness", 0.6F); GW.transform.GetChild(i).GetComponent().probeAnchor = GameObject.Find("Reflection Probe").transform; } } if (T.transform.Find("CH")) { GameObject CH = T.transform.Find("CH").gameObject; for (int i = 0; i < CH.transform.childCount; i++) { CH.transform.GetChild(i).GetComponent().material = Resources.Load("MATERIALS/CHROME") as Material; //BM.CHROME; // CH.transform.GetChild(i).GetComponent().probeAnchor = GameObject.Find("Reflection Probe").transform; CH.transform.GetChild(i).GetComponent().material.SetFloat("_Metallic", 0.5F); CH.transform.GetChild(i).GetComponent().material.SetFloat("_Glossiness", 0.9F); } } if (T.transform.Find("B")) { GameObject TB = T.transform.Find("B").gameObject; for (int i = 0; i < TB.transform.childCount; i++) { TB.transform.GetChild(i).GetComponent().material = Resources.Load("MATERIALS/CHROME") as Material; //BM.CHROME; //TB.transform.GetChild(i).GetComponent().probeAnchor = GameObject.Find("Reflection Probe").transform; TB.transform.GetChild(i).GetComponent().material.SetFloat("_Metallic", 0.3F); TB.transform.GetChild(i).GetComponent().material.SetFloat("_Glossiness", 0.9F); } } if (T.transform.Find("C")) { GameObject TC = T.transform.Find("C").gameObject; for (int i = 0; i < TC.transform.childCount; i++) { TC.transform.GetChild(i).GetComponent().material = Resources.Load("MATERIALS/GLASS") as Material; //BM.GLASS; //TC.transform.GetChild(i).GetComponent().probeAnchor = GameObject.Find("Reflection Probe").transform; TC.transform.GetChild(i).GetComponent().material.SetFloat("_Metallic", 0.1F); TC.transform.GetChild(i).GetComponent().material.SetFloat("_Glossiness", 0.9F); } } if ( T.transform.Find("A")) { GameObject TC1 = T.transform.Find("A").gameObject; Color col1 = DOIT.CSc(_G.SC[4], 1); for (int i = 0; i < TC1.transform.childCount; i++) { TC1.transform.GetChild(i).GetComponent().material = Resources.Load("MATERIALS/ST") as Material; ; TC1.transform.GetChild(i).GetComponent().material.color = DOIT.CSc(_G.SC[4], 1); _G.OBJs[nO][60] = _G.SC[4]; //TC1.transform.GetChild(i).GetComponent().probeAnchor = GameObject.Find("Reflection Probe").transform; TC1.transform.GetChild(i).GetComponent().material.SetFloat("_Metallic", 0.1F); TC1.transform.GetChild(i).GetComponent().material.SetFloat("_Glossiness", 0.9F); } } if (T.transform.Find("C1") ) { GameObject TC1 = T.transform.Find("C1").gameObject; Color col1 = DOIT.CSc(_G.SC[4], 1); for (int i = 0; i < TC1.transform.childCount; i++) { TC1.transform.GetChild(i).GetComponent().material = Resources.Load("MATERIALS/ST") as Material; ; TC1.transform.GetChild(i).GetComponent().material.color= DOIT.CSc(_G.SC[4], 1); _G.OBJs[nO][60] = _G.SC[4]; //TC1.transform.GetChild(i).GetComponent().probeAnchor = GameObject.Find("Reflection Probe").transform; TC1.transform.GetChild(i).GetComponent().material.SetFloat("_Metallic", 0.1F); TC1.transform.GetChild(i).GetComponent().material.SetFloat("_Glossiness", 0.9F); } } if (T.transform.Find("C2")) { GameObject TC2 = T.transform.Find("C2").gameObject; Color col2 = DOIT.CSc(_G.SC[4], 1); for (int i = 0; i < TC2.transform.childCount; i++) { TC2.transform.GetChild(i).GetComponent().material = Resources.Load("MATERIALS/ST") as Material; TC2.transform.GetChild(i).GetComponent().material.color = DOIT.CSc(_G.SC[5], 1); _G.OBJs[nO][61] = _G.SC[5]; //TC2.transform.GetChild(i).GetComponent().probeAnchor = GameObject.Find("Reflection Probe").transform; TC2.transform.GetChild(i).GetComponent().material.SetFloat("_Metallic", 0.1F); TC2.transform.GetChild(i).GetComponent().material.SetFloat("_Glossiness", 0.9F); } } if (T.transform.Find("W1")) { GameObject TC1 = T.transform.Find("W1").gameObject; Color col1 = DOIT.CSc(_G.SC[4], 1); for (int i = 0; i < TC1.transform.childCount; i++) { TC1.transform.GetChild(i).GetComponent().material = Resources.Load("MATERIALS/ST") as Material; //TC1.transform.GetChild(i).GetComponent().probeAnchor = GameObject.Find("Reflection Probe").transform; TC1.transform.GetChild(i).GetComponent().material.SetFloat("_Metallic", 0.1F); TC1.transform.GetChild(i).GetComponent().material.SetFloat("_Glossiness", 0.9F); } } //Stet in scene BASE.transform.position = new Vector3(px, py, pz); BASE.transform.localRotation = Quaternion.Euler(rx, ry, rz); BASE.AddComponent(typeof(MoveObject)); BASE.GetComponent().material = Resources.Load("MATERIALS/INVISIBLE") as Material; //BM.INV; } //New code public static void Reconstruct(int objectNumber, string objectName) { _G.OBJs[objectNumber][0] = objectName; string Oc5 = _G.OBJs[objectNumber][5]; switch (Oc5) { case "BA": ConstructBASE.AddCab(objectNumber); break; case "WA": ConstructWALL.AddCab(objectNumber); break; case "TA": ConstructTALL.AddCab(objectNumber); break; case "CB": ConstructCORNERBASE.AddCab(objectNumber); break; case "CW": ConstructCORNERWALL.AddCab(objectNumber); break; case "PNL": ConstructPanel.AddPanel(objectNumber); break; case "REH3624": ConstructDECO.AddObject(objectNumber); break; } string Oc4 = _G.OBJs[objectNumber][4]; switch (Oc4) { case "frid": ConstructFRIDGE.AddFridge(objectNumber); break; case "micr": ConstructMicrowave.AddMicrowave(objectNumber); break; case "dish": ConstructDishwasher.AddDishwasher(objectNumber); break; case "wine": ConstructWiner.AddWiner(objectNumber); break; case "hood": ConstructHood.AddHood(objectNumber); break; case "Slider": ConstructSlider.AddSlider(objectNumber); break; } string Oc2 = _G.OBJs[objectNumber][2]; switch (Oc2) { case "Opening": ConstructOpen.AddOpen(objectNumber); break; case "Patio": ConstructPatio.AddPatio(objectNumber); HOLE.wall(_G.OBJs[objectNumber][22]);break; case "Door": ConstructDoor.AddDoor(objectNumber);HOLE.wall(_G.OBJs[objectNumber][22]); break; case "Bloc": ConstructBloc.AddBloc(objectNumber); break; case "Picture": ConstructPicture.AddPicture(objectNumber); break; case "Window": ConstructWindow.AddWindow(objectNumber); HOLE.wall(_G.OBJs[objectNumber][22]);break; case "Small": StaticCoroutine.Start(LoadObjects(objectNumber)); break; case "Stool": StaticCoroutine.Start(LoadObjects(objectNumber)); break; case "Toilet": StaticCoroutine.Start(LoadObjects(objectNumber)); break; case "Bath": StaticCoroutine.Start(LoadObjects(objectNumber)); break; case "Shower": StaticCoroutine.Start(LoadObjects(objectNumber)); break; case "BathSink": StaticCoroutine.Start(LoadObjects(objectNumber)); break; case "Vase": StaticCoroutine.Start(LoadObjects(objectNumber)); break; case "Lamp": StaticCoroutine.Start(LoadObjects(objectNumber)); break; case "Counter": ConstructCounter.AddCounter(objectNumber); break; case "Deco": ConstructDECO.AddObject(objectNumber); break; } if (_G.OBJs[objectNumber][1].Length >= 4) if (_G.OBJs[objectNumber][1].Substring(0, 4) == "PLAT") ConstructPlatestove.AddStovePlates(objectNumber); if (_G.OBJs[objectNumber][1].Length >= 4) if (_G.OBJs[objectNumber][1].Substring(0, 4) == "BUIL") ConstructBuildin.AddBuilding(objectNumber); if (_G.OBJs[objectNumber][1].Length >= 4) if (_G.OBJs[objectNumber][1].Substring(0, 4) == "STOV") ConstructStove.AddStove(objectNumber); if (_G.OBJs[objectNumber][1].Length >= 4) if (_G.OBJs[objectNumber][1].Substring(0, 3) == "WAD") ConstructWD.AddWD(objectNumber); } public static IEnumerator LoadObjects(int i) { yield return null; float Wait = 0.1f; if (_G.OBJs[i][2] == "Stool") { ConstructStool.AddStool(i); } if (_G.OBJs[i][2] == "Vase") { ConstructVase.AddVase(i); } if (_G.OBJs[i][2] == "Lamp") { ConstructLamp.AddLamp(i); } if (_G.OBJs[i][2] == "Small") ConstructSmallelectro.AddSmallElectro(i); if (_G.OBJs[i][2] == "Toilet") ConstructToilet.AddToilet(i); if (_G.OBJs[i][2] == "Bath") ConstructBath.AddBath(i); if (_G.OBJs[i][2] == "Shower") ConstructShower.AddShower(i); if (_G.OBJs[i][2] == "BathSink") ConstructBathSink.AddBathSink(i); yield return new WaitForSeconds(Wait); CommandHandler.Instance.DelayOver(); } }