using UnityEngine; // Reconstruit une box de dosseret (backsplash AI) depuis _G.OBJs (catégorie "Splash"). // Utilisé à la création (AI.MakeBackSplashBox) ET au chargement (LoadXML / REDOOBJECT), pour que le // dosseret soit sauvegardé/rechargé comme n'importe quel objet. // Les box sont regroupées sous un conteneur par mur "backsplash{n}" : indispensable pour que // CameraAround.Hide/SetObjectVisibility puisse les masquer (agit sur les ENFANTS d'un objet). public class ConstructSplash : MonoBehaviour { public static void AddSplash(int nO) { string[] C = _G.OBJs[nO]; if (C == null || C[0] == "null") return; 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 ry = DOIT.ConvertStringToNumber(C[19]); string CT = string.IsNullOrEmpty(C[54]) ? C[1] : C[54]; // Conteneur par mur "backsplash{n}" (n = chiffres du mur, ex. "w3" -> "backsplash3"). string digits = ""; foreach (char ch in (C[22] ?? "")) if (char.IsDigit(ch)) digits += ch; string contName = "backsplash" + digits; GameObject container = GameObject.Find(contName); if (container == null) { container = new GameObject(contName); GameObject sc0 = Get.o1("SCENE"); if (sc0 != null) container.transform.SetParent(sc0.transform); container.transform.position = new Vector3(px, py, pz); } GameObject box = Createmcx.Mcx(C[0], w, h, d, px, py, pz, 0, ry, 0, CT); GameObject probe = GameObject.Find("Reflection Probe"); if (probe != null) box.GetComponent().probeAnchor = probe.transform; box.tag = "splash"; box.layer = 22; box.transform.SetParent(container.transform, true); } }