Page 1 of 1

Renamed actor, got error referencing prefab, not scene object

Posted: Wed Feb 17, 2021 9:03 am
by nicmar
I renamed an actor, and got the error below. It took a while to realize the rename was the issue, but when I changed the dropdown in the dialogue actor, it started working again.

But is there a better way to catch this, than getting this error? And is there a way to make sure the actor setting is updated if I rename it?

I tried to add a persistent data name, but it didn't seem to have any effect on this issue.

Thanks! :)

Code: Select all

Coroutine 'CustomOpen' couldn't be started because the the game object 'BG Subtitle 3.0' is inactive!
UnityEngine.MonoBehaviour:StartCoroutine(String)
CustomStandardUISubtitlePanel:OnTypewriterBegin() (at Assets/_Game/Scripts/BlueGoo/Interaction/Dialogue/CustomStandardUISubtitlePanel.cs:45)
UnityEngine.Events.UnityEvent:Invoke()
PixelCrushers.DialogueSystem.<Play>d__40:MoveNext() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI/Utility/TextMeshProTypewriterEffect.cs:246)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
PixelCrushers.DialogueSystem.TextMeshProTypewriterEffect:StartTypewriterCoroutine(Int32) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI/Utility/TextMeshProTypewriterEffect.cs:232)
PixelCrushers.DialogueSystem.CustomUnityUITypewriterEffect:StartTypewriterCoroutine(Int32) (at Assets/_Game/Scripts/BlueGoo/Interaction/Dialogue/CustomUnityUITypewriterEffect.cs:40)
PixelCrushers.DialogueSystem.TextMeshProTypewriterEffect:StartTyping(String, Int32) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI/Utility/TextMeshProTypewriterEffect.cs:203)
PixelCrushers.DialogueSystem.CustomUnityUITypewriterEffect:StartTyping(String, Int32) (at Assets/_Game/Scripts/BlueGoo/Interaction/Dialogue/CustomUnityUITypewriterEffect.cs:34)
PixelCrushers.DialogueSystem.TypewriterUtility:StartTyping(UITextField, String, Int32) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI/Utility/TypewriterUtility.cs:46)
PixelCrushers.DialogueSystem.StandardUISubtitlePanel:SetContent(Subtitle) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI/Standard/Dialogue/StandardUISubtitlePanel.cs:481)
PixelCrushers.DialogueSystem.StandardUISubtitlePanel:ShowSubtitleNow(Subtitle) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI/Standard/Dialogue/StandardUISubtitlePanel.cs:241)
PixelCrushers.DialogueSystem.StandardUISubtitlePanel:ShowSubtitle(Subtitle) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI/Standard/Dialogue/StandardUISubtitlePanel.cs:231)
PixelCrushers.DialogueSystem.StandardUISubtitleControls:ShowSubtitle(Subtitle) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI/Standard/Dialogue/StandardUISubtitleControls.cs:353)
CustomDialogueUI:ShowSubtitle(Subtitle) (at Assets/_Game/Scripts/BlueGoo/Interaction/Dialogue/CustomDialogueUI.cs:10)
PixelCrushers.DialogueSystem.ConversationView:StartSubtitle(Subtitle, Boolean, Boolean) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/View/View/ConversationView.cs:141)
PixelCrushers.DialogueSystem.ConversationController:GotoState(ConversationState) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Controller/ConversationController.cs:208)
PixelCrushers.DialogueSystem.ConversationController:OnFinishedSubtitle(Object, EventArgs) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Controller/ConversationController.cs:265)
PixelCrushers.DialogueSystem.ConversationView:FinishSubtitle() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/View/View/ConversationView.cs:399)
PixelCrushers.DialogueSystem.ConversationView:OnFinishedSubtitle() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/View/View/ConversationView.cs:406)
PixelCrushers.DialogueSystem.Sequencer:FinishSequence() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Sequencer/Sequencer.cs:508)
PixelCrushers.DialogueSystem.Sequencer:Update() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Sequencer/Sequencer.cs:500)

Re: Renamed actor, got error referencing prefab, not scene object

Posted: Wed Feb 17, 2021 9:22 am
by Tony Li
Hi Niclas,

There currently isn't a better way, but here are some tips/notes:
  • You can leave the actor's Name unchanged and set the actor's Display Name. (The same idea applies to quests' Names and Display Names, too.)
  • Actor references inside dialogue databases go by internal ID number, so the database itself will be fine if you change an actor's Name.
  • In the current DS version, the Tools > Pixel Crushers > Dialogue System > Tools > Asset Renamer window can rename variables. If you rename a variable using this tool, it will update databases and references to the variable in scenes' Dialogue System Triggers, etc. In the next DS version, you'll be able to rename actors and quests, and it will update Dialogue Actors and Dialogue System Triggers.

Re: Renamed actor, got error referencing prefab, not scene object

Posted: Wed Feb 17, 2021 1:40 pm
by nicmar
That sounds like some great tips and future improvements. Thanks :)