示例#1
0
        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();
            }
        }
示例#2
0
        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();
            }
        }
示例#3
0
        public static void Example()
        {
            var selfType = ReflectionExtension.GetAssemblyCSharp().GetType("QFramework.ReflectionExtension");

            selfType.LogInfo();
        }