94 lines
2.7 KiB
Markdown
94 lines
2.7 KiB
Markdown
# Description
|
|
|
|
This module contains a few helpful editor tools, like favorites, history and some handy toolbar tools.
|
|
|
|
|
|
## Favorites
|
|
|
|
An editor window, where you can pin folders and assets, so you can easily find the most used assets in your project.
|
|
|
|
|
|
## History
|
|
|
|
An editor window, where the history of all selected assets are shown. An asset in the window can be selected to easy get back to previous selections.
|
|
|
|
|
|
## Toolbar
|
|
|
|
Toolbars to the left and right of the play-buttons. Anything can be added, as long as it is supported by IMGUI.
|
|
|
|
|
|
### Default tools
|
|
|
|
Three tools are available from start:
|
|
|
|
* UI Layer: Toggle the UI layer on/off
|
|
* UI Canvas: Select and center the camera on any Canvases in the scene
|
|
* Scene: Load any scene in the project easily by using the dropdown
|
|
* Time Scale: Adjust the time scale from [0;1] from a slider
|
|
|
|
|
|
### Customization
|
|
|
|
You can create your own toolbar extensions by extending `AbstractToolbarDrawer`.
|
|
|
|
```
|
|
internal sealed class MyCustomTool : AbstractToolbarDrawer
|
|
{
|
|
public override bool Visible => true;
|
|
public override bool Enabled => true;
|
|
public override EToolbarPlacement Placement => EToolbarPlacement.Left;
|
|
public override int Priority => (int)EToolbarPriority.Medium;
|
|
|
|
protected override void Draw(Rect rect)
|
|
{
|
|
// Use IMGUI methods for drawing
|
|
}
|
|
|
|
public override float CalculateWidth()
|
|
{
|
|
// Default height for toolbar buttons is 30
|
|
return 30.0f;
|
|
}
|
|
}
|
|
```
|
|
|
|
The four properties help define draw and enable state:
|
|
|
|
* `Visible`: If it is visible in the toolbar
|
|
* `Enabled`: If it is enabled in the toolbar (`GUI.enabled`)
|
|
* `Placement`: If it is placed to the left or right of the play-buttons
|
|
* `Priority`: Sort order/priority, when drawing the tool
|
|
|
|
|
|
### Customization - Settings
|
|
|
|
To add enable/disable settings or more to Preferences -> Toolbar, you can implement `IToolbarSettings`.
|
|
|
|
```
|
|
internal sealed class ToolbarUiSettings : IToolbarSettings
|
|
{
|
|
public string Title => "UI";
|
|
|
|
private const string PREF_IS_UI_ENABLED = "ToolbarSettings_IsUiEnabled";
|
|
private const string PREF_IS_UI_LAYER_ENABLED = "ToolbarSettings_IsUiLayerEnabled";
|
|
|
|
public static bool IsUiEnabled
|
|
{
|
|
get => EditorPrefs.GetBool(PREF_IS_UI_ENABLED, false);
|
|
set => EditorPrefs.SetBool(PREF_IS_UI_ENABLED, value);
|
|
}
|
|
|
|
public static bool IsUiLayerEnabled
|
|
{
|
|
get => EditorPrefs.GetBool(PREF_IS_UI_LAYER_ENABLED, false);
|
|
set => EditorPrefs.SetBool(PREF_IS_UI_LAYER_ENABLED, value);
|
|
}
|
|
|
|
public void Draw()
|
|
{
|
|
IsUiEnabled = EditorGUILayout.Toggle("Enable Canvas picker", IsUiEnabled);
|
|
IsUiLayerEnabled = EditorGUILayout.Toggle("Enable Layer toggle", IsUiLayerEnabled);
|
|
}
|
|
}
|
|
``` |