Oh, I understand what you mean now. The panels are designed to show their portraits only as long as the panel is visible. You might prefer to not show the PC's portrait at all. (Unassign it from the response menu panel.)
If you want to show it for longer than the panel is visible, you'll need to do a little scripting. Just thinking off the top of my head, you could:
1. Write a little script that manages the portrait image, with a method that queues up the display of a portrait sprite. It should always allow a minimum amount of time (e.g., 1 second) to show the current sprite before changing to the next sprite in the queue. Rough pseudocode:
Code: Select all
public class PortraitManager : MonoBehaviour
{
public void ShowPortrait(Sprite portraitSprite)
{
queue.Enqueue(portraitSprite);
}
void Update()
{
if (CurrentSpriteHasShownLongEnough() && !queue.Empty())
{
ShowNextQueuedSpriteAndResetTimer();
}
}
}
2. Unassign the portrait image from the subtitle panel and menu panel. Write subclasses that override StandardUISubtitlePanel.ShowSubtitle and StandardUIMenuPanel.ShowResponses. Rough example:
Code: Select all
public class MySubtitlePanel : StandardUISubtitlePanel
{
public override void ShowSubtitle(Subtitle subtitle)
{
base.ShowSubtitle(subtitle); // Since portrait image is unassigned, base method won't show it.
portraitManager.ShowPortrait(subtitle.speakerInfo.portrait); // Queue up portrait image to be shown.
}
}