private static void DoAddComponent2Prefab() { var pathStr = EditorPrefs.GetString("AutoGenUIPrefabPath"); if (string.IsNullOrEmpty(pathStr)) { return; } EditorPrefs.DeleteKey("AutoGenUIPrefabPath"); Debug.Log(">>>>>>>SerializeUIPrefab: " + pathStr); var assembly = ReflectionExtension.GetAssemblyCSharp(); var paths = pathStr.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); var displayProgress = paths.Length > 3; if (displayProgress) { EditorUtility.DisplayProgressBar("", "Serialize UIPrefab...", 0); } for (var i = 0; i < paths.Length; i++) { var uiPrefab = AssetDatabase.LoadAssetAtPath <GameObject>(paths[i]); SetObjectRef2Property(uiPrefab, uiPrefab.name, assembly); // uibehaviour if (displayProgress) { EditorUtility.DisplayProgressBar("", "Serialize UIPrefab..." + uiPrefab.name, (float)(i + 1) / paths.Length); } Debug.Log(">>>>>>>Success Serialize UIPrefab: " + uiPrefab.name); } AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); for (var i = 0; i < paths.Length; i++) { var uiPrefab = AssetDatabase.LoadAssetAtPath <GameObject>(paths[i]); SetObjectRef2Property(uiPrefab, uiPrefab.name, assembly); // uibehaviour if (displayProgress) { EditorUtility.DisplayProgressBar("", "Serialize UIPrefab..." + uiPrefab.name, (float)(i + 1) / paths.Length); } Debug.Log(">>>>>>>Success Serialize UIPrefab: " + uiPrefab.name); } AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); if (displayProgress) { EditorUtility.ClearProgressBar(); } }
private static void SerializeUIPrefab() { string pathStr = EditorPrefs.GetString("AutoGenUIPrefabPath"); if (string.IsNullOrEmpty(pathStr)) { return; } EditorPrefs.DeleteKey("AutoGenUIPrefabPath"); Debug.Log(">>>>>>>SerializeUIPrefab: " + pathStr); var assembly = ReflectionExtension.GetAssemblyCSharp(); string[] paths = pathStr.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); bool displayProgress = paths.Length > 3; if (displayProgress) { EditorUtility.DisplayProgressBar("", "Serialize UIPrefab...", 0); } for (int i = 0; i < paths.Length; i++) { GameObject uiPrefab = AssetDatabase.LoadAssetAtPath <GameObject>(paths[i]); AttachSerializeObj(uiPrefab, uiPrefab.name, assembly); // uibehaviour string className = GetProjectNamespace() + "." + uiPrefab.name; var t = assembly.GetType(className); var com = uiPrefab.GetComponent(t); if (null == com) { com = uiPrefab.AddComponent(t); } if (displayProgress) { EditorUtility.DisplayProgressBar("", "Serialize UIPrefab..." + uiPrefab.name, (float)(i + 1) / paths.Length); } Debug.Log(">>>>>>>Success Serialize UIPrefab: " + uiPrefab.name); } AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); if (displayProgress) { EditorUtility.ClearProgressBar(); } }
public static void Example() { var selfType = ReflectionExtension.GetAssemblyCSharp().GetType("QFramework.ReflectionExtension"); selfType.LogInfo(); }