using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.UI; public class PDF : PDFCreate { private bool _isLocal = false; public GameObject _SetPanel; // ── Panel ───────────────────────────────────── public void OpenPDFPnl() { DOIT.CloseALLMenu(); _SetPanel.SetActive(true); Set.GlobalColorAndTranslate(); _SetPanel.transform.Find("InputLocalName").GetComponent().text=_G.FileName; } // ── Local ───────────────────────────────────── public void ClickPDFLocal() { WaitCircle.Setting(true, "PDF"); _P.ListSwitch["VERSION_PRO"]=false; #if UNITY_EDITOR _P.ListSwitch["VERSION_DESIGNER"]=true; #endif _G.PDFName =_SetPanel.transform.Find("InputLocalName").GetComponent().text; _isLocal = true; // En mode AI, capturer aussi les vues par mur avant le PDF (comme ClickPDF_AI). if (IsAIMode()) StaticCoroutine.Start(AIViewsThenPDF()); else StaticCoroutine.Start(CreatePDFCoroutine()); } // ── Ai processl ───────────────────────────────────── public void ClickPDF_AI() { WaitCircle.Setting(true, "PDF"); _P.ListSwitch["VERSION_PRO"]=false; #if UNITY_EDITOR _P.ListSwitch["VERSION_DESIGNER"]=true; #endif // Mode AI : le PDF porte le nom EMAIL (_G.EMAIL), en local comme sur le serveur // (même convention que les vues AI). Repli sur l'email de test si non renseigné. string email = string.IsNullOrEmpty(_G.EMAIL) ? "hb3d63@gmail.com" : _G.EMAIL; string pdfName = SafeFileName(email); if (string.IsNullOrEmpty(pdfName)) pdfName = "Ai_process_file"; _G.PDFName = pdfName; _isLocal = true; StaticCoroutine.Start(AIViewsThenPDF()); } // AI : capture/envoie d'abord les 2 vues (face + coin), puis génère le PDF. private IEnumerator AIViewsThenPDF() { yield return CaptureAndUploadAIViews(); yield return CreatePDFCoroutine(); } // ── Serveur ─────────────────────────────────── public void CreatePDF() { _P.ListSwitch["VERSION_DESIGNER"]=false; _isLocal = false; StaticCoroutine.Start(CreatePDFCoroutine()); } // ── Flow commun ─────────────────────────────── private IEnumerator CreatePDFCoroutine() { DOIT.CloseALLPNLONLY(); Initialize(out Camera mainCam); _mainCam = mainCam; // ✅ stocké pour CaptureToRenderTexture() yield return TakeScreenshotScene(); } // ── Calculate — redirige selon le flag ──────── public override IEnumerator Calculate() { if (_isLocal) yield return base.Calculate(); // ← PDFCreate local ✅ else yield return ServerCalculate(); // ← PDFCreation serveur ✅ } // ── Serveur — appelle directement PDFCreation ─ private IEnumerator ServerCalculate() { WaitCircle.Setting(false, ""); yield return null; _handler.Close2DPlan(); DASH.HDsetBTNcolor(false); _handler.SetPlan2DButtonOverlayActive(true); AddFieldToPDF(out WWWForm form); List Cablist = DOLIST.CABLISTint(); if (!Get.PreferenceBool("CABINET_DOOR_RECIPE")) AddFieldForCab(Cablist, form); else AddFieldForBox(Cablist, form); if (Get.PreferenceBool("CABINET_DOOR_RECIPE")) AddFieldForDoor(form); if (Get.PreferenceBool("CABINET_DRAWER_RECIPE")) AddFieldForDrawer(form); AddFieldForPnl(form); AddFieldForMolding("FILLER", Cablist, form); if (_P.ListSwitch["VALANCE_SELECT"]) AddFieldForMolding("VALANCE", Cablist, form); if (_P.ListSwitch["FASCIA_SELECT"]) AddFieldForMolding("FASCIA", Cablist, form); if (_P.ListSwitch["OGEE_SELECT"]) AddFieldForMolding("OGEE", Cablist, form); AddFieldForMolding("KICK", Cablist, form); if (_P.ListSwitch["ADD_ITEM_LIST"]) AddFieldForItems(form); int iteration = AddFieldElevation(form); AddFieldForAllPictures(form); AddFieldForIsland(form, iteration); StaticCoroutine.Start( SaveToServerCoroutine(form, ThisOnly.getUrlPDF())); } }