The past few weeks were a slow slog refactoring the interaction system. Progress was slow due to all of the chaos and overall existential angst in the world, but ‘for some reason’, things turned around dramatically and made a ton of progress as of Thursday. (Wonder why that might be?)
Also setup a specific Youtube channel for the game, and uploaded a quick test video (captured in the Editor, so framerate isn’t anywhere near what it is in a build), showcasing the progress.
Basically each object in the scene has 2 separate trigger zones – a distance ‘ping’ zone, and a closer ‘interaction’ zone. If the player is within either of these zones, then the object starts checking to see if the player is looking AT the object (simple raycast) and then finally if the player IS looking at the object, then it pops the appropriate UI and enabled the highlight overlay.
It sounds simple, but there was a lot of moving parts and the prior system was much simpler, so needed to rips the guts out and rework the logic / flow.
Overall I’m pleased with the system – it is nice and self-contained – the player doesn’t need to know or care about the objects, the objects themselves do all of the monitoring – which helps with the multiplayer gameplay where any number of players might be interacting with any number of objects in various ways.
Just need to test the integration with the inventory system and ensure the pickup system works properly in a multiplayer build and then it should be good to go.
In the video you can see a variety of ways that the same basic interaction behaviour will be used – for interacting with terminals / computers / doors / switches etc as well as pickup items, searchable crates etc.
Anyways, until next time!