Jump to content
Unity Insider Forum

Scripten erneut lernen, oder "erweitern", oder jemanden, den man fragen kann?


MichaelPeter

Recommended Posts

Ich habe mir einige Tutorials immer wieder durchgelesen, insbesondere die, zum Raycast, allerdings hängt es bei mir immer wieder an Stellen, die einfach brutal idiotisch sind. Außerdem bekomme ich immer wieder gesagt, ich würde alles viel zu kompliziert machen. Zum Beipspiel, mein Script für meine Pistole: http://pastebin.com/xH7q0YPr

 

(Ich mache alle Code's über pastebin.com, weil das Thema sonst zu groß wäre, muss man aber nicht verstehen).

 

Dieses Script trieft regelrecht vor Unübersichtlichkeit, funtkioniert aber wunderbar, und wirklich gut. Es funktioniert fast schon bugfrei, was ein Problem ist, ist zwar das Zielen, aber das versuche ich gerade irgendwie mit Raycast's zu lösen. Hier mal ein kleines Video, wie gut es funktioniert.

https://www.youtube....eature=youtu.be

http://www.fotos-hochladen.net/view/unbenanntjn71hursk3.jpg

 

Die Animation und die Prefabs habe ich übrigens alle selbst gemacht. Die Sounds, sind nur editiert, nicht aufgenommen.

 

Jetzt ist nur das Problem, wenn ich mal eine Frage habe, kann ich nie schnell mal jemanden fragen, und schon gar nicht erst auf das Forum gehen, da die Frage und deren Antwort dafür einfach zu kurz ist. Doch jetzt stellt sich mir die Frage, soll ich einfach alles was ich bis jetzt gescriptet habe, wegwerfen und nochmal komplett von vorne beginnen, damit ich alles lerne, oder soll ich mein Wissen doch irgendwie erweitern, obwohl mir einige Grundlagen fehlen. Es ist immer das Problem mit den Tutorials, das da nie gesagt wird, WIE man etwas schreibt. Es wird nur gesagt was man schreiben muss. Das ist das Problem. Andererseits hatte ich auch noch die Idee, dass mich jemand auf Skype addet, der immer online ist, und ein paar kleine Fragen, schnell beantworten kann. Was denkt ihr, was ich machen sollte?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ähm erstmal Scripten lernen.

 

Es ist immer das Problem mit den Tutorials, das da nie gesagt wird, WIE man etwas schreibt.

Also das "wie" ist relativ. Das musste du ja am Ende wissen, weil ein Raycast kann man für viele Dinge gebrauchen nicht nur für ein Shooter.

 

Andererseits hatte ich auch noch die Idee, dass mich jemand auf Skype addet, der immer online ist, und ein paar kleine Fragen, schnell beantworten kann.

Ich bezweifle das jemand den ganzen Tag online ist z.B. ich muss an Werktagen normalerweise arbeiten.

 

Du musst einfach mal lernen die Script Reference zu nutzen.

Lesen was dort steht (NICHT nur den Code). Probieren zu verstehen ... wenns nicht klappt nochmal lesen.

Und dann wenn du auch wirklich weißt, was diese Methode tut. DANN wirst du auch wissen WIE und WO man sie nutzen kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gut das du es erwähnst, ganz vergessen :)

Und außerderm wäre ein einheitlichter Code Stil ganz gut:

 

var NachladeZeit : float = 0.0;
var gesichert : boolean = false;
var Schuss : int = 20;
var icon : Texture2D;

 

Paar sind CamelCase, paar LowerCase.

z.B. ich nutze bei Feldern diesen Stil

"_IsLoading" und die Property davon wäre "IsLoading"

und Parameter sowie lokale Variablen schreibe ich so "isLoading".

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ähm erstmal Scripten lernen.

Was genau meinst du denn mit "scripten". Ist das, was ich da gescriptet habe, nicht gescriptet? Meinst du, ich sollte besser scripten lernen? Meinst du ich soll mir Fragen selbst beantworten?

 

Also das "wie" ist relativ. Das musste du ja am Ende wissen, weil ein Raycast kann man für viele Dinge gebrauchen nicht nur für ein Shooter.

Klar, ein Raycast tastet im Grunde ja etwas ab, und das kann man überall benutzen.

 

Ich bezweifle das jemand den ganzen Tag online ist z.B. ich muss an Werktagen normalerweise arbeiten.

Nun, ich arbeite, und bin trotzdem jeden Abend erreichbar. Ich meine nur, jemand, bei dem man weiß, wann er online ist. Es gibt ja auch welche, die zwar als online angezeigt werden, aber selbst nach 3 Tagen nicht zurückschreiben.

 

Und sich direkt daran gewöhnen nicht auf Deutsch, sondern auf Englisch zu scripten.

Was ist der Unterschied?

 

Und außerderm wäre ein einheitlichter Code Stil ganz gut:

 

Paar sind CamelCase, paar LowerCase.

z.B. ich nutze bei Feldern diesen Stil

"_IsLoading" und die Property davon wäre "IsLoading"

und Parameter sowie lokale Variablen schreibe ich so "isLoading".

Ich verstehe nicht genau, was du meinst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was ist der Unterschied?

 

Den Unterschied zwischen Deutsch und Englisch zu erklären, tja....wo fängt man da an. Vielleicht hilft das hier ja "Wikipedia: Sprache"

 

 

Falls du nach dem "Warum" fragst, das ist leicht erklärt: Es ist einfach eine Konvention und zwar keine eher laschere wie "man benutzt camelCase", auf die man ja noch verzichten könnte. Es ist nicht falsch, aber das ganze Feld des -Programmierens- wurde nun mal auf dem Englischen aufgebaut.

Hier sind Umlaute fehl am Platz und müssen umschrieben werden (ae, ue, etc), genau so wie arabische Schriftzeichen auch fehl am Platze wären.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es geht eig. eher darum das andere Leute dein Programm nicht verstehen, wenn sie den Quellcode lesen.

Da kommt es dann darauf an ob andere deinen Quellcode sehen werden.

z.B. bei uns in der Firma programmieren wir Deutsch oder Englisch (kommt meist auf den Programmierer an, geeinigt haben wir uns nicht).

Liegt aber auch daran das nur wir Zugriff auf den Quellcode haben und alle Deutsch lesen können.

 

Also Englisch müsste jetzt nicht unbedingt sein, meiner Meinung nach.

Aber wäre hilfreich auch gerade wenn man Threads in englischen Foren erstellt und den Quellcode postet.

 

EDIT:

Und da finde ich einen einheitlichen Codestil viel besser.

 

EDIT2:

Aber ich verstehe nicht was du hier mit dem Thread eigentlich willst.

Die Programmierkentnisse erweiterst du automatisch indem du Spiele programmierst.

Ich finde dein Quellcode nicht so dolle, aber vielleicht siehst du ja das anders.

Weil DU programmierst ja das Spiel und deswegen musst du selbst wissen ob du mit dem Ergebnis zufrieden bist oder nicht

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich persönlich finde es nicht schlimm, wenn man für sich deutsche Variablen nimmt. Hat sogar einen Vorteil, denn man kommt nicht in die Lage schon von Unity oder definierte Variablen zu nutzen. Umlaute sind natürlich etwas, was man unbedingt vermeiden muss. Am besten gleich ein anderes Wort nehmen.

Ich nutze gerne deutsche Variablen. :)

Ob man jetzt Variablen groß oder klein schreibt, da gibt es unterschiedliche Ansichten. Ich bevorzuge die Variablen klein zu schreiben.

 

Wenn da geschrieben wird " if (a==true) "dann ist das ja nicht falsch. Aber da würde ich empfehlen es anders zu machen also:

if(a) bzw. if(!a) wenn false abgefragt werden soll.

Es gibt auch noch einige andere Sachen, die man machen sollte, weil sie logisch sind. Z.B. deine Schussabfrage.

Wenn if(schuss>0) die eine Abfrage ist, dann brauchst du nicht als 2te Abfrage if(schuss==0) machen, denn da wäre ein else angebracht. So wie du es machst ist es natürlich nicht falsch. Das else hilft aber bei der Lesbarkeit, denn du weißt sofort, dass das zusammen gehört.

Die Abfrage ob schuss <1 ist, ist das Gleiche wie die schuss==0. Kannst also die beiden Dinge in eine Abfrage rein bringen. In deinem Falle bei dem else. ;)

 

Nochmal. Das was du da machst ist nicht falsch. Es ist ein funktionierender Code! Trotzdem sollte man schauen, dass der Code so gut wie möglich strukturiert ist. Wenn da nämlich 2 Abfragen sind, die beide das Gleiche abfragen, kann die Fehlersuche recht mühsam werden. Es ist ja durchaus möglich, dass die beiden Abfragen mit 1000 Zeilen Code getrennt sind.

Der Programmierer versucht, genauso wie der Mathematiker, alles zusammen zu fassen und schlank zu halten. Das sieht nicht nur schöner aus, es macht auch Sinn.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was genau meinst du denn mit "scripten". Ist das, was ich da gescriptet habe, nicht gescriptet? Meinst du, ich sollte besser scripten lernen? Meinst du ich soll mir Fragen selbst beantworten?

 

 

Na Na. Natürlich ist das gescriptet. Aber nur weil ich weiß wie man Nudeln zubereitet, bin ich auch nicht gleich ein 5 Sterne Koch ;)

 

Zu deinem Problem: Ich kenne das. Es war bei mir als ich noch Anfänger war nicht anders :D. Man guckt sich videos an oder ließt sich tutorials durch, aber man weiß einfach nicht Warum der Code da steht und was er genau macht. Deswegen kann ich dein Problem auch gut nachvollziehen. Wie schon gesagt solltest du aber einfach dir angewöhnen die Script Reference zu lesen, auch wenn man nicht immer beim ersten mal alles versteht (Entweder weil alle auf Englisch ist, oder weil es doof beschrieben ist. Aber so wie es scheint, wird wohl eher meistens das erste zutreffen.) Wenn du aber am Ball bleiben möchtest, dann solltest du aber auch mal selbst versuchen eine Lösung zu finden. Learning by Doing! Wenn du darauf keine Lust hast dir vieles nur durchs ausprobieren beizubringen, dann würde ich mir überlegen, ob die Spiele-/Softwareentwicklung überhaupt etwas für dich ist. Denn Spaß an der Sache ist meiner Meinung nach Grundvorraussetzung. Vor allem, wenn man noch Anfänger ist.

 

Es ist eben nicht "Ich mach mal ein Spiel und dann Big Cash". Man muss auch Spaß daran haben, denn dann muss man auch nicht wegen jeder kleinigkeit ins Forum rennen um etwas nachzufragen, weil man es lieber dann selbst ausprobiert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich persönlich muss auch sagen, dass mir der Gebrauch von C# sehr geholfen hat, übersichtlicher und strukturierter zu programmieren. Es ist einfach eine geordnetere Sprache mit JavaScript/UnityScript. Ich hab mir die entsprechenden Scripting Standards für C#, Java und C++ angewöhnt und es fällt mir dadurch viel leichter, Tutorials oder Code, den ich vor ewigen Zeiten mal geschrieben hab zu verstehen. In dem Fall ist Diszipling wirklich ein Faktor

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also dazu muss ich auch mal was sagen. Es gibt im Youtube jemanden (der Name fällt mir gerade nicht ein). Ich finde eigentlich sein Channel recht gut. Er redet über Spiele, wie man vorgehen sollte oder wie er vorgehen wird, was er anwenden wird. Er geht aber nie auf das Programmieren ein. Er blendet mal vllt ne kleine Codezeile ein. Sowas wie Formeln oder so, aber das wars auch. Ich finde das ehrlich gesagt gut.

 

Somit können die "Neulinge" dazu lernen und sich auf die Suche machen und sich selbst beibringen.

 

Ich bin einer der Admins einer Gaming Community. Wir haben hauptsächlich Garry's Mod (aus Steam) gespielt.

Das ist ein Sandbox Game. Dort kann man Dinge aus Models zusammenbauen. Zum Beispiel ein Auto. Und den anderen präsentieren wie "toll" man ist ^^, weil man etwas geschafft hat. Das Spiel wurde revolutioniert als ein Addons rauskam, wo erlaubt wurde zu programmieren. Man programmiert und sieht live, was man da geschafft hat. Flugzeuge, fliegende "Objekte", Hoverboards, Mechs, Waffen, Robotor und und und. Man kann so gut wie alle seine Vorstellungen dort wahr machen. Und alles geht in Multiplayer.

Wer sich dafür interessiert hier ein Beispiel:

Dieser Quadrotor gibt es im Spiel gar nicht. Aber er hat ihn programmiert. Funktionell sowie auch Visuell.

 

Und worauf ich hinaus will. Wenn ich dort jemanden sehe bzw. sie mich fragen wie etwas gelöst werden könnte, haben meiste überhaupt kein Plan was ich ihnen sage. Du muss quasi ihnen vorschreiben. Es ist so, als würde ein Lehrer dir deine Matheaufgaben lösen. Das ist nicht Sinn des Zwecks. Man soll schon selber das können. Wenn es um technische oder mathematische Probleme geht, ist es ja noch ok, aber nicht "hä, wo fehlt ne Klammer?" oder "hä was ist das für eine Fehlermeldung?".

 

Ich kenne einen zum Beispiel. Er erzählt mir, dass er seit Jahren nur Copy & Paste verwendet. Nimmt von seinen alten Scripten raus und fügt es in seine Neuen ein. Passt natürlich einige Sachen an, aber er hat oft schon Schwierigkeiten, wo er sich an mich wendet. (Zufällig meistens wegen Mathematische ^^).

 

Die meisten wollen ja leider etwas schnell wie möglich erreichen. Dabei versagen sie es beim Lernen :/. Und muss ganz ehrlich sagen. Ich mag eig. nicht solchen helfen :/.

Dann gibt es diese Youtuber die auch nicht wirklich gelernt haben und gleich nen Tutorial machen müssen. Und wo sogar if(blabla == true) steht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die meisten wollen ja leider etwas schnell wie möglich erreichen. Dabei versagen sie es beim Lernen :/. Und muss ganz ehrlich sagen. Ich mag eig. nicht solchen helfen :/.

Ok ok, ich weiß jetzt was ich mache. Da ich sehr gerne scripte, und eigentlich auch gerne lerne, denke ich dass ich die Scripting Reference vorziehe. Und das mit BigCash ist bei mir nicht. Ich habe genau deswegen angefanngen, Spiele zu machen, da es sehr wenige gute und kostenlose Indie Spiele gibt, bzw. es mehr von denen, die schlecht sind gibt, als von den Guten. Und darum bleiben meine Spiele (zumindest die ersten paar) auch kostenlos.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also, soweit ich deine Arbeit einschätzen kann, würde ich auf jeden Fall empfehlen, nochmal bei 0 anzufangen.

Dir fehlen einfach ganz oft die absoluten Basics und dann ist natürlich klar, dass du manchmal nicht verstehst, warum dieses oder jenes gemacht wird...

 

Kann ich nur zustimmen. Wobei das bei mir nicht anders war ^^ ich habe auch oft bei 0 angefangen und von mal zu mal klappt es immer besser. Denn erst wenn man die Basics drauf hat, sollte man sich an die komplexeren Themen ranwagen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...