Unity n'a pas ce type de rendu en "mode direct", vous n'appelerez Draw
aucune boucle de mise à jour pour Unity.
Dans Unity, vous devez créer un objet de jeu, puis attacher des scripts à cet objet de jeu. Ces scripts contrôleront le comportement de l'objet, si et comment il est affiché à l'écran, s'il fait partie du système physique, etc.
Pour créer un nouveau sprite à dessiner à l'écran, vous devrez créer un nouvel objet de jeu, puis y attacher le script SpriteRenderer et définir son sprite.
GameObject go = new GameObject();
SpriteRenderer renderer = go.AddComponent<SpriteRenderer>();
renderer.sprite = Resources.Load("Sprites/Player", typeof(Sprite)) as Sprite;
Cela suppose une structure de répertoires de
-Assets
--Resources
---Sprites
----<Your 2D assets, set with their texture type to Sprite (2D and UI)>
Par exemple:
Ensuite, vous aviez un script différent pour changer la position, la rotation, etc., selon la façon dont vous voulez qu'il se comporte.
La façon la plus simple d'accomplir tout cela sans avoir à écrire autant de code? Créez d'abord l'objet de jeu dans l'éditeur Unity. Une fois que l'objet de jeu est équipé du sprite que vous voulez et des scripts de comportement et tout ça. Faites-le glisser et déposez-le dans un répertoire de ressources. Cela crée un préfabriqué. Les préfabriqués sont exactement ce à quoi ils ressemblent, des préfabrication. Ce sont des objets complets que vous pouvez ensuite référencer et créer à la volée.
Vous créeriez ceux comme:
public void CreateObject(string prefabName) {
GameObject newObject =
GameObject.Instantiate(Resources.Load(prefabName)) as GameObject;
}
Cela engendrera un clone du préfabriqué que vous avez créé auparavant. Donc, si par exemple, vous aviez donné à votre préfabriqué le comportement de se déplacer vers le joueur et d'attaquer, chaque fois que vous générez un nouveau préfabriqué de ce type, il commencera à se déplacer vers le joueur et à attaquer. Les scripts que vous n'aviez à écrire qu'une seule fois contrôlent tous ces objets de jeu.
Je pense que la principale différence que vous voyez ici est l'utilisation intensive de composants. Ce que vous n'avez probablement pas vu dans d'autres moteurs de jeu comme XNA. L'unité est vraiment un moteur puissant, mais votre frustration vient d'essayer de l'utiliser comme d'autres moteurs, alors que ce n'est pas comme les autres moteurs. Consultez mon profil pour une formation, j'ai ajouté un lien pour un essai gratuit afin que vous n'ayez pas à payer.