Hi
Background
When the player pauses my game, custom inventory/stats menus are turned on and the game is paused. These custom menus show the inventory and paper-doll containers for the player.
If the player chooses to delete an item I need to confirm they want to do this.
So Far
Ive been using Speech and Conversation to handle generic choices in the game - which works very well. I have a generic Yes/No conversation, etc.
So to implement the delete confirmation: I run an action list from the (paused) inventory menu when the delete key is pressed. The item to delete is passed as a parameter. The action list uses Speech/Conversation actions, etc.
However in this case - when the game is paused - I've struggled to get it to work. The Conversation and/or Speech menus do not appear.
When stepping through code, it looks like the conversation menu dosent open because KickStarter.stateHandler.gameState returns paused in PlayerMenus::UpdateMenu() in the AppearType.DuringConversation case (ie PaueMenus are on).
Action List Settings
1. Action list pauses gameplay
2. Action list has "unfreeze pause menus" unchecked (ive tried both)
In some combinations of "unfreeze gameplay" subtitles dont appear. Checking Menus -> Subtitles -> Also show when paused has no effect.
I know the above is confusing, so this thread is mostly to ask
Is it reasonable run Speech and Conversation actions while paused menus are active?
Work arounds I can do if this isnt the case
1. If I turn off the paused menus at the start of the action list and turn them back on once done, everything works. Visually this sucks - you dont expect the menu to open/close to ask a question.
2. I can write my own custom choice menu that works when paused (unscaled time). This is likely how it should be done, but I was hoping to be more generic and use Speech/Conversation as that keeps the UI more consitient.
3. Open to other suggestions
Finally. This thread leads me to believe Speech needs the game unpaused as it needs timescale != 1 - so trying to have Speech/Conversation might not work.
Thanks
It looks like you're new here. If you want to get involved, click one of these buttons!
Comments
It's possible to have Speech rely on Time.unscaledDeltaTime as opposed to Time.deltaTime by setting its useUnscaledTime property through custom script.
Conversations themselves are separate, however - they're not strictly tied to speech unless that's what the reponses involve when options are chosen.
What you could try is - rather than having your Conversation menu appear "During Conversation" - set it to Manual with "Pauses game?" checked, and then turn it on manually at the same time to start the Conversation.
Hi
Thanks for the response.
Subtitles is easy with the unscaledDeltaTime.
I've run into issues with Conversations
1. AFAICT The conversation menu needs to be turned on during/after Interact() is called on the conversation object. Turning the menu on before didn't work as the game state isnt in Dialog options, so they would never get enabled.
2. Once that was working, dialog option selection didn't work - the selection visual didn't pulse and items couldn't be selected. There's likely something inside that that relies on delta time as well.
I think Ill just make my own simple Yes/No menu to use in this case as I also need conversations/subtitles in normal gameplay and its looking like I would have to duplicate a decent amount of AC code to get this to work.
Thanks for the help though!