Editor/FabBridgeMenu.cs
using FabBridge;
using FabBridge.UI;
public static class FabBridgeMenu
{
[Menu( "Editor", "Fab Bridge/Open Fab Bridge" )]
public static void OpenFabBridge()
{
Log.Info( "FabBridge: OpenFabBridge menu clicked" );
// Check if widget already exists
var widget = FabBridgeWidget.Instance;
Log.Info( $"FabBridge: Widget instance is {(widget != null ? "found" : "null")}" );
if ( widget != null && widget.IsValid )
{
Log.Info( "FabBridge: Focusing existing widget" );
widget.Focus();
widget.Show();
EditorWindow.DockManager.RaiseDock( widget );
}
else
{
// Create the widget directly using DockManager
Log.Info( "FabBridge: Creating new FabBridgeWidget via DockManager" );
widget = EditorWindow.DockManager.Create<FabBridgeWidget>();
Log.Info( $"FabBridge: Created widget: {widget != null}" );
}
}
[Menu( "Editor", "Fab Bridge/About" )]
public static void ShowAbout()
{
Log.Info( "FabBridge: About menu clicked" );
EditorUtility.DisplayDialog(
"Fab Bridge for s&box",
"Imports assets from Epic Games Fab marketplace into s&box.\n\n" +
"Configure Fab to use 'Custom (socket port)' export with port 24981.\n\n" +
"Note: Fab assets require a subscription for non-Unreal Engine use."
);
}
}