[HOWTO] How To: Specify Different First & Last Default Sequences
Posted: Thu Nov 28, 2024 9:21 pm
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:
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;
}
}