I'm using the rewired integration and I have my conversations set to always require the continue button pressed. The game is controlled with a gamepad/keyboard (not the mouse) and I'm using the proximity selector to start conversations.
The problem I'm having is that when you press the controller button to continue on the last conversation node, it ends up starting the conversation over. I have the conversation trigger set to "exclusive". This is a new project and the latest version of dialogue system grabbed from the unity asset store yesterday, so I'm just using the default components.
I remember having this problem in a past project but I can't remember what I did to fix it! Hopefully this is a common issue..?
Have you tried adding a Dialogue System Events component to the player? Configure the OnConversationStart() event to disable the Proximity Selector and OnConversationEnd() to re-enable it.
One more thing-- I set the debug level to "info" but i'm not getting any console messages related to when starting or ending a conversation. Just the init-related dialogue engine messages.
using UnityEngine;
using UnityEngine.Events;
public class OneFrameAfterConversationEnd : MonoBehaviour
{
public UnityEvent onFrameAfterConversationEnd = new UnityEvent();
void OnConversationEnd(Transform actor)
{
onFrameAfterConversationEnd.Invoke();
}
}
It will add a UnityEvent named OnFrameAfterConversationEnd(). Configure it to re-enable the Proximity Selector instead of using the Dialogue System Events' OnConversationEnd().
Ok now I'm thinking there's something wrong with the messages. I do have all console messages toggled to show up but I'm not seeing anything but the dialogue init messages. I also noticed that my dialogue system events component is not actually switching off the proximity sensor at all, so maybe it's not receiving the messages? I have my dialogue-related console messages attached.
Yeah that is weird, I can see at runtime that it definitely has the database attached and the debug level is still set to info (I definitely haven't messed with that). I've tried switching to the demo database and that outputs the same empty string in the console. The dialoge system demo scene works as intended...
I have multiple scenes loaded, could that be a factor in some way? I've tried replacing my manager in my scene with the demo manager and in that case it also outputs the database name as an empty string.
Ok I'm not sure how I got it to work but... it's working now. I still get an empty string but the messages are correctly turning off my proximity selector. I don't even need to turn it off now, the conversations no longer restart. I didn't end up making a single-scene version, I just remade the manager (again) using the wizard (again) and... I don't know. It works.