Jump to content
Unity Insider Forum

C# mit Unity lernen


Sriel

Recommended Posts

Mal eine kurze Frage an die Profis unter uns :)

 

Ich arbeite jetz mit Unity und C# seit ein paar Monaten, sozusagen similar und natürlich täglich.

Den Einstieg machte ich mit "Visual C# 2013 Ideal für Einsteiger" und nachdem ich das halbe Buch durchhatte fing ich an die Grundlagen in Sachen Scripten in Unity zu begreifen und arbeitete seitdem Verstärkt am Unity Script...und jetzt kommts.

 

Mir ist aufgefallen das ich bestimmte Themen anhand Unity Script besser verstehen gelernt habe als durch die Grundlagen in C#. Ich meine solche Sachen wie Enumerationen,Caroutines usw

 

Ist es normal ? Ich bin der Meinung oft gelesen zu haben das man C# nicht an Unity lernen kann?

Was sagt ihr dazu? Freue mich schon auf AgentCodeMonkeys antworten xD

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ohne, dass ich mich zu den Profis zählen würde, misch ich mich trotzdem mal ein :D

Ich hab mal gelesen, dass Unity Script für Anfänger leichter verständlich ist und hab auch schon paar mal gelesen, dass man mit Unity Script anfangen soll und dann auf C# umsteigen soll ^^

Kann ich aber überhaupt nicht beurteilen weil ich Unity Script nich kenne ^^

 

Ist für mich irgendwie Schwachsinn.. Dahinter klemmen muss man sich beim Programmieren in jeder Sprache, sofern man sie beherrschen will also wieso nicht gleich mit dem Werkzeug lernen das man später auch benutzt ^^

Aber wer lieber mit US anfangen und später umsteigen will, klar, wieso nicht ^^

Jedem wie er's/sie's lieber macht :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mir ist aufgefallen das ich bestimmte Themen anhand Unity Script besser verstehen gelernt habe als durch die Grundlagen in C#. Ich meine solche Sachen wie Enumerationen,Caroutines usw

 

Kannst du das erklären? Mich wundert das sehr, weil C# expliziter ist als UnityScript. Anders gesagt: Normalerweise hat man bei C# mehr Text, d.h. man muss auch mehr schreiben. Gerade bei Coroutines ist das immer noch recht auffällig. Der "Nachteil" davon ist, dass man natürlich wissen muss, was man schreibt (früher z.B. auch die Typen von Variablen - wobei das aufgrund von impliziter Typisierung mit "var" inzwischen bei C# inzwischen etwas verwaschen ist). Der Vorteil ist aber, dass man beim Lesen von Code wesentlich mehr Information darüber bekommt, was da eigentlich passiert. Bei UnityScript passiert ziemlich viel "unter der Motorhaube", d.h. Unity bzw. der UnityScript-Kompiler macht da eine Menge Sachen, die meiner Ansicht nach zum Verständnis sehr hilfreich sind.

 

Daher finde ich es interessant, dass Du das Gefühl hast, diese Konzepte mit UnityScript leichter zu verstehen, als mit C#.

 

Ist es normal ? Ich bin der Meinung oft gelesen zu haben das man C# nicht an Unity lernen kann?

 

Ich habe Programmieranfängern schon in Workshops C# mit Unity beigebracht, und das klappt soweit recht gut ... insofern würde ich sagen, dass wer so etwas schreibt eher keine Ahnung hat ;-) ... ich hab das ehrlich gestanden auch noch nie irgendwo gelesen.

 

Was ich schon öfters gelesen habe ist, dass Leute finden, dass man als Programmieranfänger mit UnityScript schneller Ergebnisse hat als mit C#. Und das würde ich bestätigen, weil bei UnityScript einfach recht viel fehlt. D.h. wenn ich einem Anfänger ein UnityScript Skript zeige, muss ich deutlich weniger erklären, als wenn ich mit einem C#-Script einsteige. Das ist kurzfristig natürlich ein Vorteil, wenn ich schnellstmöglich ein erstes Erfolgserlebnis produzieren möchte. Langfristig sind meiner Ansicht nach aber die Konzepte (Namespaces, Klassendeklarationen usw.), die ich beim C#-Script gleich am Anfang erklären muss notwendig, um sich beim Programmieren wirklich sicher zu fühlen.

 

Und das Schöne daran, C# mit Unity zu lernen ist, dass ich mit Unity wiederum mit ein wenig C# viel mehr bewirken kann, als in anderen Umgebungen. D.h. hier habe ich gleichzeitig saubere Konzepte und trotzdem relativ früh relativ große Erfolgserlebnisse ;-)

Link zu diesem Kommentar
Auf anderen Seiten teilen

dass man als Programmieranfänger mit UnityScript schneller Ergebnisse hat als mit C#

 

Das ist imho nicht nur als Programmieranfänger der Fall.

 

Das ist kurzfristig natürlich ein Vorteil

 

Und wenn dir langfristig was fehlt kannst du immer noch umsteigen. Denn der Umstieg von JS nach C# ist ein deutlich kleinerer Schritt als ganz von Null anzufangen. Weswegen ich empfehlen würde mit dem anzufangen mit dem man sich leichter tut. DU musst ja mit der Sprache klarkommen. Manche tun sich einfach mit C# deutlich schwerer.

 

Mir hat genau gar nix gefehlt. Du kannst mit JS das genau gleiche Spiel bauen wie mit C#.

 

Was mich letztendlich zum Umstieg gebracht hat ist dass Unity sein JS inzwischen auf den Rücksitz gepackt hat. Das ist mir nicht mehr Zukunftssicher genug. JS wird nicht mehr sonderlich gut gepflegt. Dokus, Manual, alles geht Richtung C#. Es ist deswegen abzusehen dass sie das genauso deprecated machen wie BOO. Und es gibt tatsächlich ein paar Sachen die erledigt man lieber in C#. Zum Beispiel einen Windows File Dialog aufrufen. Aber das ist ein Feature von ausserhalb Unitys. Das braucht man jetzt nicht soo dringend wenn man nen Pong baut :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kann da zustimmen.

 

Nur eines:

Mir hat genau gar nix gefehlt. Du kannst mit JS das genau gleiche Spiel bauen wie mit C#.

Das ist richtig, aber wie schön der Code dabei wird, kann variieren.

 

Beispiel C#:

public int zahl { get; protected set; }

Das (weitestgehend) Gleiche in UnityScript:

private zahl : int;

function GetZahl()
{
 return zahl;
}

protected function SetZahl(value : int)
{
 zahl = value;
}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Um selber einmal auf die Eingangsfrage einzugehen:

Ja, ich bin auch der Meinung, dass Unity einem das Programmieren lernen etwas leichter macht. Egal ob US oder c#.

Ich habe sehr schnell eine Rückmeldung, ob ich es richtig gemacht habe (und dabei meine ich nicht den Syntax sondern die Logik).

Die Dokumentation ist gut aufgebaut und wenn ich weiß nach was ich suche, dann bekomme meist ich gute Erklärungen und Beispiele.

Aber natürlich kann ich mit Unity nicht alles besser lernen. Denn in der Programmierwelt gibt es noch viel mehr, was ich in Unity einfach nicht nutzen muss und somit auch nicht lerne.

Der Hauptfaktor für das Gefühl ist wahrscheinlich die Motivation. Unity nimmt mir sehr viel mathematisches Zeug ab und ich kann mit einfachen Befehlen ganze Spiele erzeugen. Das motiviert und man traut sich an schwierigere Dinge, die im Nachhinein gar nicht so schwer waren. ;)

Trotzalledem ist es für absolute Programmierneulinge nicht einfacher als in irgend einer anderen Umgebung.

Ich selber konnte mich nur deswegen in US und c# recht schnell eingewöhnen, weil ich die Logic des Programmierens mit Assembler Basic, VisualBasic und PHP schon erlernt hatte. Wenn jemand noch gar nichts vom Programmieren weiß, ist Unity nicht besser als irgend eine andere Umgebung. Die Grundkenntnisse müssen schon da sein um schneller darauf aufzubauen.

Aber wenn man die hat, dann ist Unity eine echte Hilfe! Jedenfalls in meinen Augen, denn ich habe mit Unity in 5 Jahren mehr gelernt als ohne in 28 Jahren davor! ;)

Wohlgemerkt, ich mache das alles als Autodidakt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...