跑通对话全流程
This commit is contained in:
@@ -8,7 +8,7 @@ namespace CustomComponent
|
||||
|
||||
[SerializeField] private StoryTriggerType _triggerType = StoryTriggerType.DialogCompleted;
|
||||
|
||||
[SerializeField] [Tooltip("DialogCompleted 时为对话 Id;<=0 表示该触发类型下的任意 Id。")]
|
||||
[SerializeField] [Tooltip("触发来源 Id;<=0 表示该触发类型下的任意 Id。")]
|
||||
private int _triggerId = 0;
|
||||
|
||||
public bool IsEnabled => _enabled;
|
||||
@@ -28,7 +28,7 @@ namespace CustomComponent
|
||||
return false;
|
||||
}
|
||||
|
||||
if (triggerType == StoryTriggerType.DialogCompleted && _triggerId > 0 && _triggerId != triggerId)
|
||||
if (_triggerId > 0 && _triggerId != triggerId)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ namespace CustomComponent
|
||||
private int _nextBackgroundRequestId = 1;
|
||||
private int _lastBackgroundRequestId;
|
||||
private int _completedBackgroundRequestId;
|
||||
private int _lastStartedCombineTriggerId;
|
||||
|
||||
private struct PendingDirectiveInvocation
|
||||
{
|
||||
@@ -66,6 +67,7 @@ namespace CustomComponent
|
||||
_consumedDirectiveTokens.Clear();
|
||||
_queuedDirectiveTokens.Clear();
|
||||
_pendingDirectives.Clear();
|
||||
_lastStartedCombineTriggerId = 0;
|
||||
}
|
||||
|
||||
private void OnDialogCompleted(object sender, GameFramework.Event.GameEventArgs e)
|
||||
@@ -85,7 +87,7 @@ namespace CustomComponent
|
||||
return;
|
||||
}
|
||||
|
||||
ExecuteDirectives(StoryTriggerType.CombineCompleted, 0);
|
||||
ExecuteDirectives(StoryTriggerType.CombineCompleted, _lastStartedCombineTriggerId);
|
||||
}
|
||||
|
||||
private void ExecuteDirectives(StoryTriggerType triggerType, int triggerId)
|
||||
@@ -136,6 +138,11 @@ namespace CustomComponent
|
||||
|
||||
private void ExecuteDirective(StoryDirectiveAsset directive, StoryTriggerType triggerType, int triggerId)
|
||||
{
|
||||
if (directive is StoryStartCombineDirectiveAsset)
|
||||
{
|
||||
_lastStartedCombineTriggerId = triggerId;
|
||||
}
|
||||
|
||||
directive.Execute(this);
|
||||
|
||||
if (_verboseLog)
|
||||
|
||||
Reference in New Issue
Block a user