Is it possible to get collision detection working without rigidbodies?

Currently, I have a click to move script that uses Vector3.MoveTowards() as my means to move a player character towards my clicked location in world space. However, Vector3.MoveTowards() ignores collisions.

I tried using rigidbodies and when moving towards obstacles with colliders, the player character keeps bumping into the obstacle (I know why this is happening, I just don’t know a good and efficient solution).

What I just want the player character to do is to stop moving when they collide with an obstacle, but using Vector3.MoveTowards() is being finicky with rigidbody collisions.

Is it possible to get collision detection working where I can stop a click to move player character on collision with an obstacle (without using rigidbodies)?

Rigidbody.MovePosition is the alternative, and correctly colliding version of MoveTowards. Its not identical though, so make sure you understand the difference between what the two funcs are expecting.

And will be 1000% easier to deal with over creating your own collision system. Unless you like complex maths.

You can use boxcast/capsulecast/spherecast to detect if there’s any obstacle that obstruct the movement