Renamed actor, got error referencing prefab, not scene object

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
nicmar
Posts: 133
Joined: Wed Aug 21, 2019 2:39 am

Renamed actor, got error referencing prefab, not scene object

Post 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)
Working on SpaceChef - A wacky open world space western, featuring a chef with nothing to loose, after he loses everything.. ;) Follow our work on @BlueGooGames.
User avatar
Tony Li
Posts: 22166
Joined: Thu Jul 18, 2013 1:27 pm

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

Post 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.
nicmar
Posts: 133
Joined: Wed Aug 21, 2019 2:39 am

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

Post by nicmar »

That sounds like some great tips and future improvements. Thanks :)
Working on SpaceChef - A wacky open world space western, featuring a chef with nothing to loose, after he loses everything.. ;) Follow our work on @BlueGooGames.
Post Reply