It uses StartConversation with a "Conversation" string variable- it all works perfectly- my issue is that my game has a lot of conversations

Right now I'm typing out or copy pasting the dialog names into my public "Conversation" variable which works but it would be so much easier and cleaner if I could select the conversation name from a popup like the one that appears in the conversation window-
I noticed that the conversation names are stored in a List<Conversation>in the Database object-
I tried to use that to populate a popup in my script using Odin Inspector- it was very flaky and didn't work all the time so I went back to manually inputting the conversation name.
There's probably a way to do it with that List<Conversation> but I'm unable to

Is there a way to load in conversation name strings in our scripts without doing it manually?
Thank you.
Edit: I modified my Odin solution and it does work- but wondering if there's something cleaner...
Code: Select all
public string Conversation;
[ValueDropdown("DatabaseConversations")]
public string SelectedConversation;
public DialogueDatabase Database;
List<string> DatabaseConversations = new List<string>();
[Button]
void RefreshConversations()
{
DatabaseConversations.Clear();
for (int index = 0; index < Database.conversations.Count; index++)
{
var i = Database.conversations[index];
if (i.Title != "")
{
DatabaseConversations.Add(i.Title);
}
}
}
[Button]
void SetActiveConversation()
{
Conversation = SelectedConversation;
}