-
Notifications
You must be signed in to change notification settings - Fork 310
Flow debugger update #282
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 5.x
Are you sure you want to change the base?
Flow debugger update #282
Conversation
fixed bugs: - fix pausing at breakpoint - select correct flow asset instance, instead of a first one spawned with the same name in MP - breadcrumbs were not visible if asset editor was opened before PIE start changes: - world selection for inspected instances(hidden if there is only one world). If some world is selected, breakpoints will only be triggered for assets inside that world - in the top right corner of the graph PIE status will be displayed, based of selected world/instance - if there is an inspected instance of an asset, breakpoints will only be triggered for that instance - if there is no inspected instance of an asset, but there are active breakpoints, they will be triggered for all instances of an asset, debugger will temporarily set paused instance as inspected and clear after resume - world prefix for instances in dropdown - automatic reselection of previously inspected instance between PIE sessions (disabled by default, can be enabled in Editor Settings) - visual changes for breadcrumbs (added trailing delimiter, background color, max width) - clicking on breadcrumb now will focus SubGraph node, that created inspected instance next in chain - pausing at breakpoint will focus paused asset window (open if needed) and focus node, that has triggered breakpoint - node breakpoint is no longer triggered if there is triggered breakpoint for any pin at the same time - "enable/disable/remove all breakpoints" is added to "debug" menu section - button "Go to Parent" was removed from the toolbar (the same can be achieved with breadcrumbs), but command was kept in order to let the ability to use shortcut for this action
@@ -69,5 +69,5 @@ class FLOWEDITOR_API UFlowGraphEditorSettings : public UDeveloperSettings | |||
|
|||
public: | |||
virtual FName GetCategoryName() const override { return FName("Flow Graph"); } | |||
virtual FText GetSectionText() const override { return INVTEXT("User Settings"); } | |||
virtual FText GetSectionText() const override { return INVTEXT("Graph User Settings"); } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Renamed to avoid name collision with UFlowUserSettings. It would be great if somebody had a better choice for name.
* | ||
*/ | ||
UCLASS(Config = EditorPerProjectUserSettings, meta = (DisplayName = "Flow")) | ||
class FLOW_API UFlowUserSettings : public UDeveloperSettings |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Class for user settings, that can't be moved to Editor module for now. I would also move here UFlowSettings::bUseAdaptiveNodeTitles
, but it is beyond the scope of this PR.
{ | ||
if (!GUnrealEd->SetPIEWorldsPaused(true)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's why I personally prefer writing Cond == false
instead of !Cond
🙂
And several words about a bug when several breakpoints can be triggered in the same frame. The best way to fix this would be to use Other way it can be fixed is to implement "pin execution request" system. FlowAssets will no longer directly trigger input/output pins in Editor, but direct them to debugger. If there is no hit breakpoints - execute requested pins normally, otherwise store request in pending list, that will be executed after resume. I don't really like this approach, I think it potentially can introduce some bugs because of the postponed execution of nodes. |
Important note about world names. As can be seen on image above, client indexes start with 1 But I can change it to align with BP debugger, if needed |
4b00fe8
to
daa3fef
Compare
fixed bugs:
changes: