using SRDebugger.Internal; using UnityEngine; namespace SRDebugger { public delegate void VisibilityChangedDelegate(bool isVisible); public delegate void ActionCompleteCallback(bool success); public delegate void PinnedUiCanvasCreated(RectTransform canvasTransform); } namespace SRDebugger.Services { using UnityEngine; public interface IDebugService { /// /// Current settings being used by the debugger /// Settings Settings { get; } /// /// True if the debug panel is currently being shown /// bool IsDebugPanelVisible { get; } /// /// True if the trigger is currently enabled /// bool IsTriggerEnabled { get; set; } IDockConsoleService DockConsole { get; } bool IsProfilerDocked { get; set; } /// /// Add to the system information tab. See for how to create /// an info instance. /// /// The entry to be added. /// The category the entry should be added to. void AddSystemInfo(InfoEntry entry, string category = "Default"); /// /// Show the debug panel /// /// /// If true and entry code is enabled in settings, the user will be prompted for a passcode /// before opening the panel. /// void ShowDebugPanel(bool requireEntryCode = true); /// /// Show the debug panel and open a certain tab /// /// Tab that will appear when the debug panel is opened /// /// If true and entry code is enabled in settings, the user will be prompted for a passcode /// before opening the panel. /// void ShowDebugPanel(DefaultTabs tab, bool requireEntryCode = true); /// /// Hide the debug panel /// void HideDebugPanel(); /// /// Hide the debug panel, then remove it from the scene to save memory. /// void DestroyDebugPanel(); /// /// Add all an objects compatible properties and methods to the options panel. /// NOTE: It is not recommended to use this on a MonoBehaviour, it should be used on a standard /// class made specifically for use as a settings object. /// /// The object to add. void AddOptionContainer(object container); /// /// Remove all properties and methods that the added to the options panel. /// /// The container to remove. void RemoveOptionContainer(object container); /// /// Add an option to the options panel. /// void AddOption(OptionDefinition option); /// /// Remove an option from the options panel. /// /// True if option was successfully removed, otherwise false. bool RemoveOption(OptionDefinition option); /// /// Pin all options in a category. /// /// void PinAllOptions(string category); /// /// Unpin all options in a category. /// /// void UnpinAllOptions(string category); void PinOption(string name); void UnpinOption(string name); /// /// Clear all pinned options. /// void ClearPinnedOptions(); /// /// Open a bug report sheet. /// /// Callback to invoke once the bug report is completed or cancelled. Null to ignore. /// /// Take a screenshot before opening the report sheet (otherwise a screenshot will be taken as /// the report is sent, if enabled in settings) /// /// Initial content of the bug report description void ShowBugReportSheet(ActionCompleteCallback onComplete = null, bool takeScreenshot = true, string descriptionContent = null); /// /// Event invoked whenever the debug panel opens or closes /// event VisibilityChangedDelegate PanelVisibilityChanged; event PinnedUiCanvasCreated PinnedUiCanvasCreated; /// /// ADVANCED FEATURE. This will convert the debug panel to a world space object and return the RectTransform. /// This can be used to position the SRDebugger panel somewhere in your scene. /// This feature is for advanced users only who know what they are doing. Only limited support will be provided /// for this method. /// The debug panel will be made visible if it is not already. /// /// The debug panel RectTransform. RectTransform EnableWorldSpaceMode(); } }