139 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			C#
		
	
	
	
| 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
 | |
|     {
 | |
|         /// <summary>
 | |
|         /// Current settings being used by the debugger
 | |
|         /// </summary>
 | |
|         Settings Settings { get; }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// True if the debug panel is currently being shown
 | |
|         /// </summary>
 | |
|         bool IsDebugPanelVisible { get; }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// True if the trigger is currently enabled
 | |
|         /// </summary>
 | |
|         bool IsTriggerEnabled { get; set; }
 | |
| 
 | |
|         IDockConsoleService DockConsole { get; }
 | |
| 
 | |
|         bool IsProfilerDocked { get; set; }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Add <paramref name="entry"/> to the system information tab. See <seealso cref="InfoEntry"/> for how to create
 | |
|         /// an info instance.
 | |
|         /// </summary>
 | |
|         /// <param name="entry">The entry to be added.</param>
 | |
|         /// <param name="category">The category the entry should be added to.</param>
 | |
|         void AddSystemInfo(InfoEntry entry, string category = "Default");
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Show the debug panel
 | |
|         /// </summary>
 | |
|         /// <param name="requireEntryCode">
 | |
|         /// If true and entry code is enabled in settings, the user will be prompted for a passcode
 | |
|         /// before opening the panel.
 | |
|         /// </param>
 | |
|         void ShowDebugPanel(bool requireEntryCode = true);
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Show the debug panel and open a certain tab
 | |
|         /// </summary>
 | |
|         /// <param name="tab">Tab that will appear when the debug panel is opened</param>
 | |
|         /// <param name="requireEntryCode">
 | |
|         /// If true and entry code is enabled in settings, the user will be prompted for a passcode
 | |
|         /// before opening the panel.
 | |
|         /// </param>
 | |
|         void ShowDebugPanel(DefaultTabs tab, bool requireEntryCode = true);
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Hide the debug panel
 | |
|         /// </summary>
 | |
|         void HideDebugPanel();
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Hide the debug panel, then remove it from the scene to save memory.
 | |
|         /// </summary>
 | |
|         void DestroyDebugPanel();
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Add all an objects compatible properties and methods to the options panel.
 | |
|         /// <remarks>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.</remarks>
 | |
|         /// </summary>
 | |
|         /// <param name="container">The object to add.</param>
 | |
|         void AddOptionContainer(object container);
 | |
|         
 | |
|         /// <summary>
 | |
|         /// Remove all properties and methods that the <paramref name="container"/> added to the options panel.
 | |
|         /// </summary>
 | |
|         /// <param name="container">The container to remove.</param>
 | |
|         void RemoveOptionContainer(object container);
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Pin all options in a category.
 | |
|         /// </summary>
 | |
|         /// <param name="category"></param>
 | |
|         void PinAllOptions(string category);
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Unpin all options in a category.
 | |
|         /// </summary>
 | |
|         /// <param name="category"></param>
 | |
|         void UnpinAllOptions(string category);
 | |
| 
 | |
|         void PinOption(string name);
 | |
| 
 | |
|         void UnpinOption(string name);
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Clear all pinned options.
 | |
|         /// </summary>
 | |
|         void ClearPinnedOptions();
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Open a bug report sheet.
 | |
|         /// </summary>
 | |
|         /// <param name="onComplete">Callback to invoke once the bug report is completed or cancelled. Null to ignore.</param>
 | |
|         /// <param name="takeScreenshot">
 | |
|         /// Take a screenshot before opening the report sheet (otherwise a screenshot will be taken as
 | |
|         /// the report is sent)
 | |
|         /// </param>
 | |
|         /// <param name="descriptionContent">Initial content of the bug report description</param>
 | |
|         void ShowBugReportSheet(ActionCompleteCallback onComplete = null, bool takeScreenshot = true,
 | |
|             string descriptionContent = null);
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Event invoked whenever the debug panel opens or closes
 | |
|         /// </summary>
 | |
|         event VisibilityChangedDelegate PanelVisibilityChanged;
 | |
| 
 | |
|         event PinnedUiCanvasCreated PinnedUiCanvasCreated;
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 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 online 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.
 | |
|         /// </summary>
 | |
|         /// <returns>The debug panel RectTransform.</returns>
 | |
|         RectTransform EnableWorldSpaceMode();
 | |
|     }
 | |
| }
 |