public bool UpdateItemCmd(string name, string cmd) { for (int i = 0; i < _Items.Count; ++i) { OVMenuItem item = _Items[i]; if (item.name == name) { item.cmd = cmd; item.dynaTxt = (item.txtCompo && UpdateText(item.txtCompo, cmd)); return(true); } } return(false); }
OVMenuItem CreateItem(OVMenuItemDef def) { OVMenuItem item = null; string prefab_file = "OV" + def.type; GameObject prefab = Resources.Load <GameObject>(prefab_file); if (prefab) { GameObject go = GameObject.Instantiate(prefab, _BG) as GameObject; item = new OVMenuItem(); item.go = go; item.cmd = def.cmd; item.name = def.name; item.msgId = def.msgid; // Rect ApplyTransRect(go.transform as RectTransform, def.x, def.y, def.w, def.h, def.rot); // Color if (def.color != null && def.color.Length != 0) { Image img = go.GetComponent <Image>(); if (img) { img.color = StringToColor(def.color); } } // Text Text txt_compo = go.GetComponent <Text>(); if (null == txt_compo) { Transform txt_trans = go.transform.FindChild("Text"); if (txt_trans) { txt_compo = txt_trans.GetComponent <Text>(); } } item.txtCompo = txt_compo; item.dynaTxt = (txt_compo && UpdateText(txt_compo, def.cmd)); _Items.Add(item); } return(item); }
protected override void Start() { base.Start(); _nTime = 0; _BG = transform.Find("BG"); if (null == _BG) { _BG = transform; } string path = OVSDK.GetUserInfo().sConsolePath + "\\" + _JsonFilePrefix + "_unity.json"; string json = ReadFile(path); OVMenuDef def; def.x = def.y = def.w = def.h = 0; def.items = null; try { def = JsonUtility.FromJson <OVMenuDef>(json); _MenuName = def.name; def.items = OVJsonHelper.FromJson <OVMenuItemDef>(json); } catch (Exception e) { Debug.Log("Parse json menu-items failed: " + e.Message); } if (null == _MenuName) { _MenuName = ""; } if (def.w > 0 && def.h > 0) { ApplyTransRect(_BG as RectTransform, def.x, def.y, def.w, def.h, 0, false); } for (int i = 0; def.items != null && i < def.items.Length; ++i) { OVMenuItem item = CreateItem(def.items[i]); if (item != null) { if (def.items[i].type == "Button") { item.directClose = (0 != def.items[i].close); OVButton btn = item.go.gameObject.GetComponent <OVButton>(); btn.m_OnClick.AddListener(delegate(){ this.OnClick(item.go.gameObject); }); // OVUIEventListener.Get(item.go.gameObject).onClick += this.OnClick; } else if (def.items[i].type == "Slider") { Slider slider = item.go.GetComponent <Slider>(); if (slider != null) { if (item.name == "OmniCoupleRate") { _PreOmniCoupleRate = OVSDK.GetUserOmniCoupleRate(); slider.value = OVSDK.GetOmniCoupleRate(); } slider.onValueChanged.AddListener(item.OnSliderValueChange); } } else if (def.items[i].type == "Toggle") { Toggle toggle = item.go.GetComponent <Toggle>(); if (toggle != null) { if (item.name == "OmniCoupleMode") { _PreOmniCoupleRate = OVSDK.GetUserOmniCoupleRate(); toggle.isOn = OVSDK.GetOmniCoupleRate() < 0.5f ? false : true; } toggle.onValueChanged.AddListener(item.OnToggleStateChange); } } } } _AllMsgBoxJson.Add(this); refreshButtonsState(); }