private void OnEnable() { #if UNITY_2019_1_OR_NEWER || UNITY_2019_OR_NEWER string windowLayoutPath = "Packages/com.utj.framedebuggersave/Editor/UI/UXML/FrameEventsViewer.uxml"; string shaderParamPath = "Packages/com.utj.framedebuggersave/Editor/UI/UXML/ShaderParameterTemplate.uxml"; string namedValuePath = "Packages/com.utj.framedebuggersave/Editor/UI/UXML/NamedValueTemplate.uxml"; #else lastHeight = -1.0f; string windowLayoutPath = "Packages/com.utj.framedebuggersave/Editor/UI/UXML2018/FrameEventsViewer.uxml"; string shaderParamPath = "Packages/com.utj.framedebuggersave/Editor/UI/UXML2018/ShaderParameterTemplate.uxml"; string namedValuePath = "Packages/com.utj.framedebuggersave/Editor/UI/UXML2018/NamedValueTemplate.uxml"; #endif this.variantFlag = (ShaderVariantCollectionCreator.EFlag)(-1); this.captureFlag = (FrameInfoCrawler.CaptureFlag)(-1); var tree = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(windowLayoutPath); var visualElement = CloneTree(tree); this.rootVisualElement.Add(visualElement); this.textureLoader = new TextureLoader(); this.shaderParamTemplate = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(shaderParamPath); this.namedValueParamTemplate = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(namedValuePath); #if !UNITY_2019_1_OR_NEWER && !UNITY_2019_OR_NEWER InitIMGUIArea(); #else this.InitNewCaptureUI(); this.InitShaderVariantCollectionUI(); #endif this.RefreshCaptures(); }
private void OnGUINewCapture() { captureFlag = (FrameInfoCrawler.CaptureFlag)EditorGUILayout.EnumFlagsField(captureFlag); if (GUILayout.Button("capture")) { frameDebugSave.Execute(this.captureFlag, this.RefreshCaptures); } }
private void InitNewCaptureUI() { var enumField = this.rootVisualElement.Q <EnumFlagsField>("CaptureFlag"); enumField.Init(this.captureFlag); enumField.RegisterValueChangedCallback((val) => { this.captureFlag = (FrameInfoCrawler.CaptureFlag)val.newValue; }); var btn = this.rootVisualElement.Q <Button>("CaptureBtn"); btn.clickable.clicked += () => { frameDebugSave.Execute(this.captureFlag, () => { EditorUtility.DisplayDialog("Saved", "Saved FrameDebugger Information", "ok"); this.RefreshCaptures(); }); }; }
public void Execute(FrameInfoCrawler.CaptureFlag flag, System.Action endCall = null) { this.captureFlag = flag; if (this.reflectionCache == null) { this.reflectionCache = new ReflectionCache(); } this.OnEndAct = endCall; var frameDebuggeUtil = reflectionCache.GetTypeObject("UnityEditorInternal.FrameDebuggerUtility"); // show FrameDebuggerWindow var frameDebuggerWindow = reflectionCache.GetTypeObject("UnityEditor.FrameDebuggerWindow"); object windowObj = frameDebuggerWindow.CallMethod <object>("ShowFrameDebuggerWindow", null, null); frameDebuggerWindow.CallMethod <object>("EnableIfNeeded", windowObj, null); if (crawler == null) { crawler = new FrameInfoCrawler(this.reflectionCache); } crawler.Request(flag, EndCrawler); }