This is a triangular grid based movement system I started working on, probably can be done better
Each movement space is a node, in the beginning the nodes generate paths between themselves with raycast, but these paths are only cosmetic and don’t affect or even accurately reflect player movement sometimes. The player clicks a nearby node and this issues a move command, the player emits a path-checking object toward this move command. If it touches a barrier or terrain it’s destroyed and the move command is cancelled, but if the path is clear and it reaches another node the player moves toward that node. There are some limits like only having one move command at a time, and a radius that limits which nodes you can click to whatevers adjacent to the player.
It is messy, I wanted to use the cosmetic paths to determine if the player could move but I couldn’t find a way to detect them accurately, and raycasting for a clear path didn’t work so well either. It can probably be done easier and simpler but this is all I’ve got at first.