using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.ResourceManagement.AsyncOperations; public class ConstructBathSink : MonoBehaviour { static GameObject O; static int nO; public static void AddBathSink(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 AddBathSinkColor() { 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(_G.OBJs[nO][62], 1); Material Mat1=UIT_MATERIAL.GetMaterial(_G.OBJs[nO][60]); Material Mat2=UIT_MATERIAL.GetMaterial(_G.OBJs[nO][61]); //create BASE GameObject BASE = GameObject.CreatePrimitive(PrimitiveType.Cube);//new GameObject(); BASE.transform.localScale = new Vector3(w + 0.5f, h + 0.0f, d + 0.5f); BASE.name = _G.OBJs[nO][0]; BASE.transform.parent = GameObject.Find("SCENE").transform; //Model //GameObject T = Instantiate(Resources.Load("OBJECTS/BATHSINK/"+_G.OBJs[nO][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; TB.transform.GetChild(i).GetComponent().probeAnchor = GameObject.Find("Reflection Probe").transform; } //RigidBody BASE.AddComponent(); BASE.GetComponent().useGravity = false; BASE.GetComponent().isKinematic = true; BASE.GetComponent().detectCollisions = true; BASE.GetComponent().isTrigger = true; //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; // if (DOIT.ConvertStringToNumber(C[1][4..]) >= 107) // { // if (TA.transform.Find("ATOP") != null) // { // TA.transform.Find("ATOP").GetComponent().material=CREATE.GetCounterMat(C[41],"SCENE"); // } // } } private static void face_Completed(AsyncOperationHandle handle) { if (handle.Status == AsyncOperationStatus.Succeeded) { O = handle.Result; AddBathSinkColor(); GameObject.Find("HIDER").transform.Find("LoadingCircle").gameObject.SetActive(false); _G.Load = true; } } }