何かC#を学ぶにあたって必要な前提知識はありますか?
基本はC#のドキュメントを見れば学ぶのに必要な情報は揃っていると思います。
しかし、強いて挙げるならばオブジェクト指向の基礎知識が必要でしょう。
そもそも論で書くならば、学び方自体を理解することで今回の質問は発生しないと思います。
いきなりC#から入る形で問題ないでしょうか?
Unity を使う目的で C# を学んでいるのであればいきなり C# を触るのではなく、 Unity を触っていく上で必要が出たときに C# を学べば良いと思います。
調べてみるとCが前提として必要という記事も見つけた
前提とは聞いたことがありません。出典がとても気になります。
しかし、Unityを使う上(つまり、Unityのリファレンスを参考にしている上)でC言語やC++を使う必要が出てきたならば(98%ぐらいは必要ないと思いますが)覚える必要があると思います。
C#の最適な勉強法を教えていただきたい
基礎となる知識から順に覚えること です。これは Java でも他の言語でも同様です。
C# を学ぶにあたって、分からないことを分からないままにしてC#の機能を利用しなければ(分からない情報を虱潰しに理解していけば)手戻りがない、最適であると思います。
また、個人記事は出来る限り優先的に参考にしないことです。大半の記事は、公式の情報から引用し、変更を加えたような内容だからです。それを参考することによって下記のリスクが発生します。
- 必要な情報が省略されている場合がある
- そもそも、誤った情報を記載している場合がある
- メンテナンスされておらず、情報が古い場合がある
まずは公式(C# ではMicrosoft)がそれに関する情報を公開していないか確認してください。 = 信頼性の高い1次情報から確認してください
個人が運営しているC#の入門記事・解説記事で私がおすすめできる・情報を信頼できるのは ++C++; // 未確認飛行 C で、こちらはリリース予定のバージョン C# 9.0 においても更新がされている状態です。また、著名な方が書いています。
手戻りはなるべく減らしたい
いきなり高度なことを行おうとすると情報を整理するのに無駄な時間が発生しやすい(この過程で手戻りもしやすい)ので、基礎となる知識から順に覚えましょう。
基礎から順に学んで無駄になることは ほとんど無いはず です。
(必要のない基礎は存在するのか?JavaやPythonの視点で考えてください)