C# Foundations is the programming you need before Unity makes sense: variables, control flow, methods, classes, collections, interfaces, and events. Every script in a Unity project is a C# class, so the engine can only feel intuitive once these ideas are second nature.