Hi Tony, I'm trying to write a custom sequencer event that will be used as my games default sequence.
I'm trying to figure out how to get the speakers name out and I'll perform conditional logic outside of the dialogue system in the case of certain actor names, such as (player, narrator, logic) as this is how we plan to organize our dialogue tree's.
Thanks!
Custom Sequencer assistance - speaker name?
Re: Custom Sequencer assistance - speaker name?
as soon as I ask I find my answer, mysequencername(entrytag)
```
string currentEntrytag = GetParameter(0);
//Parse entrytag for actor name depending on formatting
```
I want my custom sequencer to help me with the timing of dialogue and events in my game.
Is there a way to delay the text from beginning to type without creating an additional dialogue node with delay(.5) for example? At the end of the day my goal is to avoid creating a delay node before most dialogue entries.
``` default custom sequence - figure out if NPC/Player/Narrator is speaking
raise event 1
raise event 2
wait .6 seconds
begin typing dialogue.
+ normal delay({end})
```
-next dialogue entry -
```
string currentEntrytag = GetParameter(0);
//Parse entrytag for actor name depending on formatting
```
I want my custom sequencer to help me with the timing of dialogue and events in my game.
Is there a way to delay the text from beginning to type without creating an additional dialogue node with delay(.5) for example? At the end of the day my goal is to avoid creating a delay node before most dialogue entries.
``` default custom sequence - figure out if NPC/Player/Narrator is speaking
raise event 1
raise event 2
wait .6 seconds
begin typing dialogue.
+ normal delay({end})
```
-next dialogue entry -
Re: Custom Sequencer assistance - speaker name?
Hi,
If you want to delay before all dialogue entries, you can make a subclass of your typewriter effect (UnityUITypewriterEffect or TextMeshProTypewriterEffect) and override the Play() coroutine to delay 0.5 seconds:
If you only want to delay before some entries, you can make a subclass of StandardUISubtitlePanel. Tick your subtitle panel's Delay Typewriter Until Open checkbox, and override the StartTypingWhenFocused coroutine. For example, you could set it to wait for a duration specified by a static variable, something like:
and use a sequencer command to set the static variable:
If you want to delay before all dialogue entries, you can make a subclass of your typewriter effect (UnityUITypewriterEffect or TextMeshProTypewriterEffect) and override the Play() coroutine to delay 0.5 seconds:
Code: Select all
public class MyTypewriterEffect : TextMeshProTypewriterEffect
{
public virtual IEnumerator Play(int fromIndex)
{
yield return new WaitForSeconds(0.5f);
yield return base.Play(fromIndex);
}
}
Code: Select all
public class MySubtitlePanel : StandardUISubtitlePanel
{
public static float TypewriterDelay = 0;
protected override IEnumerator StartTypingWhenFocused(UITextField subtitleText, string text, int fromIndex)
{
if (TypewriterDelay > 0) yield return new WaitForSeconds(TypewriterDelay);
TypewriterDelay = 0;
yield return base.StartTypingWhenFocused(subtitleText, text, fromIndex);
}
}
Code: Select all
public class SequencerCommandSetTypewriterDelay : SequencerCommand
{
void Awake()
{
MySubtitlePanel.TypewriterDelay = GetParameterAsFloat(0);
Stop();
}
}
Re: Custom Sequencer assistance - speaker name?
Awesome! Thank you so much for the help!!
Re: Custom Sequencer assistance - speaker name?
Glad to help!