Unit Tests are written from a programmers perspective. They are made to ensure that a particular method (or a unit) of a class performs a set of specific tasks.
Functional Tests are written from the user's perspective. They ensure that the system is functioning as users are expecting it to.
A unit test should test a single piece of functionality (one class or one function for example). A feature test should hit a route, make sure the response if what you want and the database reflects the changes you made (if there are).