using System.Collections.Generic; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.ResourceManagement.AsyncOperations; public class ConstructOrnament : MonoBehaviour { static GameObject S; static int nO; static string Model; public static void AddOrnament(int NO) { _G.Load = false; Get.o2("HIDER", "LoadingCircle").SetActive(true); nO = NO; Addressables.InstantiateAsync(_G.OBJs[nO][1]).Completed += Face_Completed; } public static void AddStoolPaint() { string[] C = _G.OBJs[nO]; Model=C[1][4..]; 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]); Material MatA=UIT_MATERIAL.GetMaterial(C[60]); //Material MatB=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]; Bounds mapBounds = new (S.transform.position, Vector3.one); foreach(Transform child in S.transform) { mapBounds.Encapsulate(child.gameObject.GetComponent().bounds); } //Model scale start 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")); S.transform.localScale = new Vector3(w / sw, h / sh, d / sd); S.name = "S1"; S.transform.parent = BASE.transform; if(new List {"101"}.Contains(Model)){ S.GetComponent().material=MatA; S.GetComponent().probeAnchor = GameObject.Find("Reflection Probe").transform; } if(new List {"102","103","104","105","106"}.Contains(Model)){ foreach(Transform Line in S.transform){ Line.GetComponent().material=MatA; Line.GetComponent().probeAnchor = GameObject.Find("Reflection Probe").transform; } } if(new List {"106","102"}.Contains(Model)){ S.transform.eulerAngles=new(0,180,0); } Mesure.Addpoints("ORNAMENT",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 = _G.INV;//Resources.Load("MATERIALS/INVISIBLE") as Material; //BM.INV; BASE.transform.parent = SceneModeManager.Scene; } private static void Face_Completed(AsyncOperationHandle handle) { if (handle.Status == AsyncOperationStatus.Succeeded) { S = handle.Result; AddStoolPaint(); Get.o2("HIDER", "LoadingCircle").SetActive(false); _G.Load = true; } } }