Wie kann ich Sprites in Unity 5 programmgesteuert zeichnen? Ich suche etwas Ähnliches wie spriteBatch.Draw()
in XNA. Die Ergebnisse, die ich bei der Suche erhalte, sind entweder veraltet unter http://wiki.unity3d.com/index.php?title=SpriteManager (dies wurde 2012 geschrieben) oder sie werden über die Unity-Oberfläche erstellt. Ich kann nur eine Sprite
Klasse in UnityEngine.dll finden. Brauche ich das Wie würde das Zeichnen funktionieren? Ich verstehe es wirklich nicht.
8
Sprite
und dann ein mache,SpriteRenderer
aber ich kann nicht herausfinden, wie man ein Bild auf das Sprite setzt.Sprite
Objekte scheinen nicht einmal eine Eigenschaft zum Festlegen des Bildes zu haben. Das nächste, was ich sehe, ist sprite.texture, das schreibgeschützt ist ... eigentlich ist jede Eigenschaft von sprite schreibgeschütztAntworten:
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.
Dies setzt eine Verzeichnisstruktur von voraus
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:
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.
quelle