CuHe – Developer Diary

27.11.2014 – CuHe Version 1.0 Projekt cleanup

Unity hat Unity 4.6 final veröffentlicht. Und somit kommt dieses Projekt zu seinem Ende. Die App hat nun ihre eigene Seite, und diese Seite hier wurde das Entwicklertagebuch. Die alten Entwicklerversionen sind hiermit gelöscht.

Viel Spass damit 🙂

11.11.2014 – CuHe Version 1.0

Nach langem Warten hat Unity nun endlich eine Beta Version für 4.6 veröffentlicht in der das Input Field der neuen UI tut was es soll. Was bedeutet dass ich meinen UI Bug damit endlich fixen konnte. Die jetzige Executable von CuHe ist somit die finale Version.

Bei dem Projektfile sieht die Sache ein wenig anders aus. Noch ist Unity 4.6 nicht final. Weswegen ich das Projektfile auch noch nicht als Final freigeben kann. Da muss ich noch warten. Vermutlich werde ich noch bei Erscheinen von Unity 5 das Projekt porten. Ich hoffe mal dass dabei nicht zu viel zu Bruch geht. Aber ansonsten ist das Projekt abgeschlossen.

Noch eine wichtige Änderung: CuHe steht nun als Open Source unter der sehr freien MIT Lizenz.

24.9.2014 – CuHe Beta Version 0.9.5

Unity hat endlich das neue GUI System veröffentlicht. Also konnte ich endlich auch die UI fertig machen.

Leider ist das neue Unity GUI System noch ein wenig buggy. Und deswegen hat die UI grade auch noch eine Macke beim Scalefactor. Eigentlich wollte ich da nur die Editbox stehen haben. Ich kann aber den Text der Editbox derzeit nicht setzen. Weswegen ich es doch erst mal wieder über einen String  oben drüber lösen musste.

Noch mal vier oder acht Wochen warten bis das behoben ist wollte ich allerdings nicht. Also gibt es jetzt ein Release. Und nachdem das das erste Release ist in dem endlich alles an seinem Platz ist ist es ein Betarelease. Featurecomplete, aber noch Bugs im Programm die behoben werden müssen.

Ansonsten habe ich noch eine Skybox eingebaut damit der Hintergrund netter aussieht

Obacht, diese Version wurde mit der Unity 4.6 Beta erstellt. Bei der Exe ist das kein Problem. Der Projektordner könnte aber später noch Probleme mit neueren Unity Versionen machen. Gebrauch auf eigene Gefahr!

To Do: Code Cleanup, Kommentare überarbeiten. Und auf die Unity Fixes warten …

19.8.2014 – CuHe Version 0.9.1

Und nächste Version. Die grösste Änderung ist dass das Projektfile nun zweisprachig ist. Die Scripts sind nun sowohl in C# als auch JS verfügbar. Nicht dass das irgendeinen Unterschied in der Geschwindigkeit des Tools ausmachen würde. Beide Versionen rennen gleich schnell, egal ob ich mit C# oder JS builde. Das war eine der Sachen die mich interessierten.

Die C# Version hat mir aber doch einiges gebracht. Denn ich habe so rausgefunden dass List viel schneller funktioniert als das Unity Array das ich in der JS Version im Einsatz hatte. Die Mesherstellung geht nun viel, viel schneller. Ungefähr dreimal so schnell.

Ansonsten gab es ein wenig Code Cleanup. Es sind nun mehr Kommentare im Code. Der Load File Dialog zeigt nun beide erlaubten Fileformate gleichzeitig. In der Statuszeile für die Mesherstellung kann man danach die Zeit sehen die zur Erstellung benötigt wurde. Einen Bug mit der Editormethode des Filebrowsers gefixt. Ich hatte vergessen auch auf die Grossbuchstaben der Umlaute zu parsen. Und die Buttons blockieren nun während die Mesherstellung läuft.

An der Stelle einen fetten Dank an Marrrk und Silveryard für ihre Hilfe bei ein paar Problemen und bei der Konvertierung zu C#. Da hatte ich doch ein paar weisse Flecken. Und man hört ja nie auf zu lernen.

17.8.2014 – CuHe Version 0.9.0

Und schwupps gibt es eine neue File Browser Methode.Der Code dafür ist aber nicht von mir, sondern von delspeedy vom Unity Insider Forum. Vielen Dank noch mal dafür. Das ist derzeit die brauchbarste Methode einen Windows File Broswer einzubauen. Weil sie auch Icons anzeigt. Sie verwendet die GetOpenFileDialog Methode

Die System.Windows.Form.dll ist in dieser Version wieder rausgeflogen: Die ist nun überflüssig.

Das Umlauteproblem konnte ich nicht direkt lösen. Aber ich verwende nun einen Workaround. Ich ersetze die Umlaute in den Filenamen mit den Ersatzbuchstaben. Ü wird dann zu UE. Problem gelöst.

Das war es nun wohl erst mal. Bis auf die UI. Und hier warte ich nach wie vor auf Unity 4.6. Nächste Woche ist Unite. Schaun mer mal ob sich da dann was tut.

13.8.2014 – CuHe Version 0.8.5

Achtung! Wenn ihr die hier verwendete Methode für das Aufrufen des File Dialogs verwenden wollt müsst ihr die verwendete Net Version ändern. Geht auf Edit, Project Settings, Player. Und stellt da unter den Playersettings für Windows die Optimization von .NET 2.0 Subset auf .Net 2.0

Ich habe es geschafft einen Filebrowser einzubauen. So richtig glücklich bin ich mit der Methode aber nicht. Sie hat zu viele Pferdefüsse. Es funktioniert. Aber das ist auch schon das Beste was sich drüber sagen lässt.

Die derzeitige Filebrowsermethode verwendet die Systems.Windows.Forms.dll aus dem Unity Mono Ornder. Die Original Systems.Windows.Forms.dll crasht Unity. Und die Unity Version der DLL ist Featurereduziert. Sie gibt beim Kompilieren auch eine Warnung aus dass die Methode nicht unterstützt ist, und man mit einigen Fehlfunktionen rechnen soll. Wie gesagt, es tut trotzdem. Das ist also nicht das Problem.

Aber ich kriege in diesem Dialog keine Thumbnails angezeigt. Was blöd ist weil ich ja nach Bildern suche die ich laden kann. Es zeigt auch nur eine englische Version. Und Mono treibt noch seine Spässe indem es eine mwf_config in den Eigene Dateien Ordner schreibt.

Also werde ich höchstwahrscheinlich diesen File Browser wieder ausbauen und einen anderen einbauen. Ein User namens delspeedy hat mir die Methode über GetOpenFilename gezeigt. Und der Beispielcode funzt prima. Dann brauche ich auch keine Windows DLL mehr im Projektordner. Nächster Stop ist somit den Load und Save File Dialog entsprechend umzubauen.

Daneben gibt es noch einen Bug mit deutschen Umlauten.

7.8.2014 – CuHe Version 0.8

Ein wenig Code Cleanup und Refactoring später …

– Die geflippten Normals beim Export gefixt

– Problem beim Vergleichen von zwei Floats behoben. Das hat doch einige Tris eingespart die aufgrund der falschen Kalkulation erstellt wurden.

– Ein Applikationsicon hinzugefügt.

– Den Applikationsnamen in den Settings hinzugefügt.

– Das Mesh wird nun erstmal geleert und alle Werte resettet wenn man auf den Make my Mesh Button klickt.

– Die Mehserstellung passiert nun in einem Loop, und nicht mehr in drei. Was Zeit spart.

– Einen Skalierungsfaktor eingebaut um die Höhe des zu erstellenden Meshes zu steuern.

– Einen Timer eingebaut um die Zeit für die Mesherstellung zu prüfen. Das ist aber nur fürs debuggen gedacht. Der Wert ist im Inspector zu lesen.

– Einige Nachrichtenstrings eingebaut. Damit man beim Klick auf z.B. den Save Button auch ein visuelles Feedback bekommt.

– Ein paar Kleinigkeiten aufgeräumt.

– Das Startupbild geändert. Das ist nun das CuHe Logo.

– Windowed Mode ist nun der Startmode.

To Do:

– Grafische UI – Das muss bis Unity 4.6 warten da ich das mit der neuen GUI Lösung machen will.

– Optional: File Browser – Auch dafür benötige ich die neue GUI Lösung.

5.8.2014 – CuHe Version 0.5

Als ich die Terrainmeshes für Alister erstellt habe war ich immer eine ganze Weile damit beschäftigt die Terrains passend zurechtzuextrudieren um diese geraden Abhänge zu kriegen. Diesen Job nimmt mir nun CuHe ab. Alles was ich brauche ist eine Heightmap. Und ein Klick konvertiert das Bild dann in ein Mesh. Das spart Zeit.

Ich bin sicher dass euch die Methode auch interessiert. Und dass sie für einige von euch nützlich ist. Die Methode kann mit leichten Abwandlungen auch dazu verwendet werden Terrains ala Minecraft zu erstellen. Deswegen habe ich entschieden das Projetk Open Source zu machen.

Die Scripts sind in Unity’s Javascript geschrieben. Sollten sich aber auch nach C# konvertieren lassen. So viel Code ist da gar nicht dran.

Roadmap: Nicht wirklich sicher. Das hier ist ein One Trick Tool. Und funktioniert eigentlich schon. Selbst wenn das Ergebnis noch buggy ist. Die Flaws lassen sich in Blender beheben. Ich brauche also eigentlich gar nicht soo dringend dran weitermachen.

Mein Entwicklerherz blutet allerdings ein wenig. Ich hasse es halb fertige Sachen zu releasen. Es gibt sicher noch einiges zu verbessern. Refactoring. Und es gibt sicher noch einige Bugs die ich beheben werde.

Die Normals zum Beispiel. Ich suche immer noch eine Methode die zu flippen. Unity weigert sich hartnäckig. Minus mal Minus gibt in der entsprechenden Zeile gerade immer noch Minus. Etwas das ein paar Zeilen weiter oben tadellos plus gibt. Und ich habe keine Idee wo es grade klemmt.

Mal davon abgesehen bin ich einfach unsicher was ich machen soll. UI hat zu warten bis Unity endlich das neue UI System veröffentlicht. Da warten wir seit drei Jahren drauf. Ich bin auch unsicher ob ich da wirklich nen Filebrowser reinbauen soll. Ich brauche das Tool wirklich nicht sehr oft. Mal sehen 🙂

Bekannte und offene Bugs: Die Normals sind beim Export geflippt.

2 Kommentare zu CuHe – Developer Diary

  1. -smn- sagt:

    Nice!

    Do you think you would be able to implement file browser?
    As far as I know it is not possible in Unity

  2. Reiner sagt:

    Thanks 🙂
    There is an example in the Unity Wiki that uses some kind of selfmade file browser. But i haven’t got it to work yet. And then there’s a way to use a special Mono dll to get access to the Windows file browser. So it is possible. But is quite an effort. And i’m simply not sure if it is worth it.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.