Unity verfügt nicht über diese Art von "Direktmodus" -Rendering. Sie werden Draw
keine Update-Schleifen für Unity aufrufen .
In Unity müssen Sie ein Spielobjekt erstellen und dann Skripte an dieses Spielobjekt anhängen. Diese Skripte steuern, wie sich das Objekt verhält, ob und wie es auf dem Bildschirm angezeigt wird, ob es Teil des Physiksystems usw. ist.
Um ein neues Sprite zum Zeichnen auf dem Bildschirm zu erstellen, müssen Sie ein neues Spielobjekt erstellen, das SpriteRenderer-Skript daran anhängen und das Sprite festlegen.
GameObject go = new GameObject();
SpriteRenderer renderer = go.AddComponent<SpriteRenderer>();
renderer.sprite = Resources.Load("Sprites/Player", typeof(Sprite)) as Sprite;
Dies setzt eine Verzeichnisstruktur von voraus
-Assets
--Resources
---Sprites
----<Your 2D assets, set with their texture type to Sprite (2D and UI)>
Zum Beispiel:
Dann hatten Sie ein anderes Skript zum Ändern der Position, Drehung usw., je nachdem, wie Sie sich verhalten möchten.
Der einfachste Weg, dies alles zu erreichen, ohne so viel Code schreiben zu müssen? Erstellen Sie das Spielobjekt zuerst im Unity-Editor. Sobald das Spielobjekt mit dem gewünschten Sprite und den Verhaltensskripten und all dem ausgestattet ist. Ziehen Sie es per Drag & Drop in ein Ressourcenverzeichnis. Dadurch entsteht ein Fertighaus. Fertighäuser sind genau das, wonach sie klingen, Vorfertigungen. Es handelt sich um vollständige Objekte, auf die Sie im Handumdrehen verweisen und sie erstellen können.
Sie würden solche erstellen wie:
public void CreateObject(string prefabName) {
GameObject newObject =
GameObject.Instantiate(Resources.Load(prefabName)) as GameObject;
}
Dadurch wird ein Klon des zuvor erstellten Fertighauses erzeugt. Wenn Sie beispielsweise Ihrem Fertighaus das Verhalten gegeben haben, sich auf den Spieler zu bewegen und anzugreifen, bewegen sich diese jedes Mal, wenn Sie ein neues Fertighaus dieses Typs erzeugen, auf den Spieler zu und greifen an. Die Skripte, die Sie nur einmal schreiben mussten, steuern alle diese Spielobjekte.
Ich denke, der Hauptunterschied, den Sie hier sehen, ist der starke Einsatz von Komponenten. Was Sie wahrscheinlich in anderen Game-Engines wie XNA noch nicht gesehen haben. Unity ist wirklich ein leistungsstarker Motor, aber Ihre Frustration entsteht, wenn Sie versuchen, ihn wie andere Motoren zu verwenden, wenn er nicht wie andere Motoren ist. Schauen Sie sich mein Profil für eine Schulung an. Ich habe einen Link für eine kostenlose Testversion hinzugefügt, damit Sie nicht bezahlen müssen.