Introduction à Unity 3D
Unity 3D est un puissant moteur de développement de jeux. C'est une plateforme multiplateforme qui vous permet de créer des jeux pour mobile, web, ordinateur de bureau et console, environ 30 plateformes au total. Unity 3D possède de nombreuses fonctionnalités intéressantes, dont quelques-unes sont présentées ci-dessous :
- Coût: La version personnelle de Unity 3D est gratuite pour les débutants, les étudiants et les amateurs. Unity Personal possède toutes les fonctionnalités de base de Unity. Il propose également des analyses de base, une construction cloud, des publicités, des achats multijoueurs, des achats intégrés et des fonctionnalités multiplateformes. En dehors de ces fonctionnalités, Unity Personal a également quelques limitations. Deux autres versions Unity Plus et Unity Pro sont également disponibles pour les créateurs et les professionnels sérieux, à partir de 35 $ par mois.
- Éditeur tout-en-un : Unity est connu comme un éditeur tout-en-un. L'éditeur Unity dispose de plusieurs outils conviviaux pour les artistes pour concevoir des expériences impressionnantes. Il dispose d'un ensemble solide d'outils de développement pour mettre en œuvre une logique de jeu et un gameplay performant haut de gamme. Unity vous permet également de créer des jeux 2D et 3D. Il comprend également des outils de recherche de chemin d'IA basés sur un système de navigation. Il dispose d'un excellent système intégré pour créer des interfaces utilisateur accrocheuses. Son moteur physique Box2D nous permet de créer un mouvement, un élan, une force et un gameplay réalistes.
- Plateformes : Unity prend en charge de nombreuses plates-formes différentes telles que Linux, IOS, Android, Windows, etc. au total près de 30 plates-formes.
- Réalité virtuelle et augmentée : Unity prend en charge le développement de réalité virtuelle et augmentée. C'est le moteur le plus largement utilisé pour le développement XR. Il prend en charge Microsoft HoloLens, Stream VR/Vive, Gear VR et PlayStation VR dans Unity Plus pour la réalité virtuelle et augmentée.
- Multijoueur : Pour les jeux en réseau et multijoueurs en temps réel, Unity est la meilleure option. Il fournit des serveurs pour une collaboration en temps réel.
- Performance du moteur: Les performances du moteur Unity sont extraordinaires. Le système de calcul multithread arrive pour les scénarios intensifs. Le moteur Unity dispose d'outils de profilage avancés qui déterminent si votre jeu est lié au processeur ou non et indique également comment l'optimiser avec une meilleure expérience.
- Unity Asset Store : C'est un énorme catalogue de contenu gratuit et payant. Vous pouvez augmenter votre temps de développement en téléchargeant de nombreux modèles et ressources gratuits intégrés. Même Unity Asset Store a des projets complets à la fois gratuits et payants.
- Rendu graphique : Unity possède l'un des meilleurs systèmes de rendu graphique. Il vous permet de créer des environnements comme un jour lumineux, la lueur criarde des enseignes au néon, des minuits faiblement éclairés et des tunnels sombres. Il produit des effets visuels étonnants. Bien qu'Unity prenne en charge plusieurs plates-formes, il essaie toujours de couvrir l'API graphique de bas niveau de chaque plate-forme pour de meilleurs résultats et une expérience utilisateur plus fluide.
- La collaboration d'équipe: Il possède des fonctionnalités qui permettent la collaboration et un flux de travail simple. Le stockage en nuage de Unity vous permet d'enregistrer, de partager et de synchroniser vos projets n'importe où.
- Rapports sur les performances : Le système de rapport de performance Unity traite les problèmes en temps réel. Les problèmes prioritaires sont résolus très efficacement. Détecte les erreurs d'application sur tous les appareils et plates-formes.
Interfaces Unity
Explorons les interfaces de l'éditeur Unity, qui sont configurables. Il est composé de fenêtres taraudées que vous pouvez réagencer selon vos besoins. Explorons les paramètres de fenêtre par défaut. Voici l'image à quoi ça ressemble
Fenêtre Hiérarchie
La fenêtre Hiérarchie représente chaque objet de la scène. Il montre comment les objets sont liés les uns aux autres dans la scène, donc ces deux fenêtres sont liées. Dans la fenêtre de hiérarchie, il y a une liste déroulante nommée comme Créer. Vous pouvez créer très facilement un objet vide, des objets 3D, des objets 2D, des objets lumière, audio, vidéo, système de particules et caméra. La fenêtre de hiérarchie est illustrée ci-dessous. "Sans titre" est le nom de la scène. Vous pouvez le renommer comme vous le souhaitez. Vous pouvez voir une icône déroulante tout à droite de sans titre (nom de la scène). En cliquant sur cette liste déroulante, vous pouvez voir différentes options pour Enregistrer la scène et Ajouter une nouvelle scène.
Fenêtre de scène
La fenêtre de scène est l'endroit où vous créez votre scène. C'est là que vous pouvez interagir avec vos objets et modèles de jeu. Vous pouvez redimensionner, remodeler et repositionner vos objets de scène. Ceci est la fenêtre où vous commencez à travailler avec Unity. La vue de la scène peut être en 2D ou en 3D selon le paramétrage de votre projet. Voici une capture d'écran de l'apparence de la fenêtre de la scène :
Dans la fenêtre de la scène, vous pouvez voir un autre onglet intitulé Ombré, c'est ici que vous pouvez sélectionner le type de vue que vous voulez soit ombrée ou filaire. Il a de nombreuses autres options comme Divers, Éclairage global, GI en temps réel, GI cuit et bien d'autres. Vous pouvez visualiser en 2D ou en 3D en utilisant le bouton à côté du Ombré menu déroulant. Vient ensuite le bouton à bascule pour l'éclairage de la scène. De même, un bouton à bascule pour l'audio de la scène. Vient ensuite une liste déroulante pour activer la boîte du ciel, le brouillard, le matériel animé et les effets d'image.
Fenêtre de jeu
La fenêtre de jeu représente votre jeu final publié en mode jeu. Il est rendu à partir des caméras que vous avez utilisées dans votre jeu. Dans la fenêtre du jeu, vous pouvez voir une autre barre d'outils comme indiqué ci-dessous dans la capture d'écran :
L'écran 1 montre la caméra présente dans votre scène de jeu. Par défaut, il est défini sur Affichage 1 pour la caméra principale. Si vous avez plusieurs caméras et que vous souhaitez changer, vous pouvez sélectionner dans la liste déroulante. À côté de cela, vous pouvez voir une liste déroulante pour les rapports d'aspect. Vous pouvez sélectionner en fonction de l'écran du moniteur de votre appareil cible. Ensuite, vous pouvez voir un Curseur d'échelle pour zoomer. Faites défiler vers la droite et examinez plus de détails de votre scène en mode lecture. Suivant est le bouton pour Maximiser le jeu, lorsque vous cliquez dessus, la taille de la fenêtre de jeu sera maximale en mode de jeu. Couper le son toggle est utilisé pour désactiver/activer le son. Statistiques affiche des statistiques de rendu sur l'audio et les graphiques de votre jeu.
Fenêtre Actifs du projet
Comme son nom l'indique, la fenêtre des actifs contient tous les actifs de votre projet que vous pouvez utiliser. Si vous importez quelque chose de nouveau, il apparaîtra dans la fenêtre des actifs du projet. La fenêtre des ressources du projet comporte deux parties, le panneau gauche et le panneau droit, comme illustré dans la capture d'écran ci-dessous :
Le volet de gauche montre la structure hiérarchique des actifs du projet. Lorsque vous cliquez sur un dossier, les détails s'affichent dans le panneau de droite. Par exemple dans la figure donnée Préfabriqués le dossier est cliqué dans le panneau de gauche afin que ses détails s'affichent dans le panneau de droite car il contient deux objets de jeu. Dans le panneau de gauche, vous pouvez voir un Favoris section, où vous pouvez faire glisser les éléments que vous souhaitez utiliser très fréquemment pour éviter de perdre du temps à les rechercher. Au-dessus, vous pouvez voir un Créer liste déroulante qui vous permet de créer un script C#, un dossier, un shader, une interface graphique, une scène, un préfabriqué, un matériau et bien plus encore.
Fenêtre de la console
La fenêtre de la console est l'endroit où vous pouvez voir vos erreurs, avertissements et messages. Vous pouvez les ajuster en cliquant sur leurs boutons bascule. Il vous permet également d'effacer toutes les erreurs, avertissements et messages. Vous pouvez suspendre les erreurs pendant un certain temps. Ici vous pouvez voir dans la figure suivante
L'icône déroulante dans le coin supérieur droit propose des options pour le journal de l'éditeur et la journalisation de la trace de la pile.
Fenêtre de l'inspecteur
La fenêtre d'inspection est l'une des fenêtres les plus intéressantes et utiles de l'éditeur. C'est l'endroit où vous pouvez modifier toutes les propriétés de l'objet de jeu sélectionné. Chaque objet du jeu a son propre type, donc leurs propriétés seront différentes et la fenêtre de l'inspecteur peut varier. Les actifs, les scripts et les objets de jeu varient tous en propriétés. Permet de voir les propriétés d'un cube dans la fenêtre d'inspection. Voici l'image :
Vous pouvez renommer votre objet de jeu en cliquant simplement sur le nom précédent et en en tapant un nouveau. Ensuite, vous verrez la section de transformation où vous pouvez ajuster la position, la rotation et la mise à l'échelle de votre objet de jeu sélectionné. Dans le dernier, vous voyez un nom de bouton comme Ajouter un composant, cliquez dessus pour ajouter de nouveaux composants à votre objet de jeu, par exemple si vous souhaitez attacher un script, cliquez simplement sur ajouter un composant et tapez le nom de votre script.
Barre d'outils
Le dernier est l'onglet de la barre d'outils, il a de nombreuses fonctionnalités utiles. Il contient des outils de base pour manipuler la vue de la scène et les objets. Au centre, il y a des boutons pour la lecture, la pause et le contrôle pas à pas. Les deux boutons suivants affichent votre cloud Unity et votre compte Unity. Voici la figure à quoi elle ressemble:
Premiers pas avec Unity
Commençons à créer un nouveau projet dans Unity car il est temps de jouer avec ce que nous avons appris. Double-cliquez sur l'icône Unity, la fenêtre suivante apparaît :
Entrer nom du projet, choisir un lieu de travail Emplacement puis sélectionnez le type de votre projet 2D ou 3D. Cliquer sur Créer un projet.
Par défaut, vous verrez une scène sans titre contenant une caméra principale et une lumière directionnelle dans la scène. Commençons à créer un environnement.
Environnement du bâtiment
Créez tout d'abord un plan en cliquant sur Créer -> Objet 3D puis sélectionnez Avion. Ou bien vous pouvez le créer en cliquant sur GameObject -> Objet de jeu puis sélectionnez Avion. Allez dans la fenêtre de hiérarchie et cliquez sur l'objet du jeu d'avion. Allez maintenant dans la fenêtre de l'inspecteur et renommez-la en Terre. Ajustez maintenant les valeurs de transformation pour que ce plan ressemble à une route droite. Échelle juste X à 6 et Z à 50. Voici l'image à quoi ça ressemble
Téléchargez maintenant une texture de route et appliquez-la sur l'objet au sol. Créer un nom de dossier en tant que Texture. Faites glisser la texture de route téléchargée dans le dossier de Texture. Maintenant, sélectionnez Terre et faites glisser la texture de la route dans la vue de la scène. Voici l'image à quoi ça ressemble
C'est la texture que j'ai téléchargée
Après avoir appliqué la texture sur le sol, cliquez sur Sol et définissez le carrelage dans la fenêtre d'inspection. Voici comment je l'ai réglé.
Maintenant que vous avez créé un modèle de route, créons un modèle de balle dans l'unité.
Aller à Créer -> Objet 3D puis sélectionnez Sphère, vous verrez un objet sphère dans la fenêtre de la scène. Sélectionnez-le et accédez à la fenêtre de l'inspecteur pour le renommer en Balle. Ajustez maintenant les valeurs de transformation en conséquence. Redimensionnez-le simplement à 5 le long des trois axes et repositionnez-le au centre de la route. Voici à quoi ça ressemble
Créez maintenant une clôture ou un mur autour de la route.
Aller à Créer -> Objet 3D puis sélectionnez cube. Sélectionnez-le et renommez-le en Mur1. Accédez à la fenêtre d'inspection et définissez les valeurs de transformation pour qu'elle ressemble à un mur autour de la route. Voici à quoi cela ressemble :
Voir ces valeurs de transformation pour Mur1. Échelle Y à 6 et Z à 500. Puis ajustez sa position pour qu'il arrive aux coins de route.
Maintenant, recherchez une texture de mur, téléchargez-la et copiez-la dans le Texture dossier dans les actifs. Faites glisser la texture du mur vers le mur dans la fenêtre de scène. Ajustez le labour pour qu'il soit beau et lisse. J'ai ajusté la mosaïque comme X à 50 et Y à 1.5. Après avoir ajusté le carrelage, voici à quoi il ressemble
C'est la texture que j'ai utilisée pour le mur
Nous avons créé un mur pour un côté de la route. Maintenant fais la même chose pour l'autre côté de la route aussi. Au lieu de passer par tout le processus, nous pouvons simplement copier Mur1 et renommez-le en Mur2.
Sélectionner Mur1 dans la fenêtre de hiérarchie, puis cliquez avec le bouton droit puis sélectionnez Dupliquer option. Cela créera un autre objet de jeu ayant la même taille et les mêmes valeurs de transformation. Cliquer sur Mur1(1) et renommez-le en Mur2. Ajustez maintenant la position pour qu'elle arrive à l'autre coin de la route.
Voir l'image suivante à quel point c'est cool
Mes valeurs de position pour Wall2 sont de X à -29.6 ans à 2.6 et Z à 2.6.
Créez maintenant un matériau pour Balle. Allez dans la fenêtre Projet et créez un dossier en cliquant avec le bouton droit de la souris puis sélectionnez Dossier. Nommez-le comme Matériaux. Cliquez à nouveau avec le bouton droit de la souris et créez un matériau. Nommez-le comme balle rouge. Dans la fenêtre de l'inspecteur, sélectionnez la couleur du matériau. Aller à Cartes principales et sélectionnez la couleur Albedo au rouge. Augmentez la texture métallique en faisant défiler la barre vers la droite. Faites glisser ce matériau vers le Balle dans la vue de la scène. Voici à quoi ça ressemble
Voici à quoi ressemble le matériel :
Nous en avons donc fini avec le développement de notre environnement. Il est maintenant temps de faire un peu de codage. Pour cela, nous devons créer un script.
Script dans Unity
Pour mettre en œuvre vos propres fonctionnalités de jeu et contrôler le comportement du jeu Unity fournit un mécanisme de script. Vous pouvez écrire votre propre script pour la sortie souhaitée du jeu. Avec ces scripts, vous pouvez déclencher des événements de jeu, modifier les propriétés des composants et répondre aux entrées des utilisateurs. Fondamentalement, Unity prend en charge deux langages de programmation différents à des fins de script, l'un est C# et l'autre est JavaScript. Outre ces deux langues, bien d'autres .Les langages NET peuvent également être utilisés avec Unity. Les scripts sont appelés composants de comportement dans Unity.
Création d'un scénario
Commençons à créer un script Unity. Pour cela, allez dans la fenêtre des actifs et créez un nouveau dossier nommé Scénarios (vous pouvez ignorer la création de nouveaux dossiers pour chaque nouveau type d'actif, mais c'est une bonne pratique de garder les choses organisées). Voici à quoi ressemble ma fenêtre d'éléments maintenant :
Ouvrez maintenant le Scénarios dossier, faites un clic droit, puis allez dans Créer et sélectionnez C# scénario. Renommer le script en Mouvement. Nous créons ce script pour déplacer et faire rouler la balle sur la route. Pour l'instant la balle est immobile, ne faisant rien, créons un peu de mouvement dedans.
Double-cliquez sur le script de mouvement, il s'ouvrira dans Mono Develop. Si votre script est un comportement mono, vous verrez du code pré-écrit comme celui-ci
en utilisant le système.Collections ; en utilisant le système.Collections.Générique; en utilisant UnityEngine ; public class MovementScript : MonoBehaviour // Utilisez ceci pour l'initialisation void Start () // Update est appelé une fois par frame void Update ()
Vous pouvez voir deux fonctions Start() et Update().
Démarrer(): La fonction de démarrage est utilisée pour initialiser les variables et les objets. Il n'est appelé qu'une seule fois lorsque le script est activé juste avant tout autre appel de fonction de mise à jour.
Mettre à jour(): C'est une fonction de comportement mono, elle est appelée une fois dans chaque image.
Outre ces deux fonctions, il existe de nombreuses autres fonctions de comportement mono, par exemple wake(), fixedUpdate(), lateUpdate() etc.
Pour déplacer la balle sur la route il faut tout d'abord en faire un corps rigide (c'est un corps solide idéal dans lequel la déformation est négligée). Sélectionner Balle dans la fenêtre de hiérarchie et cliquez sur Ajouter un composant bouton dans la fenêtre de l'inspecteur. Tapez le corps rigide et appuyez sur Entrer. Un corps rigide s'attachera au Balle. Allez maintenant dans le script et créez une variable privée de type Corps rigide. Affectez maintenant le corps rigide de la balle à cette variable que vous venez de créer dans le script.
privé Rigidbody rb; rb = GetComponent();
Maintenant, écrivez du code pour le mouvement de ce corps rigide. Quelle est l'idée? La balle doit bouger lorsque j'appuie sur les touches fléchées du clavier. Il doit avancer lorsque la touche haut est enfoncée, reculer lorsque la touche bas est enfoncée et ainsi de suite.
Donc l'entrée venant du clavier, comment dois-je obtenir cette entrée? La classe Input de Unity a un nom de fonction ObtenirAxe(), pour retourner la valeur de l'axe virtuel identifié par le nom de l'axe. Créez deux variables, une pour l'axe des x et une pour l'entrée de l'axe des y. Voici comment cela devrait être
float moveHorizontal = Entrée.GetAxis ("Horizontal");
Créez maintenant une variable Vector3 pour obtenir les valeurs de mouvement.
Mouvement Vector3 = nouveau Vector3 (moveHorizontal, 0.0f,moveVerticle );
Le premier paramètre est la valeur de l'axe des x, le deuxième est la valeur de l'axe des y et le troisième est la valeur de l'axe des z. Comme la balle ne se déplacera pas dans la direction de l'axe y, attribuez-lui donc zéro. Enfin, ajoutez ce mouvement au corps rigide et multipliez-le par un nombre constant pour la vitesse ou créez une autre variable pour la vitesse. Voir le code complet ci-dessous
en utilisant le système.Collections ; en utilisant le système.Collections.Générique; en utilisant UnityEngine ; public class Mouvement : MonoBehaviour public float speed; privé Rigidbody rb; // Utilisez ceci pour l'initialisation void Start () rb = GetComponent(); // Fixed Update est appelé après un nombre fixe de frame void FixedUpdate () float moveHorizontal = Input.GetAxis("Horizontal"); float moveVerticle = Entrée.GetAxis("Horizontal"); Mouvement Vector3 = nouveau Vector3 (-1*moveHorizontal, 0.0f,-1*moveVerticle ); rb.AddForce (mouvement * vitesse);
Comme la vitesse est une variable publique, vous pouvez donc attribuer une valeur dans la fenêtre d'inspection. Attachez ce script à la balle en le faisant glisser vers la fenêtre d'inspection ou en appuyant sur Ajouter un composant bouton. Appuyez sur le bouton de lecture et testez votre codage, que la balle bouge ou non.
Réglage de la caméra
La dernière chose que vous remarquerez est lorsque vous appuyez sur le bouton avant et que la balle commence à bouger, elle sort de la caméra lorsque la caméra est immobile. Que devrions nous faire? On devrait aussi bouger la caméra? oui c'est la chose la plus simple a faire. Faites de la caméra l'enfant de la balle en faisant glisser la caméra principale vers la balle.
Conclusion
Il s'agissait d'un didacticiel d'introduction de base dans lequel vous avez appris de nombreuses fonctionnalités intéressantes, la création d'environnements et les scripts dans Unity. N'hésitez pas, commencez à créer votre premier jeu avec Unity aujourd'hui et profitez!