Esatto, il C# imparalo bene ma non serve che diventi esperto di programmazioni windows o web (finestre, bottoni, .NET ecc.. che se poi vuoi lo impari comunque per questioni tue).
Sicuramente troverai capitoli che parlano di db, finestre windows, campi textbox, ecc.. per Unity non ti servono.
Apprendi bene i fondamentali: le variabili, le procedure/funzioni, i cicli e poi la programmazione ad oggetti, le classi, il concetto di public, private, cosa è un metodo, cosa un attributo di una classe, ecc.. Insomma alla fine dovresti essere capace di sviluppare programmi da riga di comando capaci di fare cose come chiedere nome, cognome e salutarti. Oppure costruire un array di valori e saperlo ordinare e ristamparlo a video. O definirti una classe "Animale" da cui far discendere due classi "Gatto" e "Cane" ciascuno con metodo "Animale.FaiVerso()" diverso che si tratti di un cane o un gatto, istanziare un oggetto miocane e uno miogatto e vedere che versi fanno. Insomma questo genere di esempi qua.
Perché Unity (ma tutti gli engine e framework) poi sarà tutto un derivare di classi ecc.. che manco te ne rendi conto. Sempre nel link che ti ho messo sopra del tutorial, all'inizio c'è un:
Codice:
rb = GetComponent<Rigidbody>();
Che vuol dire una cosa ben precisa perché alla pallina (Player) è stato agganciato un
oggetto RigidBody (un oggetto che risponde alla fisica).
Quando siamo nello script PlayerController (anch'esso agganciato alla pallina) che muove la pallina c'è bisogno di interagire con quel RigidBody e per farlo si usa una
variabile membro dello script che dovrà contenere il riferimento a questo RigidBody. E' la nostra "rb".
Per farglielo conoscere viene usato
GetComponent che dice proprio
"Returns the component of Type type if the game object has one attached, null if it doesn't." Cioè ti da il componente di quel tipo che è stato agganciato all'oggetto, se ce ne è uno.
Così "rb" si riferirà proprio all'oggetto fisico che sta "dentro" la pallina e che gli permette ad esempio di collidere con il piano. Per muovere quindi questo RigidBody (e quindi la pallina) si usa un
metodo che tutti i RigidBody hanno cioè l'
AddForce(). (concetto dell'ereditarietà di
programmazione ad oggetti).
Questo
metodo vuole un
vettore3d con indicati su x,y,z le intensità da applicare in tutte e tre le direzioni al RigidBody. Il vettore ce lo prendiamo facendoselo dare dagli input della tastiera/joystick (valori da -1 a 1) e moltiplicandolo per la variabile speed, altrimenti è troppo poco.
In grassetto i termini che dopo due/tre di mesi di studio costante dovresti capire normalmente.