using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.ResourceManagement.AsyncOperations; public class ConstructBath : MonoBehaviour { static GameObject O; static int nO; public static void AddBath(int NO) { _G.Load = false; GameObject.Find("HIDER").transform.Find("LoadingCircle").gameObject.SetActive(true); nO = NO; Addressables.InstantiateAsync(_G.OBJs[nO][1]).Completed += face_Completed; } public static void AddBathColor() { print("CONTRUCT TOILET___________________________________________________________" + nO); string[] C = _G.OBJs[nO]; float w = DOIT.ConvertStringToNumber(C[6]); float h = DOIT.ConvertStringToNumber(C[7]); float d = DOIT.ConvertStringToNumber(C[8]); float px = DOIT.ConvertStringToNumber(C[15]); float py = DOIT.ConvertStringToNumber(C[16]); float pz = DOIT.ConvertStringToNumber(C[17]); float rx = DOIT.ConvertStringToNumber(C[18]); float ry = DOIT.ConvertStringToNumber(C[19]); float rz = DOIT.ConvertStringToNumber(C[20]); //Color colA = DOIT.CSc(C[60], 1); //Color colB = DOIT.CSc(C[61], 1); //Color colC = DOIT.CSc(C[62], 1); Material Mat1=UIT_MATERIAL.GetMaterial(C[60]); Material Mat2=UIT_MATERIAL.GetMaterial(C[61]); //create BASE GameObject BASE = GameObject.CreatePrimitive(PrimitiveType.Cube);//new GameObject(); BASE.transform.localScale = new Vector3(w + 0.5f, h + 0.5f, d + 0.5f); BASE.name = C[0]; BASE.transform.parent = GameObject.Find("SCENE").transform; //Model //GameObject T = Instantiate(Resources.Load("OBJECTS/BATH/"+C[1], typeof(GameObject))) as GameObject; float sw = DOIT.ConvertStringToNumber(_OL.GetValue(C[1],"w")); float sh = DOIT.ConvertStringToNumber(_OL.GetValue(C[1],"h")); float sd = DOIT.ConvertStringToNumber(_OL.GetValue(C[1],"d")); O.transform.localScale = new Vector3(w / sw, h / sh, d / sd); O.name = "O1"; O.transform.parent = BASE.transform; O.transform.localRotation = Quaternion.Euler(0, 180, 0); GameObject TA = O.transform.Find("C1").gameObject; GameObject TB = O.transform.Find("C2").gameObject; //GameObject TC = L.transform.Find("C").gameObject; for (int i = 0; i < TA.transform.childCount; i++) { TA.transform.GetChild(i).GetComponent().material = Mat1; TA.transform.GetChild(i).GetComponent().probeAnchor = GameObject.Find("Reflection Probe").transform; } for (int i = 0; i < TB.transform.childCount; i++) { TB.transform.GetChild(i).GetComponent().material = Mat2;//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.color = colB; } //RigidBody BASE.AddComponent(); BASE.GetComponent().useGravity = false; BASE.GetComponent().isKinematic = true; BASE.GetComponent().detectCollisions = true; BASE.GetComponent().isTrigger = true; Mesure.Addpoints("BASE",BASE); //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; } private static void face_Completed(AsyncOperationHandle handle) { if (handle.Status == AsyncOperationStatus.Succeeded) { O = handle.Result; AddBathColor(); GameObject.Find("HIDER").transform.Find("LoadingCircle").gameObject.SetActive(false); _G.Load = true; } } }