using System.Collections; using System.Globalization; using TMPro; using UnityEngine; using UnityEngine.Networking; using UnityEngine.UI; // Démarrage : membre, couleurs, logos et langue. // // L'adresse d'ouverture porte le membre puis l'email du concepteur : // https://ukitchenit.com/rd?baindepot?nom@exemple.com // // Hors WebGL, Application.absoluteURL est vide : c'est le champ Editor Url qui // sert alors, pour essayer un membre depuis l'éditeur. public class Starting : MonoBehaviour { [Header("Membre")] [Tooltip("Adresse utilisée dans l'éditeur, où l'URL du navigateur n'existe pas.")] [SerializeField] private string editorUrl = "https://ukitchenit.com/rd?free?hb3d63@gmail.com"; [Tooltip("L'Image qui reçoit le logo du membre.")] [SerializeField] private Image logo; [Tooltip("L'Image du second logo, pour les membres qui en ont un.")] [SerializeField] private Image logo2; [Header("Langue")] [SerializeField] private TMP_Dropdown languageDropdown; // La langue déjà appliquée : on ne retraduit que lorsqu'elle change. private int _language; void Start() { // Les mesures se lisent et s'écrivent avec un point décimal, quelle que // soit la langue du poste. CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture; CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.InvariantCulture; System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; ReadUrl(); _G.PATH = "kitchensdepot"; SelColor(); LanguageSelection(); COLORSET.On(); TRANS.go(); StartCoroutine(LoadLogo("logord.png", logo, false)); // if (_G.PATH is "collection_elite" or "homehardware" or "bmr" or "kent") //StartCoroutine(LoadLogo("logord2.png", logo2, true)); } void Update() { COLORSET.On(); // Retraduire à chaque frame ne servirait à rien : seul un changement de // langue demande une passe. if (_language == _G.L) return; _language = _G.L; TRANS.go(); } // Membre et email du concepteur, lus dans l'adresse d'ouverture. private void ReadUrl() { _G.PATH = "kitchensdepot"; _G.designerEmail = ""; string url = editorUrl; #if UNITY_WEBGL && !UNITY_EDITOR url = Application.absoluteURL; #endif if (string.IsNullOrEmpty(url)) return; string[] parts = url.Split('?'); if (parts.Length > 1 && !string.IsNullOrEmpty(parts[1])) _G.PATH = parts[1]; if (parts.Length > 2) _G.designerEmail = parts[2]; } // Couleurs propres à chaque membre. private void SelColor() { print("_G.PATH=============="+_G.PATH); switch (_G.PATH) { case "free": _G.Color1 = "373435"; _G.Color2 = "EAEAEA"; break; case "kwizine": _G.Color1 = "295C78"; _G.Color2 = "E3C7AD"; break; case "armoiredepot": _G.Color1 = "1E9C87"; _G.Color2 = "D2D2D2"; break; case "kitchensdepot": _G.Color1 = "13AEBA"; _G.Color2 = "E1FFFF"; break; case "cabinetstogo": _G.Color1 = "60285F"; _G.Color2 = "E1DBE6"; break; case "bmr": _G.Color1 = "057A34"; _G.Color2 = "EAEAEA"; break; case "collection_elite": _G.Color1 = "A19174"; _G.Color2 = "EAEAEA"; break; case "homehardware": _G.Color1 = "ED1B24"; _G.Color2 = "EAEAEA"; break; case "baindepot": _G.Color1 = "2CBEC8"; _G.Color2 = "EAEAEA"; break; case "hampton_bay": _G.Color1 = "FF6600"; _G.Color2 = "EAEAEA"; break; case "kent": _G.Color1 = "01965F"; _G.Color2 = "FFCB00"; break; } } private IEnumerator LoadLogo(string file, Image target, bool second) { if (target == null) yield break; string url = "https://ukitchenit.com/rd/members/" + _G.PATH + "/" + file; using UnityWebRequest request = UnityWebRequestTexture.GetTexture(url); yield return request.SendWebRequest(); if (request.result != UnityWebRequest.Result.Success) { Debug.LogWarning("Logo du membre introuvable : " + url); yield break; } Texture2D texture = DownloadHandlerTexture.GetContent(request); Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f)); if (second) _G.Logo2 = sprite; else _G.Logo = sprite; target.gameObject.SetActive(true); target.sprite = sprite; } // Langue du système au démarrage, anglais par défaut. private void LanguageSelection() { _G.L = Application.systemLanguage == SystemLanguage.French ? 2 : 1; _language = _G.L; if (languageDropdown != null) languageDropdown.SetValueWithoutNotify(_G.L - 1); } // À brancher sur le On Value Changed du menu déroulant. public void languageChange() { if (languageDropdown == null) return; _G.L = languageDropdown.value + 1; } // À brancher sur un bouton nommé FR ou ENG. public void language() { if (name == "FR") _G.L = 2; if (name == "ENG") _G.L = 1; } }