private void Awake() { _instance = this; uiNames = new List <string>(); //把UI下面的子物体全部找到 for (int i = 0; i < transform.childCount; i++) { uiNames.Add(transform.GetChild(i).name); } //Type type = Type.GetType("WeaponPanel"); texts = new TextsOfUI(); texts = JsonUtility.FromJson <TextsOfUI>(LanguageMgr.GetInstance.GetLanguageData()); //for (int i = 0; i < myClass.GetType().GetFields().Length; i++) //{ // string fieldName = myClass.GetType().GetFields()[i].Name; // myClass.GetType().GetField(fieldName).SetValue(myClass, texts.WeaponPanel.GetType().GetField(fieldName).GetValue(texts.WeaponPanel).ToString()); //} ////myClass.GetType().GetField("WeaponIcon_text").SetValue(myClass, "wangwangwang"); ////string str = (string)myClass.GetType().GetField("WeaponIcon_text").GetValue(myClass); ////Debug.Log(str); //for (int i = 0; i < myClass.GetType().GetFields().Length; i++) //{ // string fieldName = myClass.GetType().GetFields()[i].Name; // string str = (string)myClass.GetType().GetField(fieldName).GetValue(myClass); // Debug.Log(fieldName + "---------" + str); //} }
/// <summary> /// 初始化UI /// 如果没有设置语言,默认显示与系统一致的语言 /// </summary> private void InitUI() { TextsOfUI uiText = new TextsOfUI(); for (int i = 0; i < uiNames.Count; i++) { object myClass = ReflectTools.CreateInstacne(uiNames[i]); //把Json转换的类,转到myClass中 ReflectTools.SetFieldFromOtherClass(myClass, texts.WeaponPanel); //Debug.Log((string)ReflectTools.GetFieldFromClass(myClass, "WeaponDiscrible_Property_Discrible")); string className = Type.GetType(uiNames[i]).Name; for (int j = 0; j < ReflectTools.GetFieldsFromClass(myClass).Length; j++) { string transName = className + "/" + ReflectTools.GetFieldsFromClass(myClass)[j].Name; transform.Find(transName.Replace("_", "/")).GetComponent <Text>().text = (string)ReflectTools.GetFieldFromClass(myClass, ReflectTools.GetFieldsFromClass(myClass)[j].Name); } } }
public void RefreshUI(SystemLanguage lang) { texts = JsonUtility.FromJson <TextsOfUI>(LanguageMgr.GetInstance.GetLanguageData(lang)); InitUI(); }