ReporterEditor.cs 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using System.IO;
  2. using UnityEditor;
  3. using UnityEngine;
  4. public class ReporterEditor : Editor
  5. {
  6. [MenuItem("Tools/Framework/创建Reporter")]
  7. public static void CreateReporter()
  8. {
  9. const int ReporterExecOrder = -12000;
  10. GameObject reporterObj = new GameObject();
  11. reporterObj.name = "Reporter";
  12. Reporter reporter = reporterObj.AddComponent<Reporter>();
  13. reporterObj.AddComponent<ReporterMessageReceiver>();
  14. //reporterObj.AddComponent<TestReporter>();
  15. // Register root object for undo.
  16. Undo.RegisterCreatedObjectUndo(reporterObj, "Create Reporter Object");
  17. MonoScript reporterScript = MonoScript.FromMonoBehaviour(reporter);
  18. string reporterPath = "Assets/GameResources/Textures/Reporter/";
  19. //string reporterPath = Path.GetDirectoryName(AssetDatabase.GetAssetPath(reporterScript));
  20. if (MonoImporter.GetExecutionOrder(reporterScript) != ReporterExecOrder) {
  21. MonoImporter.SetExecutionOrder(reporterScript, ReporterExecOrder);
  22. //Debug.Log("Fixing exec order for " + reporterScript.name);
  23. }
  24. reporter.images = new Images();
  25. reporter.images.clearImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "clear.png"), typeof(Texture2D));
  26. reporter.images.collapseImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "collapse.png"), typeof(Texture2D));
  27. reporter.images.clearOnNewSceneImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "clearOnSceneLoaded.png"), typeof(Texture2D));
  28. reporter.images.showTimeImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "timer_1.png"), typeof(Texture2D));
  29. reporter.images.showSceneImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "UnityIcon.png"), typeof(Texture2D));
  30. reporter.images.userImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "user.png"), typeof(Texture2D));
  31. reporter.images.showMemoryImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "memory.png"), typeof(Texture2D));
  32. reporter.images.softwareImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "software.png"), typeof(Texture2D));
  33. reporter.images.dateImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "date.png"), typeof(Texture2D));
  34. reporter.images.showFpsImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "fps.png"), typeof(Texture2D));
  35. //reporter.images.graphImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "chart.png"), typeof(Texture2D));
  36. reporter.images.infoImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "info.png"), typeof(Texture2D));
  37. reporter.images.saveLogsImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "Save.png"), typeof(Texture2D));
  38. reporter.images.searchImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "search.png"), typeof(Texture2D));
  39. reporter.images.copyImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "copy.png"), typeof(Texture2D));
  40. reporter.images.copyAllImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "copyAll.png"), typeof(Texture2D));
  41. reporter.images.closeImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "close.png"), typeof(Texture2D));
  42. reporter.images.buildFromImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "buildFrom.png"), typeof(Texture2D));
  43. reporter.images.systemInfoImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "ComputerIcon.png"), typeof(Texture2D));
  44. reporter.images.graphicsInfoImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "graphicCard.png"), typeof(Texture2D));
  45. reporter.images.backImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "back.png"), typeof(Texture2D));
  46. reporter.images.logImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "log_icon.png"), typeof(Texture2D));
  47. reporter.images.warningImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "warning_icon.png"), typeof(Texture2D));
  48. reporter.images.errorImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "error_icon.png"), typeof(Texture2D));
  49. reporter.images.barImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "bar.png"), typeof(Texture2D));
  50. reporter.images.button_activeImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "button_active.png"), typeof(Texture2D));
  51. reporter.images.even_logImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "even_log.png"), typeof(Texture2D));
  52. reporter.images.odd_logImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "odd_log.png"), typeof(Texture2D));
  53. reporter.images.selectedImage = (Texture2D)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "selected.png"), typeof(Texture2D));
  54. reporter.images.reporterScrollerSkin = (GUISkin)AssetDatabase.LoadAssetAtPath(Path.Combine(reporterPath, "reporterScrollerSkin.guiskin"), typeof(GUISkin));
  55. }
  56. }
  57. public class ReporterModificationProcessor : UnityEditor.AssetModificationProcessor
  58. {
  59. [InitializeOnLoad]
  60. public class BuildInfo
  61. {
  62. static BuildInfo()
  63. {
  64. EditorApplication.update += Update;
  65. }
  66. static bool isCompiling = true;
  67. static void Update()
  68. {
  69. if (!EditorApplication.isCompiling && isCompiling) {
  70. //Debug.Log("Finish Compile");
  71. if (!Directory.Exists(Application.dataPath + "/StreamingAssets")) {
  72. Directory.CreateDirectory(Application.dataPath + "/StreamingAssets");
  73. }
  74. string info_path = Application.dataPath + "/StreamingAssets/build_info";
  75. StreamWriter build_info = new StreamWriter(info_path);
  76. build_info.Write("Build from " + SystemInfo.deviceName + " at " + System.DateTime.Now.ToString());
  77. build_info.Close();
  78. }
  79. isCompiling = EditorApplication.isCompiling;
  80. }
  81. }
  82. }