[23] Level Designer programmieren – Unity3D Tutorial
Dieser Artikel ist Teil meiner Unity 2D Platformer Tutorial Reihe.
In dieser Folge geht es weiter mit unserem Level Designer, den wir bereits in der letzten Folge angefangen haben.
Tutorial Inhalt
In diesem Teil werden wir unseren Unity Editor also weiter programmieren.
Im ersten Abschnitt werden wir aber zunächst einmal unsere Tiles, also die Kacheln, erstellen.
Danach geht es dann aber an den Level Designer. Ich werde in diesem Tutorial dem Editor beibringen einzelne Kacheln zu erzeugen und in unserer Scene View zu platzieren. Außerdem wird dieser auch bereits erstellt Kacheln wieder löschen können.
Die Texturen gibt es übrigens unten wieder kostenlos als Download!
Viel Spaß beim Anschauen:
Download
Die Original-Texturen stammen wieder einmal von Alexej Bodemer.
Hier könnt Ihr die ihre Grafiken aus dem Video kostenlos herunterladen und unter Einhaltung Creative Common 3.0 Lizenz nutzen.
Die Nutzungsbedingungen besagen:
- Dieses Grafikset darf ausschließlich nur privat verwendet werden.
- Das Verändern und die kommerzielle Nutzung der Grafiken, oder Teile davon, ist ausdrücklich untersagt.
- Bei Fragen, Anregungen oder Feedback zu dem Grafikset sende Sie bitte eine E-Mail an cacysunlee79(at)googlemail(dot)com
Pixelart Sets von Alexej Bodemer steht unter einer Creative Commons Namensnennung-NichtKommerziell-KeineBearbeitung 3.0 Unported Lizenz. Über diese Lizenz hinausgehende Erlaubnisse können Sie unter www.alexejbodemer.de erhalten.
Hier ist der DOWNLOAD.
PS: Ihr möchtet die Originalscripte aus den Videos haben? Oder Ihr wollt mich einfach nur unterstützten? Dann geht es hier entlang.
Dieser Level Designer ist ja eine geniale Sache. Du hast mir eine Menge Arbeit erspart, Danke 😀
Greetz Lennard
Dafür soll der Editor auch da sein :).
Hallo erstmal das Tutorial ist echt klasse. Ich habe nur ein Problem beim letzten Script (LevelDesignerEditor) bei den Grundlagen eines Custom Editors. Nach mehrmaligen prüfens ob der Code Fehler enthält kann ich nicht erkennen woran es liegen kann. Es ist 1zu1 dasselbe wie im Video. Beim Bewegen der Maus auf der Scenenview wird immer die selbe Position der Maus zurückgegeben. somit funktioniert die Bewegung des Rechteckes nicht. Bin am Verzeifeln. Auszug aus dem Skript:
LevelDesigner script;
Vector2 oldTilePos = new Vector2();
void OnEnable()
{
script= (LevelDesigner) target;
}
public override void OnInspectorGUI()
{
script.depth =EditorGUILayout.Slider(script.depth, -5,5);
if(GUI.changed)
EditorUtility.SetDirty(target);
}
void OnSceneGUI()
{
Ray ray = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition);
Vector2 tilePos = new Vector2();
tilePos.x = Mathf.RoundToInt(ray.origin.x);
tilePos.y = Mathf.RoundToInt(ray.origin.y);
if(tilePos != oldTilePos)
{
script.gizmoPosition =tilePos;
SceneView.RepaintAll();
oldTilePos =tilePos;
}
if(GUI.changed)
EditorUtility.SetDirty(target);
}
Woran kann sowas liegen?
Hast Du denn die Szenensicht, von wo Du auf die Szene schaust, auch richtig ausgerichtet? Eine Automatik hierfür mache ich ja in dem obigen Teil…
Nachdem ich das nachfolgende Tutorial angefangen habe und das Editor Script dadurch erweitert habe geht es nun. 🙂