Forum rules - please read before posting.

Make hotspot label stay on a little longer after interaction

edited January 2020 in Technical Q&A

EDIT: SOLVED*

(*not really, but I realized that I could implement this in android as is, and then for my windows build just keep the hostpot menu with its factory settings. Though if there is a way to make the hotspot label stay on a little longer after the interaction is clicked, I still would like to know about that)

Hi all!

So, since I am thinking of building for android as well, I need my hotspot label to stay on for a second or two after the interaction (as there is no hovering involved).
This delay would work kind of like old Lucasarts games, where the hotspot label would remain highlighted until completion of the interaction. Here is an example: https://gfycat.com/naughtyhomelykoi.
It sounds very nitpicky, but since I am working on educational projects with language and literacy, these things are didactic tools that provide feedback, which is the basis of the learning process.

The solution I came up with does work, but it's not perfect: I store the last Hotspot label in a global variable, then show it in a copy of the Hotspot menu via the OnHotspotInteract event, then start a coroutine and count 1 second before turning this duplicate menu off.

Even though this achieves the functionality, there is a minor annoyance:on click, the label turns off and then back on.

Any ideas that could help introduce this delay without having the hotspot label turn off and back on?

Thank you in advance!!!

Comments

  • FWIW, touch-screen input offers an Active Hotspots with double-tap? option that allows for Hotspot labels to show with a single tap.

    It sounds like you're on the right track with this, though you shouldn't need a second menu just for the lingering label. The same menu can be used for both, provided its Appear type is set to Manual so that you have full control over it.

    Is the off/on flicker because the default Hotspot label is appearing before it switches to the variable-linked one? Merging to a single Label element / Menu should fix that. If you need the Hotspot label upon selection, you can hook into the OnHotspotSelect event.

    You could also get the "intended" Hotspot label every frame:

    AC.KickStarter.playerMenus.GetHotspotLabel ();
    

    If this isn't empty, you could update the Global Variable. Otherwise, if it's empty, start your coroutine.

    I suppose another method might be to set your Menu's Transition animation to Custom Curve, and then assign a "curve" that's just a horizontal line at value 1. If the transition is set to Fade over a period of 1s, that should just cause the Menu to linger for a full second before turning off.

  • Thank you Chris.
    The off and on flicker happened because the first Menu went off and then the other one turns on. But guess what, I realized my input method was not set to touch screen (I could have sworn it was), I set it and that flicker was gone.
    I did try the other ideas just to see if I could switch for a simpler solution: just to let you know, editing the transition curve almost does it, but the problem is it makes it linger as well when "fading in". If the player taps different hotspots too quick, it gets a little awkward.
    Also, the hotspot label upon hotspot selection always worked just I intended, no problem with that, it was just about adding that extra delay after interaction (I'm using hotspot then interaction).

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Welcome to the official forum for Adventure Creator.