PixelCrushers.DialogueSystem.DialogueSystemController Class Reference

This component ties together the elements of the dialogue system: dialogue database, dialogue UI, sequencer, and conversation controller. More...

Inheritance diagram for PixelCrushers.DialogueSystem.DialogueSystemController:
Collaboration diagram for PixelCrushers.DialogueSystem.DialogueSystemController:

Public Member Functions

void OnDestroy ()
 
void Awake ()
 Initializes the component by setting up the dialogue database and preparing the dialogue UI. More...
 
bool StandardGetInputButtonDown (string buttonName)
 Standard Unity Input method to check if a button is down. More...
 
bool IsDialogueSystemInputDisabled ()
 Returns true if Dialogue System input is disabled. More...
 
void SetDialogueSystemInput (bool value)
 Enables or disables Dialogue System input. More...
 
void Start ()
 Start by enforcing only one instance is specified. More...
 
void SetLanguage (string language)
 Sets the language to use for localized text. More...
 
void AddDatabase (DialogueDatabase database)
 Adds a dialogue database to memory. More...
 
void RemoveDatabase (DialogueDatabase database)
 Removes a dialogue database from memory. More...
 
void ResetDatabase (DatabaseResetOptions databaseResetOptions)
 Resets the database to a default state. More...
 
void PreloadMasterDatabase ()
 Preloads the master database. More...
 
void PreloadDialogueUI ()
 Preloads the dialogue UI. More...
 
bool ConversationHasValidEntry (string title, Transform actor, Transform conversant)
 Checks whether a conversation has any valid entries linked from the start entry, since it's possible that the conditions of all entries could be false. More...
 
bool ConversationHasValidEntry (string title, Transform actor)
 Checks whether a conversation has any valid entries linked from the start entry, since it's possible that the conditions of all entries could be false. More...
 
bool ConversationHasValidEntry (string title)
 Checks whether a conversation has any valid entries linked from the start entry, since it's possible that the conditions of all entries could be false. More...
 
void PreloadResources ()
 Preloads the resources used by the Dialogue System to avoid delays caused by lazy loading. More...
 
void StartConversation (string title, Transform actor, Transform conversant, int initialDialogueEntryID)
 Starts a conversation, which also broadcasts an OnConversationStart message to the actor and conversant. More...
 
void StartConversation (string title, Transform actor, Transform conversant)
 Starts a conversation, which also broadcasts an OnConversationStart message to the actor and conversant. More...
 
void StartConversation (string title, Transform actor)
 Starts a conversation, which also broadcasts an OnConversationStart message to the actor. More...
 
void StartConversation (string title)
 Starts the conversation with no transforms specified for the actor or conversant. More...
 
void StopConversation ()
 Stops the current conversation immediately, and sends an OnConversationEnd message to the actor and conversant. More...
 
void UpdateResponses ()
 Updates the responses for the current state of the current conversation. More...
 
Transform FindActorTransformFromConversation (string conversationTitle, string actorField)
 Given a conversation and an actor ID field name (Actor or Conversant), return a corresponding transform in the scene, or null if none found. More...
 
void SetPortrait (string actorName, string portraitName)
 Sets an actor's portrait. More...
 
void SetActorPortraitTexture (string actorName, Texture2D portraitTexture)
 This method is used internally by SetPortrait() to set the portrait texture for an actor. More...
 
void OnEndConversation (ConversationController endingConversationController)
 Handles the end conversation event. More...
 
void OnConversationTimeout ()
 Handles the conversation response menu timeout event. More...
 
void Bark (string conversationTitle, Transform speaker, Transform listener, BarkHistory barkHistory)
 Causes a character to bark a line at another character. More...
 
void Bark (string conversationTitle, Transform speaker, Transform listener)
 Causes a character to bark a line at another character. More...
 
void Bark (string conversationTitle, Transform speaker)
 Causes a character to bark a line. More...
 
void Bark (string conversationTitle, Transform speaker, BarkHistory barkHistory)
 Causes a character to bark a line. More...
 
void BarkString (string barkText, Transform speaker, Transform listener=null, string sequence=null)
 Causes a character to bark a literal string instead of looking up its line from a conversation. More...
 
float GetBarkDuration (string barkText)
 Returns the default duration that a string of bark text will be shown. More...
 
void ShowAlert (string message, float duration)
 Shows an alert message using the dialogue UI. More...
 
void ShowAlert (string message)
 Shows an alert message using the dialogue UI for the UI's default duration. More...
 
void CheckAlerts ()
 Checks the value of Lua Variable['Alert']. More...
 
string GetLocalizedText (string s)
 Gets localized text. More...
 
Sequencer PlaySequence (string sequence, Transform speaker, Transform listener, bool informParticipants, bool destroyWhenDone, string entrytag)
 Starts a sequence. More...
 
Sequencer PlaySequence (string sequence, Transform speaker, Transform listener, bool informParticipants, bool destroyWhenDone)
 Starts a sequence. More...
 
Sequencer PlaySequence (string sequence, Transform speaker, Transform listener, bool informParticipants)
 Starts a sequence. More...
 
Sequencer PlaySequence (string sequence, Transform speaker, Transform listener)
 Starts a sequence, and sends OnSequenceStart/OnSequenceEnd messages to the participants. More...
 
Sequencer PlaySequence (string sequence)
 Starts a sequence. More...
 
void StopSequence (Sequencer sequencer)
 Stops a sequence. More...
 
void Pause ()
 Pauses the Dialogue System. More...
 
void Unpause ()
 Unpauses the Dialogue System. More...
 
void UseDialogueUI (GameObject gameObject)
 Sets the dialogue UI. More...
 
void AddLuaObserver (string luaExpression, LuaWatchFrequency frequency, LuaChangedDelegate luaChangedHandler)
 Adds a Lua expression observer. More...
 
void RemoveLuaObserver (string luaExpression, LuaWatchFrequency frequency, LuaChangedDelegate luaChangedHandler)
 Removes a Lua expression observer. More...
 
void RemoveAllObservers (LuaWatchFrequency frequency)
 Removes all Lua expression observers for a specified frequency. More...
 
void RemoveAllObservers ()
 Removes all Lua expression observers. More...
 
void RegisterAssetBundle (AssetBundle bundle)
 Registers an asset bundle with the Dialogue System. More...
 
void UnregisterAssetBundle (AssetBundle bundle)
 Unregisters an asset bundle from the Dialogue System. More...
 
UnityEngine.Object LoadAsset (string name)
 Loads a named asset from the registered asset bundles or from Resources. More...
 
UnityEngine.Object LoadAsset (string name, System.Type type)
 Loads a named asset from the registered asset bundles or from Resources. More...
 

Static Public Member Functions

static void LuaShowAlert (string message)
 

Public Attributes

DialogueDatabase initialDatabase = null
 The initial dialogue database. More...
 
DisplaySettings displaySettings = new DisplaySettings()
 The display settings to use for the dialogue UI and sequencer. More...
 
PersistentDataSettings persistentDataSettings = new PersistentDataSettings()
 Settings to apply to the PersistentDataManager. More...
 
bool allowSimultaneousConversations = false
 Set true to allow more than one conversation to play simultaneously. More...
 
bool includeSimStatus = false
 Set true to include sim status for each dialogue entry. More...
 
bool preloadResources = false
 If true, preloads the master database and dialogue UI. More...
 
bool instantiateDatabase = false
 
bool dontDestroyOnLoad = true
 If true, Unity will not destroy the game object when loading a new level. More...
 
bool allowOnlyOneInstance = true
 If true, new DialogueSystemController objects will destroy themselves if one already exists in the scene. More...
 
DialogueTime.TimeMode dialogueTimeMode = DialogueTime.TimeMode.Realtime
 Time mode to use for conversations. More...
 
DialogueDebug.DebugLevel debugLevel = DialogueDebug.DebugLevel.Warning
 The debug level. More...
 

Static Public Attributes

static bool applicationIsQuitting = false
 
static string lastInitialDatabaseName = null
 

Properties

DatabaseManager DatabaseManager [get]
 Gets the dialogue database manager. More...
 
DialogueDatabase MasterDatabase [get]
 Gets the master dialogue database, which contains the initial database and any additional databases that you have added. More...
 
IDialogueUI DialogueUI [get, set]
 Gets or sets the dialogue UI, which is an implementation of IDialogueUI. More...
 
IsDialogueEntryValidDelegate IsDialogueEntryValid [get, set]
 The IsDialogueEntryValid delegate (if one is assigned). More...
 
GetInputButtonDownDelegate GetInputButtonDown [get, set]
 The GetInputButtonDown delegate. More...
 
bool IsConversationActive [get]
 Indicates whether a conversation is currently active. More...
 
Transform CurrentActor [get]
 Gets the current actor of the last conversation started if a conversation is active. More...
 
Transform CurrentConversant [get]
 Gets the current conversant of the last conversation started if a conversation is active. More...
 
ConversationState CurrentConversationState [get, set]
 Gets or sets the current conversation state of the last conversation that had a line. More...
 
string LastConversationStarted [get]
 Gets the title of the last conversation started. More...
 
int LastConversationID [get]
 Gets the ID of the last conversation started. More...
 
ConversationController ConversationController [get]
 
ConversationModelConversationModel [get]
 
ConversationViewConversationView [get]
 
List< ActiveConversationRecordActiveConversations [get]
 
bool AllowLuaExceptions [get, set]
 Indicates whether to allow the Lua environment to pass exceptions up to the caller. More...
 
bool WarnIfActorAndConversantSame [get, set]
 If true, warns if a conversation starts with the actor and conversant pointing to the same transform. More...
 

Detailed Description

This component ties together the elements of the dialogue system: dialogue database, dialogue UI, sequencer, and conversation controller.

You will typically add this to a "manager" type game object in your scene. For simplified script access, you can use the DialogueManager static class.

Member Function Documentation

◆ AddDatabase()

void PixelCrushers.DialogueSystem.DialogueSystemController.AddDatabase ( DialogueDatabase  database)

Adds a dialogue database to memory.

To save memory or reduce load time, you may want to break up your dialogue data into multiple smaller databases. You can add or remove these databases as needed.

Parameters
databaseThe database to add.

◆ AddLuaObserver()

void PixelCrushers.DialogueSystem.DialogueSystemController.AddLuaObserver ( string  luaExpression,
LuaWatchFrequency  frequency,
LuaChangedDelegate  luaChangedHandler 
)

Adds a Lua expression observer.

Parameters
luaExpressionLua expression to watch.
frequencyFrequency to check the expression.
luaChangedHandlerDelegate to call when the expression changes. This should be in the form:
void MyDelegate(LuaWatchItem luaWatchItem, Lua.Result newValue) {...}

◆ Awake()

void PixelCrushers.DialogueSystem.DialogueSystemController.Awake ( )

Initializes the component by setting up the dialogue database and preparing the dialogue UI.

If the assigned UI is a prefab, an instance is added. If no UI is assigned, the default UI is loaded.

◆ Bark() [1/4]

void PixelCrushers.DialogueSystem.DialogueSystemController.Bark ( string  conversationTitle,
Transform  speaker 
)

Causes a character to bark a line.

A bark is a line spoken outside of a full conversation. It uses a simple gameplay bark UI instead of the dialogue UI. Since this form of the Bark() method does not include a BarkHistory, a random bark is selected from the bark lines.

Parameters
conversationTitleTitle of the conversation that contains the bark lines. In this conversation, all dialogue entries linked from the first entry are considered bark lines.
speakerThe character barking the line.

◆ Bark() [2/4]

void PixelCrushers.DialogueSystem.DialogueSystemController.Bark ( string  conversationTitle,
Transform  speaker,
BarkHistory  barkHistory 
)

Causes a character to bark a line.

A bark is a line spoken outside of a full conversation. It uses a simple gameplay bark UI instead of the dialogue UI.

Parameters
conversationTitleTitle of the conversation that contains the bark lines. In this conversation, all dialogue entries linked from the first entry are considered bark lines.
speakerThe character barking the line.
barkHistoryBark history used to track the most recent bark, so the bark controller can go through the bark lines in a specified order.

◆ Bark() [3/4]

void PixelCrushers.DialogueSystem.DialogueSystemController.Bark ( string  conversationTitle,
Transform  speaker,
Transform  listener 
)

Causes a character to bark a line at another character.

A bark is a line spoken outside of a full conversation. It uses a simple gameplay bark UI instead of the dialogue UI. Since this form of the Bark() method does not include a BarkHistory, a random bark is selected from the bark lines.

Parameters
conversationTitleTitle of the conversation that contains the bark lines. In this conversation, all dialogue entries linked from the first entry are considered bark lines.
speakerThe character barking the line.
listenerThe character being barked at.

◆ Bark() [4/4]

void PixelCrushers.DialogueSystem.DialogueSystemController.Bark ( string  conversationTitle,
Transform  speaker,
Transform  listener,
BarkHistory  barkHistory 
)

Causes a character to bark a line at another character.

A bark is a line spoken outside of a full conversation. It uses a simple gameplay bark UI instead of the dialogue UI.

Parameters
conversationTitleTitle of the conversation that contains the bark lines. In this conversation, all dialogue entries linked from the first entry are considered bark lines.
speakerThe character barking the line.
listenerThe character being barked at.
barkHistoryBark history used to track the most recent bark, so the bark controller can go through the bark lines in a specified order.

◆ BarkString()

void PixelCrushers.DialogueSystem.DialogueSystemController.BarkString ( string  barkText,
Transform  speaker,
Transform  listener = null,
string  sequence = null 
)

Causes a character to bark a literal string instead of looking up its line from a conversation.

Parameters
barkTextThe string to bark.
speakerThe barker.
listenerThe target of the bark. (May be null)
sequenceThe optional sequence to play. (May be null or empty)

◆ CheckAlerts()

void PixelCrushers.DialogueSystem.DialogueSystemController.CheckAlerts ( )

Checks the value of Lua Variable['Alert'].

If set, it shows the alert and clears the variable.

◆ ConversationHasValidEntry() [1/3]

bool PixelCrushers.DialogueSystem.DialogueSystemController.ConversationHasValidEntry ( string  title)

Checks whether a conversation has any valid entries linked from the start entry, since it's possible that the conditions of all entries could be false.

Returns
true, if the conversation has a valid entry, false otherwise.
Parameters
titleThe title of the conversation to look up in the master database.

◆ ConversationHasValidEntry() [2/3]

bool PixelCrushers.DialogueSystem.DialogueSystemController.ConversationHasValidEntry ( string  title,
Transform  actor 
)

Checks whether a conversation has any valid entries linked from the start entry, since it's possible that the conditions of all entries could be false.

Returns
true, if the conversation has a valid entry, false otherwise.
Parameters
titleThe title of the conversation to look up in the master database.
actorThe transform of the actor (primary participant). The sequencer uses this to direct camera angles and perform other actions. In PC-NPC conversations, the actor is usually the PC.

◆ ConversationHasValidEntry() [3/3]

bool PixelCrushers.DialogueSystem.DialogueSystemController.ConversationHasValidEntry ( string  title,
Transform  actor,
Transform  conversant 
)

Checks whether a conversation has any valid entries linked from the start entry, since it's possible that the conditions of all entries could be false.

Returns
true, if the conversation has a valid entry, false otherwise.
Parameters
titleThe title of the conversation to look up in the master database.
actorThe transform of the actor (primary participant). The sequencer uses this to direct camera angles and perform other actions. In PC-NPC conversations, the actor is usually the PC.
conversantThe transform of the conversant (the other participant). The sequencer uses this to direct camera angles and perform other actions. In PC-NPC conversations, the conversant is usually the NPC.

◆ FindActorTransformFromConversation()

Transform PixelCrushers.DialogueSystem.DialogueSystemController.FindActorTransformFromConversation ( string  conversationTitle,
string  actorField 
)

Given a conversation and an actor ID field name (Actor or Conversant), return a corresponding transform in the scene, or null if none found.

Parameters
conversationTitleConversation title.
actorFieldActor or Conversant.
Returns
Transform in the scene, or null if no appropriate one found.

◆ GetBarkDuration()

float PixelCrushers.DialogueSystem.DialogueSystemController.GetBarkDuration ( string  barkText)

Returns the default duration that a string of bark text will be shown.

Parameters
barkTextThe text that will be barked (to determine the duration).
Returns
The default duration in seconds for the specified bark text.

◆ GetLocalizedText()

string PixelCrushers.DialogueSystem.DialogueSystemController.GetLocalizedText ( string  s)

Gets localized text.

Returns
If the specified field exists in the table, returns the field's localized text for the current language. Otherwise returns the field itself.
Parameters
sThe field to look up.

◆ IsDialogueSystemInputDisabled()

bool PixelCrushers.DialogueSystem.DialogueSystemController.IsDialogueSystemInputDisabled ( )

Returns true if Dialogue System input is disabled.

Returns

◆ LoadAsset() [1/2]

UnityEngine.Object PixelCrushers.DialogueSystem.DialogueSystemController.LoadAsset ( string  name)

Loads a named asset from the registered asset bundles or from Resources.

Returns
The asset, or null if not found.
Parameters
nameName of the asset.

◆ LoadAsset() [2/2]

UnityEngine.Object PixelCrushers.DialogueSystem.DialogueSystemController.LoadAsset ( string  name,
System.Type  type 
)

Loads a named asset from the registered asset bundles or from Resources.

Returns
The asset, or null if not found.
Parameters
nameName of the asset.
typeType of the asset.

◆ LuaShowAlert()

static void PixelCrushers.DialogueSystem.DialogueSystemController.LuaShowAlert ( string  message)
static

◆ OnConversationTimeout()

void PixelCrushers.DialogueSystem.DialogueSystemController.OnConversationTimeout ( )

Handles the conversation response menu timeout event.

◆ OnDestroy()

void PixelCrushers.DialogueSystem.DialogueSystemController.OnDestroy ( )

◆ OnEndConversation()

void PixelCrushers.DialogueSystem.DialogueSystemController.OnEndConversation ( ConversationController  endingConversationController)

Handles the end conversation event.

◆ Pause()

void PixelCrushers.DialogueSystem.DialogueSystemController.Pause ( )

Pauses the Dialogue System.

Also broadcasts OnDialogueSystemPause to the Dialogue Manager and conversation participants. Conversations, timers, typewriter and fade effects, and the AudioWait() and Voice() sequencer commands will be paused. Other than this, AudioSource, Animation, and Animator components will not be paused; it's up to you to handle them as appropriate for your project.

◆ PlaySequence() [1/5]

Sequencer PixelCrushers.DialogueSystem.DialogueSystemController.PlaySequence ( string  sequence)

Starts a sequence.

See sequencer.

Returns
The sequencer that is playing the sequence.
Parameters
sequenceThe sequence to play.

◆ PlaySequence() [2/5]

Sequencer PixelCrushers.DialogueSystem.DialogueSystemController.PlaySequence ( string  sequence,
Transform  speaker,
Transform  listener 
)

Starts a sequence, and sends OnSequenceStart/OnSequenceEnd messages to the participants.

See sequencer.

Returns
The sequencer that is playing the sequence.
Parameters
sequenceThe sequence to play.
speakerThe speaker, for sequence commands that reference the speaker.
listenerThe listener, for sequence commands that reference the listener.

◆ PlaySequence() [3/5]

Sequencer PixelCrushers.DialogueSystem.DialogueSystemController.PlaySequence ( string  sequence,
Transform  speaker,
Transform  listener,
bool  informParticipants 
)

Starts a sequence.

See sequencer.

Returns
The sequencer that is playing the sequence.
Parameters
sequenceThe sequence to play.
speakerThe speaker, for sequence commands that reference the speaker.
listenerThe listener, for sequence commands that reference the listener.
informParticipantsSpecifies whether to send OnSequenceStart and OnSequenceEnd messages to the speaker and listener. Default is true.

◆ PlaySequence() [4/5]

Sequencer PixelCrushers.DialogueSystem.DialogueSystemController.PlaySequence ( string  sequence,
Transform  speaker,
Transform  listener,
bool  informParticipants,
bool  destroyWhenDone 
)

Starts a sequence.

See sequencer.

Returns
The sequencer that is playing the sequence.
Parameters
sequenceThe sequence to play.
speakerThe speaker, for sequence commands that reference the speaker.
listenerThe listener, for sequence commands that reference the listener.
informParticipantsSpecifies whether to send OnSequenceStart and OnSequenceEnd messages to the speaker and listener. Default is true.
destroyWhenDoneSpecifies whether destroy the sequencer when done playing the sequence. Default is true.

◆ PlaySequence() [5/5]

Sequencer PixelCrushers.DialogueSystem.DialogueSystemController.PlaySequence ( string  sequence,
Transform  speaker,
Transform  listener,
bool  informParticipants,
bool  destroyWhenDone,
string  entrytag 
)

Starts a sequence.

See sequencer.

Parameters
sequenceThe sequence to play.
speakerThe speaker, for sequence commands that reference the speaker.
listenerThe listener, for sequence commands that reference the listener.
informParticipantsSpecifies whether to send OnSequenceStart and OnSequenceEnd messages to the speaker and listener. Default is true.
destroyWhenDoneSpecifies whether destroy the sequencer when done playing the sequence. Default is
entrytagThe entrytag to associate with the sequence.
Returns
The sequencer that is playing the sequence.

◆ PreloadDialogueUI()

void PixelCrushers.DialogueSystem.DialogueSystemController.PreloadDialogueUI ( )

Preloads the dialogue UI.

The Dialogue System delays loading of the dialogue UI until the first time it's needed for a conversation or alert. Since dialogue UIs often contain textures and other art assets, loading can cause a slight pause. You may want to preload the UI at a time of your design by using this method.

◆ PreloadMasterDatabase()

void PixelCrushers.DialogueSystem.DialogueSystemController.PreloadMasterDatabase ( )

Preloads the master database.

The Dialogue System delays loading of the dialogue database until the data is needed. This avoids potentially long delays during Start(). If you want to load the database manually (for example to run Lua commands on its contents), call this method.

◆ PreloadResources()

void PixelCrushers.DialogueSystem.DialogueSystemController.PreloadResources ( )

Preloads the resources used by the Dialogue System to avoid delays caused by lazy loading.

◆ RegisterAssetBundle()

void PixelCrushers.DialogueSystem.DialogueSystemController.RegisterAssetBundle ( AssetBundle  bundle)

Registers an asset bundle with the Dialogue System.

This allows sequencer commands to load assets inside it.

Parameters
bundleAsset bundle.

◆ RemoveAllObservers() [1/2]

void PixelCrushers.DialogueSystem.DialogueSystemController.RemoveAllObservers ( )

Removes all Lua expression observers.

◆ RemoveAllObservers() [2/2]

void PixelCrushers.DialogueSystem.DialogueSystemController.RemoveAllObservers ( LuaWatchFrequency  frequency)

Removes all Lua expression observers for a specified frequency.

Parameters
frequencyFrequency.

◆ RemoveDatabase()

void PixelCrushers.DialogueSystem.DialogueSystemController.RemoveDatabase ( DialogueDatabase  database)

Removes a dialogue database from memory.

To save memory or reduce load time, you may want to break up your dialogue data into multiple smaller databases. You can add or remove these databases as needed.

Parameters
databaseThe database to remove.

◆ RemoveLuaObserver()

void PixelCrushers.DialogueSystem.DialogueSystemController.RemoveLuaObserver ( string  luaExpression,
LuaWatchFrequency  frequency,
LuaChangedDelegate  luaChangedHandler 
)

Removes a Lua expression observer.

To be removed, the expression, frequency, and notification delegate must all match.

Parameters
luaExpressionLua expression being watched.
frequencyFrequency that the expression is being watched.
luaChangedHandlerDelegate that's called when the expression changes.

◆ ResetDatabase()

void PixelCrushers.DialogueSystem.DialogueSystemController.ResetDatabase ( DatabaseResetOptions  databaseResetOptions)

Resets the database to a default state.

Parameters
databaseResetOptionsAccepts the following values:
  • RevertToDefault: Restores the default database, removing any other databases that were added after startup.
  • KeepAllLoaded: Keeps all loaded databases in memory, but reverts them to their starting values.

◆ SetActorPortraitTexture()

void PixelCrushers.DialogueSystem.DialogueSystemController.SetActorPortraitTexture ( string  actorName,
Texture2D  portraitTexture 
)

This method is used internally by SetPortrait() to set the portrait texture for an actor.

Parameters
actorNameActor name.
portraitTexturePortrait texture.

◆ SetDialogueSystemInput()

void PixelCrushers.DialogueSystem.DialogueSystemController.SetDialogueSystemInput ( bool  value)

Enables or disables Dialogue System input.

Parameters
valueTrue to enable, false to disable.

◆ SetLanguage()

void PixelCrushers.DialogueSystem.DialogueSystemController.SetLanguage ( string  language)

Sets the language to use for localized text.

Parameters
languageLanguage to use. Specify null or an emtpy string to use the default language.

◆ SetPortrait()

void PixelCrushers.DialogueSystem.DialogueSystemController.SetPortrait ( string  actorName,
string  portraitName 
)

Sets an actor's portrait.

If can be:

  • 'default' or null to use the primary portrait defined in the database,
  • 'pic=#' to use an alternate portrait defined in the database (numbered from 2), or
  • the name of a texture in a Resources folder.
Parameters
actorNameActor name.
portraitNamePortrait name.

◆ ShowAlert() [1/2]

void PixelCrushers.DialogueSystem.DialogueSystemController.ShowAlert ( string  message)

Shows an alert message using the dialogue UI for the UI's default duration.

Parameters
messageThe message to show.

◆ ShowAlert() [2/2]

void PixelCrushers.DialogueSystem.DialogueSystemController.ShowAlert ( string  message,
float  duration 
)

Shows an alert message using the dialogue UI.

Parameters
messageThe message to show.
durationThe duration in seconds to show the message.

◆ StandardGetInputButtonDown()

bool PixelCrushers.DialogueSystem.DialogueSystemController.StandardGetInputButtonDown ( string  buttonName)

Standard Unity Input method to check if a button is down.

Parameters
buttonName
Returns

◆ Start()

void PixelCrushers.DialogueSystem.DialogueSystemController.Start ( )

Start by enforcing only one instance is specified.

Then start monitoring alerts.

◆ StartConversation() [1/4]

void PixelCrushers.DialogueSystem.DialogueSystemController.StartConversation ( string  title)

Starts the conversation with no transforms specified for the actor or conversant.

Parameters
titleThe title of the conversation to look up in the master database.

◆ StartConversation() [2/4]

void PixelCrushers.DialogueSystem.DialogueSystemController.StartConversation ( string  title,
Transform  actor 
)

Starts a conversation, which also broadcasts an OnConversationStart message to the actor.

Your scripts can listen for OnConversationStart to do anything necessary at the beginning of a conversation, such as pausing other gameplay or temporarily disabling player control. See the Feature Demo scene, which uses the SetEnabledOnDialogueEvent component to disable player control during conversations.

Parameters
titleThe title of the conversation to look up in the master database.
actorThe transform of the actor (primary participant). The sequencer uses this to direct camera angles and perform other actions. In PC-NPC conversations, the actor is usually the PC.

◆ StartConversation() [3/4]

void PixelCrushers.DialogueSystem.DialogueSystemController.StartConversation ( string  title,
Transform  actor,
Transform  conversant 
)

Starts a conversation, which also broadcasts an OnConversationStart message to the actor and conversant.

Your scripts can listen for OnConversationStart to do anything necessary at the beginning of a conversation, such as pausing other gameplay or temporarily disabling player control. See the Feature Demo scene, which uses the SetEnabledOnDialogueEvent component to disable player control during conversations.

Parameters
titleThe title of the conversation to look up in the master database.
actorThe transform of the actor (primary participant). The sequencer uses this to direct camera angles and perform other actions. In PC-NPC conversations, the actor is usually the PC.
conversantThe transform of the conversant (the other participant). The sequencer uses this to direct camera angles and perform other actions. In PC-NPC conversations, the conversant is usually the NPC.

Example:

StartConversation("Shopkeeper Conversation", player, shopkeeper);

◆ StartConversation() [4/4]

void PixelCrushers.DialogueSystem.DialogueSystemController.StartConversation ( string  title,
Transform  actor,
Transform  conversant,
int  initialDialogueEntryID 
)

Starts a conversation, which also broadcasts an OnConversationStart message to the actor and conversant.

Your scripts can listen for OnConversationStart to do anything necessary at the beginning of a conversation, such as pausing other gameplay or temporarily disabling player control. See the Feature Demo scene, which uses the SetEnabledOnDialogueEvent component to disable player control during conversations.

Parameters
titleThe title of the conversation to look up in the master database.
actorThe transform of the actor (primary participant). The sequencer uses this to direct camera angles and perform other actions. In PC-NPC conversations, the actor is usually the PC.
conversantThe transform of the conversant (the other participant). The sequencer uses this to direct camera angles and perform other actions. In PC-NPC conversations, the conversant is usually the NPC.
initialDialogueEntryIDThe initial dialogue entry ID, or -1 to start from the beginning.

Example:

StartConversation("Shopkeeper Conversation", player, shopkeeper, 8);

◆ StopConversation()

void PixelCrushers.DialogueSystem.DialogueSystemController.StopConversation ( )

Stops the current conversation immediately, and sends an OnConversationEnd message to the actor and conversant.

Your scripts can listen for OnConversationEnd to do anything necessary at the end of a conversation, such as resuming other gameplay or re-enabling player control.

◆ StopSequence()

void PixelCrushers.DialogueSystem.DialogueSystemController.StopSequence ( Sequencer  sequencer)

Stops a sequence.

Parameters
sequencerThe sequencer playing the sequence.

◆ Unpause()

void PixelCrushers.DialogueSystem.DialogueSystemController.Unpause ( )

Unpauses the Dialogue System.

Also broadcasts OnDialogueSystemUnpause to the Dialogue Manager and conversation participants.

◆ UnregisterAssetBundle()

void PixelCrushers.DialogueSystem.DialogueSystemController.UnregisterAssetBundle ( AssetBundle  bundle)

Unregisters an asset bundle from the Dialogue System.

Always unregister asset bundles before freeing them.

Parameters
bundleAsset bundle.

◆ UpdateResponses()

void PixelCrushers.DialogueSystem.DialogueSystemController.UpdateResponses ( )

Updates the responses for the current state of the current conversation.

If the response menu entries' conditions have changed while the response menu is being shown, you can call this method to update the response menu.

◆ UseDialogueUI()

void PixelCrushers.DialogueSystem.DialogueSystemController.UseDialogueUI ( GameObject  gameObject)

Sets the dialogue UI.

(Deprecated; just set DialogueUI now.)

Parameters
gameObjectGame object containing an implementation of IDialogueUI.

Member Data Documentation

◆ allowOnlyOneInstance

bool PixelCrushers.DialogueSystem.DialogueSystemController.allowOnlyOneInstance = true

If true, new DialogueSystemController objects will destroy themselves if one already exists in the scene.

Otherwise, if you reload a level and dontDestroyOnLoad is true, you'll end up with a second object.

◆ allowSimultaneousConversations

bool PixelCrushers.DialogueSystem.DialogueSystemController.allowSimultaneousConversations = false

Set true to allow more than one conversation to play simultaneously.

◆ applicationIsQuitting

bool PixelCrushers.DialogueSystem.DialogueSystemController.applicationIsQuitting = false
static

◆ debugLevel

DialogueDebug.DebugLevel PixelCrushers.DialogueSystem.DialogueSystemController.debugLevel = DialogueDebug.DebugLevel.Warning

The debug level.

Information at this level or higher is logged to the console. This can be helpful when tracing through conversations.

◆ dialogueTimeMode

DialogueTime.TimeMode PixelCrushers.DialogueSystem.DialogueSystemController.dialogueTimeMode = DialogueTime.TimeMode.Realtime

Time mode to use for conversations.

  • Realtime: Independent of Time.timeScale.
  • Gameplay: Observe Time.timeScale.
  • Custom: You must manually set DialogueTime.time.

◆ displaySettings

DisplaySettings PixelCrushers.DialogueSystem.DialogueSystemController.displaySettings = new DisplaySettings()

The display settings to use for the dialogue UI and sequencer.

◆ dontDestroyOnLoad

bool PixelCrushers.DialogueSystem.DialogueSystemController.dontDestroyOnLoad = true

If true, Unity will not destroy the game object when loading a new level.

◆ includeSimStatus

bool PixelCrushers.DialogueSystem.DialogueSystemController.includeSimStatus = false

Set true to include sim status for each dialogue entry.

◆ initialDatabase

DialogueDatabase PixelCrushers.DialogueSystem.DialogueSystemController.initialDatabase = null

The initial dialogue database.

◆ instantiateDatabase

bool PixelCrushers.DialogueSystem.DialogueSystemController.instantiateDatabase = false

◆ lastInitialDatabaseName

string PixelCrushers.DialogueSystem.DialogueSystemController.lastInitialDatabaseName = null
static

◆ persistentDataSettings

PersistentDataSettings PixelCrushers.DialogueSystem.DialogueSystemController.persistentDataSettings = new PersistentDataSettings()

Settings to apply to the PersistentDataManager.

◆ preloadResources

bool PixelCrushers.DialogueSystem.DialogueSystemController.preloadResources = false

If true, preloads the master database and dialogue UI.

Otherwise they're lazy- loaded only before the first time they're needed.

Property Documentation

◆ ActiveConversations

List<ActiveConversationRecord> PixelCrushers.DialogueSystem.DialogueSystemController.ActiveConversations
get

◆ AllowLuaExceptions

bool PixelCrushers.DialogueSystem.DialogueSystemController.AllowLuaExceptions
getset

Indicates whether to allow the Lua environment to pass exceptions up to the caller.

The default is false, which allows Lua to catch exceptions and just log an error to the console.

true to allow Lua exceptions; otherwise, false.

◆ ConversationController

ConversationController PixelCrushers.DialogueSystem.DialogueSystemController.ConversationController
get

◆ ConversationModel

ConversationModel? PixelCrushers.DialogueSystem.DialogueSystemController.ConversationModel
get

◆ ConversationView

ConversationView? PixelCrushers.DialogueSystem.DialogueSystemController.ConversationView
get

◆ CurrentActor

Transform PixelCrushers.DialogueSystem.DialogueSystemController.CurrentActor
get

Gets the current actor of the last conversation started if a conversation is active.

The current actor.

◆ CurrentConversant

Transform PixelCrushers.DialogueSystem.DialogueSystemController.CurrentConversant
get

Gets the current conversant of the last conversation started if a conversation is active.

The current conversant.

◆ CurrentConversationState

ConversationState PixelCrushers.DialogueSystem.DialogueSystemController.CurrentConversationState
getset

Gets or sets the current conversation state of the last conversation that had a line.

This is set by ConversationController as the conversation moves from state to state.

The current conversation state.

◆ DatabaseManager

DatabaseManager PixelCrushers.DialogueSystem.DialogueSystemController.DatabaseManager
get

Gets the dialogue database manager.

The database manager.

◆ DialogueUI

IDialogueUI PixelCrushers.DialogueSystem.DialogueSystemController.DialogueUI
getset

Gets or sets the dialogue UI, which is an implementation of IDialogueUI.

The dialogue UI.

◆ GetInputButtonDown

GetInputButtonDownDelegate PixelCrushers.DialogueSystem.DialogueSystemController.GetInputButtonDown
getset

The GetInputButtonDown delegate.

Overrides calls to the standard Unity Input.GetButtonDown function.

◆ IsConversationActive

bool PixelCrushers.DialogueSystem.DialogueSystemController.IsConversationActive
get

Indicates whether a conversation is currently active.

true if the conversation is active; otherwise, false.

◆ IsDialogueEntryValid

IsDialogueEntryValidDelegate PixelCrushers.DialogueSystem.DialogueSystemController.IsDialogueEntryValid
getset

The IsDialogueEntryValid delegate (if one is assigned).

This is an optional delegate that you can add to check if a dialogue entry is valid before allowing a conversation to use it.

◆ LastConversationID

int PixelCrushers.DialogueSystem.DialogueSystemController.LastConversationID
get

Gets the ID of the last conversation started.

◆ LastConversationStarted

string PixelCrushers.DialogueSystem.DialogueSystemController.LastConversationStarted
get

Gets the title of the last conversation started.

If a conversation is active, this is the title of the active conversation.

The title of the last conversation started.

◆ MasterDatabase

DialogueDatabase PixelCrushers.DialogueSystem.DialogueSystemController.MasterDatabase
get

Gets the master dialogue database, which contains the initial database and any additional databases that you have added.

The master database.

◆ WarnIfActorAndConversantSame

bool PixelCrushers.DialogueSystem.DialogueSystemController.WarnIfActorAndConversantSame
getset

If true, warns if a conversation starts with the actor and conversant pointing to the same transform.

Default is false.

true to warn when actor and conversant are the same; otherwise, false.


The documentation for this class was generated from the following file:
PixelCrushers.DialogueSystem.DialogueSystemController.StartConversation
void StartConversation(string title, Transform actor, Transform conversant, int initialDialogueEntryID)
Starts a conversation, which also broadcasts an OnConversationStart message to the actor and conversa...
Definition: DialogueSystemController.cs:602