protected void AutoSetGoProperty() { Type tempt = this.GetType(); foreach (FieldInfo fi in tempt.GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public)) { if (!fi.Name.Contains("ui_")) { continue; } Component tempcom = ToolsEx.FindScriptInChild(this.gameObject, fi.FieldType, fi.Name.Replace("ui_", "")); if (tempcom == null) { Debug.LogError(fi.Name + ". is not find in " + tempt.Name); continue; } fi.SetValue(this, tempcom); } }
/// <summary> /// auto set every view public property /// </summary> /// <param name="go"></param> protected void AutoSetGoProperty <T>(T comp, GameObject go) { Type tempt = comp.GetType(); foreach (FieldInfo fi in tempt.GetFields()) { if (!fi.Name.Contains("ui_")) { continue; } Component tempcom = ToolsEx.FindScriptInChild(go, fi.FieldType, fi.Name.Replace("ui_", "")); if (tempcom == null) { Debug.LogError(fi.Name + ". is not find in " + tempt.Name); continue; } //GenerateLSCODE(tempcom, tempt.Name); // fi.SetValue(comp, tempcom); } }
///<summay> ///继承MonoBehaviour的,自动查找UI /// </summary> public static void AutoSetUIProperty <T>(T view, GameObject WinPrefab) { Type tempt = view.GetType(); foreach (FieldInfo fi in tempt.GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public)) { if (!fi.Name.Contains("ui_")) { continue; } //Debug.LogError(fi.FieldType.Name + ". fi.PropertyType.Name.." + fi.Name); Component tempcom = ToolsEx.FindScriptInChild(WinPrefab, fi.FieldType, fi.Name.Replace("ui_", "")); if (tempcom == null) { Debug.LogError(fi.Name + ". is not find in " + tempt.Name); continue; } // GenerateLSCODE(tempcom, tempt.Name); // fi.SetValue(view, tempcom); //Debug.LogError(fi.Name); } }