public void quitHelpPanel() { m_curHelpPanel = null; }
//----------------------------------------------------- private void ChangeHelpPanel(CtxHelpPanel newPanel, string _panelID) { if(!m_displayHelp) { m_szpanelID = _panelID; m_curHelpPanel = newPanel; FitToScreen(); m_helpRect.width = m_curHelpPanel.GetWidth(); m_helpRect.height = m_curHelpPanel.GetHeight(); } else m_nextHelpPanel = newPanel; // si image d'aide visible ne pas changer tout de suite }
//----------------------------------------------------- private void LoadPanels() { TextAsset xml = (TextAsset) Resources.Load(m_xmlHelpPanelsPath, typeof (TextAsset)); if(xml != null) { XMLParser parser = new XMLParser(); // -- Récupération des suffixes des noms de fichier (Touch / mouse) -- XMLNode root = parser.Parse(xml.text).GetNode("root>0"); XMLNodeList sfxList = root.GetNodeList("suffixes>0>suffix"); string filenameSfx = ""; foreach(XMLNode sfx in sfxList) { #if UNITY_IPHONE || UNITY_ANDROID if(sfx.GetValue("@inputType") == "touch") filenameSfx = sfx.GetValue("_text"); #else if(sfx.GetValue("@inputType") == "mouse") filenameSfx = sfx.GetValue("_text"); #endif } // -- Récupération des données par défaut -- string startDelayStr = root.GetNode("defaultValues>0>startDelay>0").GetValue("_text"); float.TryParse(startDelayStr, out m_startCountdown); string dftDelayStr = root.GetNode("defaultValues>0>stdDelay>0").GetValue("_text"); float dftDelay; float.TryParse(dftDelayStr, out dftDelay); string dftLdelayStr = root.GetNode("defaultValues>0>longDelay>0").GetValue("_text"); float dftLdelay; float.TryParse(dftLdelayStr, out dftLdelay); // Debug.Log(DBGTAG+" default Delay : "+dftDelay+" cuz "+dftDelayStr+" AND dftLdelay : "+dftLdelay+" cuz "+dftLdelayStr); // -- Récupération des données des panneaux d'aide -- XMLNodeList panels = root.GetNodeList("panels>0>panel"); string id, bgImgName, bgImgExt, path, align, fadeOnScroll, delayStr, lgDelayStr; string[] lang, text; Texture2D bgImg; Rect rect = new Rect(); XMLNodeList labels, texts; CtxHelpPanel newPanel; float x, y, w, h, delay, lgDelay; foreach(XMLNode panel in panels) { id = panel.GetValue("@id"); fadeOnScroll = panel.GetValue("@fadeOnScroll"); delayStr = panel.GetValue("@stdDelay"); lgDelayStr = panel.GetValue("@longDelay"); if(delayStr.Length > 0) float.TryParse(delayStr, out delay); else delay = dftDelay; if(lgDelayStr.Length > 0) float.TryParse(lgDelayStr, out lgDelay); else lgDelay = dftLdelay; bgImgName = panel.GetNode("bgImg>0").GetValue("@filename"); bgImgExt = panel.GetNode("bgImg>0").GetValue("@extension"); path = m_imgHelpPanelsFolder+"/"+bgImgName+filenameSfx; bgImg = (Texture2D) Resources.Load(path, typeof(Texture2D)); if(bgImg == null) Debug.LogError(DBGTAG+"Can't find resource : "+path); newPanel = new CtxHelpPanel(id, bgImg, fadeOnScroll.ToLower().Equals("true"), delay, lgDelay); labels = panel.GetNodeList("labels>0>label"); foreach(XMLNode label in labels) { align = label.GetValue("@align"); float.TryParse(label.GetValue("@x"), out x); float.TryParse(label.GetValue("@y"), out y); float.TryParse(label.GetValue("@w"), out w); float.TryParse(label.GetValue("@h"), out h); rect.Set(x, y, w, h); texts = label.GetNodeList("text"); lang = new string[texts.Count]; text = new string[texts.Count]; int i=0; foreach(XMLNode textNode in texts) { lang[i] = textNode.GetValue("@lang"); text[i++] = textNode.GetValue("_text"); } if(align == "left") newPanel.AddLabel(lang, text, rect, m_helpTxtStyleLeft); else if(align == "center") newPanel.AddLabel(lang, text, rect, m_helpTxtStyleCenter); else if(align == "right-bottom") newPanel.AddLabel(lang, text, rect, m_helpTxtStyleRightBot); else if(align == "footer") newPanel.AddLabel(lang, text, rect, m_helpTxtStyleFooter); else newPanel.AddLabel(lang, text, rect, m_helpTxtStyleLeft); } // foreach label m_panels.Add(id, newPanel); } // foreach panel } else Debug.LogError(DBGTAG+"Can't find XML : \""+m_xmlHelpPanelsPath+"\""); }
//---------------------------------------------------- void Awake() { PC.ctxHlp = this; // -- Affichage -- m_curHelpPanel = null; m_nextHelpPanel = null; m_helpRect = new Rect(); m_helpTimer = 0f; m_displayHelp = false; m_hiding = false; m_animHelp = false; m_animHelpProg = 0f; m_helpGUIalpha = 0f; m_helpGUIaStart = 0f; m_helpGUIaEnd = 0f; m_helpCountdown = false; m_useStartCountdown = false; m_panelBlockingInputs = false; m_lastFrameClicked = false; // -- Chargement auto des images d'aide, selon plateforme -- m_panels = new Dictionary<string, CtxHelpPanel>(); #if !UNITY_ANDROID LoadPanels(); #endif }