Как лучше учить c# для unity и атрибуты?
Сначала изучи фичи шарпа, чтобы легко понимать документацию юнити. А потом уже сам юнити. Тогда глупых вопросов возникать не будет
Я считаю, что как и в любой другой сфере, лучше делать это совместно, и практикуясь на простеньком, но настоящем проекте. Берёшь условный дудлджамп и постепенно танцуешь на всевозможных граблях -- закрепляешь код из интернета практикой, и тем же закрепляешь познания в движке как инструменте. А там уж, если захочешь, полезешь под капот и шарпа, и юнити. 
Затем либо допиливаешь проект в портфель, либо забрасываешь и начинаешь с чистого листа и на репит