unity – Free movement in a 3D isometric world

The convention I’ve observed in most modern games is neither option you’ve proposed.

Instead, W or “Forward” on the stick usually corresponds to “Upward” on the screen from the current viewpoint, what we call “camera-relative” controls.

This way, the player does not need to attend to which compass direction they’re currently looking toward, or the direction their character model is pointing. If the place they want to go is on the right half of the screen, they press right. If it’s on the bottom half of the screen, they press down. This keeps the mental mapping very simple and intuitive.

We have lots of past Q&A about implementing this style of input and movement, in case that can be helpful to you.

In some isometric games, movement is restricted to travelling along the world axes, so only up-left / up-right / down-right / down-left is allowed. It sounds like this does not apply to your game. For those games, mapping W to “upward on the screen” doesn’t quite work, so games will often rotate the mapping slightly, so your “up” key corresponds to “up-left” on the screen, for instance. The important thing here is that the mapping is consistent, so once the player learns it, they don’t have to re-calibrate their mental link from screen to keys each time they turn their camera or character.