It seems to me that you were referring unit testing as TDD, which is not the case. You could create UI automation in a TDD approach as well.
Regarding the effectiveness of unit testing, I suppose your UI automation tests are for testing UI related scenarios, but not for backend testing, for which unit testing plays an important role.
UI automation tests are great for end-to-end tests. However, the information those tests give us is too little - we'd only know an end-to-end test has failed but we are usually not sure what the root cause is exactly. So it takes time to trace the code, and it takes time to run the tests (usually 10-100x slower than running unit tests). One unit test typically can be completed in a fraction of a second while one UI automation test takes at least seconds. This shouldn't be a problem if you are working on a small project. For larger projects like those in banks, it usually takes an hour or more for a complete UI automation test suite to run.
If you find unit testing not being cost effective, those tests are not testing the right things. It takes time to learn, practice, and experience how to write good unit tests which are decoupled from the implementation details.