[HOWTO] How To: Specify Different First & Last Default Sequences

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
User avatar
Tony Li
Posts: 22871
Joined: Thu Jul 18, 2013 1:27 pm

[HOWTO] How To: Specify Different First & Last Default Sequences

Post by Tony Li »

If a dialogue entry's Sequence field is blank, it will use the Dialogue Manager's Default Sequence. (Or Default Player Sequence if the entry is spoken by a player actor and Default Player Sequence isn't blank.)

If you want to use a different default sequence for the first and last entries in a conversation, you can add this script to the Dialogue Manager:

Code: Select all

using UnityEngine;
using PixelCrushers.DialogueSystem;

public class AddDefaultFirstAndLastSequence : MonoBehaviour
{
    [TextArea] public string DefaultFirstSequence;
    [TextArea] public string DefaultLastSequence;

    bool isFirstEntry = true;
    void OnConversationEnd(Transform actor) { isFirstEntry = true; }

    void OnConversationLine(Subtitle subtitle)
    {
        if (subtitle.dialogueEntry.id == 0) return; // Skip <START>
        bool isSequenceBlank = string.IsNullOrEmpty(subtitle.sequence);
        bool isLastEntry = !DialogueManager.currentConversationState.hasAnyResponses;
        if (isFirstEntry && isSequenceBlank) subtitle.sequence = DefaultFirstSequence;
        else if (isLastEntry && isSequenceBlank) subtitle.sequence = DefaultLastSequence;
        isFirstEntry = false;
    }
}
Post Reply