The actor/conversant appear to be fine in the debugger, but hasInstance is always evaluating to false. Am I missing a manual setup of a DialogSystemController object...?
Does your scene have a DialogueSystemController component? Typically you'll add the Dialogue Manager prefab found in Assets / Plugins / Pixel Crushers / Dialogue System / Prefabs, which has a DialogueSystemController and some other scripts.
If your scene was missing a Dialogue Manager and you add it, make sure to assign your dialogue database to its Initial Database field.
---
EDIT: Sorry, our replies crossed. Yes, there needs to be a Dialogue Manager.
Something is destroying the entire Dialogue Manager object in the runtime hierarchy. It's there when it starts running - I set a breakpoint on setting m_instance, and then it disappears by the time I get to the call stack.
This is super weird. The Dialogue Manager object is in the hierarchy when I hit run, and something is deleting it without any error message. Huh.
Early in the run (between when I hit play and the Debug.Log for the no entries are currently valid) I see in the breakpoint that m_instance is finding the DialogueSystemController fine. Then, the breakpoint for the stack chain I posted hits, and by that point the entire Dialogue Manager object has disappeared from the hierarchy.
- I have flipped off the Input Device Manager and Instantiate Prefab components on the Dialogue Manager.
- I unpacked the Dialogue Manager prefab completely.
- Under Other Settings on the Dialogue Manager object, Allow Only One Instance, Dont Destroy On Load and Preload Resources are checked.
- Save System is active, but Save Current Scene is not checked.
- There is a dialogue database selected.
Do you have another DialogueSystemController in the scene? By default, they are exclusive. If one already exists, it will destroy duplicates. (That's the Allow Only One Instance checkbox.) Also by default they are marked Don't Destroy On Load, meaning they survive scene changes.
A quick way to check for duplicates is to type this into the Hierarchy window's search bar:
Very strange. Does the Dialogue System's DemoScene1 work correctly?
What if you try this as a test:
1. Create a new, empty scene.
2. Add the Dialogue Manager prefab.
3. Assign your dialogue database.
4. Set up a Dialogue System Trigger to play a conversation OnStart.
So, I added a debug line to DialogueSystemController, and something is definitely calling Destroy on it. OnDestroy appears to be called lazy, so I'm not getting any stack trace to see what's destroying it. :\
I'll try with an empty scene and see what I can see...