Что конкретно мне нужно знать в с#, чтобы создать игру на unity?
Как говориться "нужны уверенные знания языка". В моем понимании - это когда при реализации задачи язык вам не мешает, а помогает. Т.е. вы не задумываетесь над тем КАК выразить алгоритм на языке c#. А думаете именно над самим алгоритмом.

Судя по тому, что вы написали - вам в юнити еще очень рано. Начинайте с чистого шарпа. С чего начинать чистый шарп - таких вопросов на тостере полно.
Согласен с GavriKos, но хочу добавить своё, что знаний о C# до ООП включительно, сполна хватит в UnityEngine, а там уже книгу найдёте с её библиотеками.
Советую прочитать Язык программирования C# 7 и платформы .NET и .NET Core до части с ООП включительно, извините за тавтологию.