Unity 2D Game Development : Beginner Unity et C # dans Unity 2020. 3 | Kaupenjoe (Nico) | Skillshare

Vitesse de lecture


1.0x


  • 0.5x
  • 0.75x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Unity 2D Game Development : Beginner Unity et C # dans Unity 2020. 3

teacher avatar Kaupenjoe (Nico), CS Student, Nerd and Educator

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Introduction à mon cours d'unité

      1:29

    • 2.

      Installation Unity

      8:27

    • 3.

      (C #) Créer notre projet de première unité

      3:55

    • 4.

      (C #) Introduction à C # Datatypes

      12:43

    • 5.

      (C #) Syntaxe C # expliquée

      6:51

    • 6.

      (C #) Integers et opérateurs arithmétiques

      11:40

    • 7.

      (C #) C # Méthodes de calcul

      9:31

    • 8.

      (C #) Opérateurs de missions

      4:49

    • 9.

      (C #) Booleans et opérateurs de comparaison

      3:39

    • 10.

      (C #) Booléens et opérateurs logiques

      4:55

    • 11.

      (C #) Cordes et méthodes de chaîne C #

      15:00

    • 12.

      (C #) de variables de casting

      8:22

    • 13.

      (C #) Déclarations conditionnelles (si et autres)

      8:18

    • 14.

      (C #) opérateur ternaire

      4:55

    • 15.

      (C #) Switch Statement

      4:49

    • 16.

      (C #) pendant la boucle

      8:08

    • 17.

      (C #) pour boucle

      4:20

    • 18.

      (C #) casser et continuer des mots-clés

      4:02

    • 19.

      (C #) C #

      11:32

    • 20.

      (C #) Tableaux multidimensionnels dans C #

      5:49

    • 21.

      (C #) Listes C #

      8:01

    • 22.

      (C #) C #

      5:32

    • 23.

      (C #) Foreach Loop

      3:00

    • 24.

      (C #) Namespaces

      9:09

    • 25.

      (C #) C #

      9:33

    • 26.

      (C #) surcharge de la méthode

      6:10

    • 27.

      (C #) des cours et des objets

      12:26

    • 28.

      Membres de classe (C #)

      4:49

    • 29.

      (C #) membres statiques

      7:26

    • 30.

      (C #) Access Modifiers

      10:24

    • 31.

      (C #) C #

      9:08

    • 32.

      (C #) héritage

      9:55

    • 33.

      (C #) Polymorphisme

      4:49

    • 34.

      (C #) Cours et méthodes abstraits en C #

      8:04

    • 35.

      (C #) Méthodes virtuelles

      3:45

    • 36.

      Interface C #

      7:15

    • 37.

      (C #) Enums

      4:12

    • 38.

      (C #) Exceptions et déclarations d'essayer et de capture

      7:28

    • 39.

      (C #) bases de génériques en C #

      5:18

    • 40.

      (C #) bases de LINQ en C #

      5:58

    • 41.

      (C #) Événements et délégués

      8:02

    • 42.

      (C #) fichier E/S

      6:46

    • 43.

      Conventions C #

      8:19

    • 44.

      (Unity Basics) Unity Layout et Editor expliqués

      18:03

    • 45.

      Structure de dossier d'unité

      4:42

    • 46.

      Scripts et l'inspecteur

      8:52

    • 47.

      (Unity Basics) Kenny Assets et le magasin d'actifs pour nos jeux

      3:30

    • 48.

      Scènes et paramètres de construction (Unity Basics)

      7:31

    • 49.

      (Unity Basics) MonoBehavior in Unity

      12:54

    • 50.

      (Unity Basics) Short Maths : Vecteurs

      3:39

    • 51.

      (Unity Basics) Transforme et vecteurs

      15:15

    • 52.

      (Unity Basics) GameObjects in Unity

      12:18

    • 53.

      Méthodes d'entrée dans l'unité

      7:15

    • 54.

      (Unity Basics) Créer un script de mouvement très simple

      12:27

    • 55.

      (Unity Basics) Saisie de la souris

      10:49

    • 56.

      (Unity Basics) la caméra (principale)

      8:22

    • 57.

      (Unity Basics) GetComponent in Unity

      14:07

    • 58.

      (Unity Basics) Prefabs et génère de nouveaux objets

      11:00

    • 59.

      (Unity Basics) Textures et Sprites

      10:11

    • 60.

      (Unity Basics) Sprite Editor

      5:42

    • 61.

      (Unity Basics) Le rendu Sprite

      10:06

    • 62.

      (Unity Basics) 2D collision

      14:47

    • 63.

      (Unity Basics) Rigidbody2D Basics

      11:14

    • 64.

      (Unity Basics de base) Unity Texte UI

      7:08

    • 65.

      (Unity Basics) Basic Unity Debugging Tools

      6:57

    • 66.

      (Clicker de fromage) L'idée de "Clicker de fromage"

      3:24

    • 67.

      Créer un fromage à cliquer

      17:58

    • 68.

      (Clicker de fromage) Créer des bâtiments à construire

      32:32

    • 69.

      (Clicker de fromage) Créer une interface utilisateur de base pour construire des bâtiments

      44:52

    • 70.

      (Clicker de fromage) Créer des mises à niveau

      32:27

    • 71.

      (Unity UI) Ajouter une toile

      15:20

    • 72.

      Panneaux et texte (Unity UI)

      9:23

    • 73.

      (UI Unity) TextMashPro pour un meilleur texte

      8:24

    • 74.

      (UI Unity) ajouter des images à notre interface utilisateur

      5:15

    • 75.

      (Unity UI) Boutons de clic peut être amusant

      9:41

    • 76.

      (UI Unity) Toggles et curseurs

      8:15

    • 77.

      Mise en page dans l'unité

      12:23

    • 78.

      Barres de défilement et masques (Unity UI)

      8:16

    • 79.

      (Unity UI) Champs déroulants et d'entrée

      12:05

    • 80.

      (UI Unity) ajouter des groupes de disposition à notre Clicker de fromage

      4:52

    • 81.

      (Unity Intermediate) Ajouter une source audio

      9:25

    • 82.

      (Unity Intermediate) Ajouter des particules

      8:42

    • 83.

      Paramètres de projet (Unity Intermediate)

      9:17

    • 84.

      (Unity Intermediate) Ajouter des tags à GameObjects

      6:52

    • 85.

      (Unity Intermediate) 2D Raycasting in Unity

      11:35

    • 86.

      (Unity Intermediate) Préparer la scène pour sauvegarder des données

      46:48

    • 87.

      (Unity Intermediate) sauvegarder des données avec PlayerPrefs

      9:49

    • 88.

      (Unity Intermediate) Enregistrer des données (personnalisées) avec des fichiers JSON

      14:33

    • 89.

      (Unity Intermediate) utilisant TileSets

      16:36

    • 90.

      Bases de l'animation (Unity Intermediate)

      23:24

    • 91.

      Objets Scriptables (Unity Intermediate)

      13:23

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

788

apprenants

--

À propos de ce cours

Avez-vous toujours voulu créer vos propres jeux, mais vous ne saviez pas par où commencer ? C'est exactement le cours dont vous avez besoin alors !

Dans ce cours de développement de jeu complet de l'unité 2D pour débutants, vous allez apprendre les bases de la programmation C # ainsi que le développement de jeu avec Unity 2020.3. Aucune expérience n'est nécessaire pour ce cours pour apprendre les fins et les résultats de la réalisation de jeux avec Unity.

Ce cours est accessible aux débutants complets. Même si vous n'avez jamais programmé dans votre vie. Les connaissances de base de l'unité et du développement de jeux seraient avantageuses, mais n'est pas nécessaire. Dans le cadre de ce cours, vous réaliserez également des jeux 2D entièrement jouables du début à la fin, que vous pourrez remodeler, modifier ou mettre à jour comme vous le souhaitez et utiliser comme terrain de jeu Unity.

Tout d'abord, vous apprendrez C #, puis nous explorerons des concepts de base de Unity Game Development et ensuite examinerons des concepts intermédiaires ainsi que le système d'interface utilisateur Unity.

Le code source entier sera disponible pour que vous puissiez suivre tout ce que je fais dans les cours.

Si vous avez des questions ou des suggestions, n'hésitez pas à me contacter ici. Je suis heureux de vous aider à apprendre à créer des jeux avec Unity.

Rencontrez votre enseignant·e

Teacher Profile Image

Kaupenjoe (Nico)

CS Student, Nerd and Educator

Enseignant·e

I am Nico - also known as Kaupenjoe - I have a Master's Degree in Computer Science and teach Game Development through many different classes. Mid-2020, when I became a bit disillusioned with my job, I set my sights to something different. Multiple people have previously told me I was good at teaching things.

With some of my prior YouTube Video making knowledge I was able to make my first courses. The Minecraft Courses in particular made a huge impact on students and myself and allowed me to teach full-time with courses and other supplementary methods.

I hope you will also join me and allow me to help you learn Programming, Modding or Game Development. As a hobby, side-hustle or as a promising career, it is an amazing and fulfilling field and I'm so happy to have y... Voir le profil complet

Level: All Levels

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. Introduction à mon cours de l'unité: Bonjour, Je suis Nico m'a attrapé sur le muscle étudiant pour informatique et tous les nerd bizarre pour tout le développement de jeu lié. Depuis près de huit ans, je programme chez Unity pour des raisons récréatives et professionnelles. La puissance incroyable du moteur Unity vous donne gratuitement encore me déconcerte à ce jour. Dans cette classe d'unité complète et C-Sharp, vous apprendrez toutes les compétences dont vous avez besoin pour faire des jeux impressionnants dans Unity ou des sujets très basiques aux plus avancés. Tout d'abord, vous serez familiarisé avec le langage de programmation C-Sharp. Ces principes fondamentaux vous aideront à comprendre l'unité dans toute sa beauté. Et donc même les débutants absolus à la programmation sont les bienvenus dans cette classe. Après avoir appris les principes fondamentaux de C Sharp, nous passons aux concepts de base de l'unité, tels que l'éditeur, fonctionnement des scripts, les textures et les sprites, etc. Dès que les bases sont terminées, vous allez créer votre propre première démarche, Elle est cliqueuse. Ce projet est inspiré par lui, Cookie Clicker. Et nous utiliserons tous les principes fondamentaux du C-Sharp ainsi que tous les concepts de base que vous aurez appris jusqu'ici. Ensuite, nous continuerons avec des sujets plus intermédiaires tels qu' une section approfondie sur l'USU I-System, ainsi que la refonte, enregistrement et la conservation des données persistantes, ainsi que l'utilisation de jeux de tuiles, entre autres choses. Tout cela et plus encore vous attend dans cette classe complète sur le développement de jeux Unity. Alors qu'attendez-vous pour vous inscrire à ce cours maintenant ? Et soyons la première étape du formidable voyage pour créer des jeux Unity incroyables. Le pouvoir est entre vos mains. Je te verrai dans la première leçon. 2. Installation de l'unité: Très bien, bienvenue à cette conférence où nous passons par la façon de télécharger Unity et de l'installer. Donc, cette URL est disponible en tant que ressource afin qu'ils puissent très facilement y accéder. Il est simplement stocké sur unity.com slash téléchargement. Et puis assurez-vous que vous l'êtes, que vous répondez à tous ces critères ici. Et vous pourriez simplement dire : Oui, je réponds à tous ces critères. C' est fondamentalement si vous êtes simplement une seule personne et que vous ne faites pas cela dans une sorte de société ou quelque chose comme ça, alors vous pouvez utiliser la licence personnelle Unity ici et oui, et simplement télécharger Unity Hub. Donc, il va y avoir un programme qui va être utile pour toutes sortes de choses. Je vais rapidement mettre ceci à l'intérieur de ce dossier ici. Donc, c'est simplement un EXE, vous pouvez simplement le démarrer. Et ensuite, vous devrez peut-être le faire. Il dispose d'un accès administrateur et vous serez accueilli par les conditions d'utilisation. Vous allez simplement les accepter et ensuite dire où vous voulez l'installer. Maintenant, je l'ai personnellement déjà installé. Vous allez simplement cliquer sur Installer, puis tout fonctionnera à partir de là. Une fois que vous l'avez installé, il vous invitera probablement à vous connecter si vous avez déjà un compte Unity, c'est génial. Si vous ne le faites pas, alors vous pouvez simplement en créer un sur le site Web Unity et ensuite vous connecter avec cela après vous être connecté, quelque chose comme ceci devrait apparaître. Maintenant, vos projets seront probablement vides, mais c'est tout à fait normal. Mais la première chose que nous devons faire est d'installer une instance spécifique d'unité. Donc, dans notre cas, comme vous pouvez le voir, j'ai 20 1946, j'ai 2020 à 0. Il s'agit d'une version bêta. Et puis j'ai la version 2023 0, qui est fondamentalement celle avec laquelle nous allons travailler principalement. Maintenant, si vous allez à ce bouton Ajouter , une nouvelle fenêtre s'ouvrira et vous pouvez voir que vous pouvez obtenir des versions recommandées. Donc, il ya en fait quatre nouvelles versions étrangères ont été publiées depuis le point 2020 trois pointeurs 0. Et puis il y a aussi d'autres versions officielles ainsi que des pré-versions. Maintenant, dans notre cas, nous voulions réellement la version 2020 0.3, quel que soit le nombre après cela signifie généralement qu' il y a juste quelques corrections de bugs et quelques modifications mineures. Alors, cliquez sur l'année prochaine. Et puis si vous ne l'avez pas installé par vous-même. Donc, si vous n'avez pas Visual Studio, je vous recommande fortement de l'ajouter à votre installation ainsi qu'à un module. Parce que j'utiliserai Visual Studio et il pourrait y avoir des congruences. Si vous utilisez un autre environnement de développement, fondamentalement la documentation que vous devez absolument avoir. Et puis vous pourriez aussi en théorie avoir des packs linguistiques différents ici comme vous pouvez le voir, et toutes les plateformes ne nous intéressent pas vraiment. Peut-être que si vous êtes fondamentalement sur un Mac ou Linux, alors je dirais bien sûr que vous devriez certainement prendre cela aussi, afin que vous puissiez réellement construire votre jeu sur votre propre machine. Sinon, ce ne serait pas si intelligent. Heure, cependant, je crois que l'unité, le hub détecte réellement sur quel type de système vous êtes et devrait installer cela automatiquement. Mais oui, donc je pense vraiment que vous devriez certainement avoir ce Visual Studio ici. Je l'ai déjà installé, donc je n'en ai pas besoin, mais j'ai fortement recommandé. Ensuite, vous cliquez simplement sur Terminé. Maintenant, comme vous pouvez le voir, cela est en train de télécharger de temps en temps aussi l'installation. Cela va prendre un certain temps en fonction de votre connexion Internet ainsi que de votre vitesse de votre ordinateur. Une fois l'installation terminée, nous pouvons revenir aux projets. Et maintenant, nous allons vraiment créer notre propre premier grand projet ici. Alors tu vas aller à New. Et généralement, je vais à ce menu déroulant afin que vous puissiez choisir la version d'Unity que vous souhaitez sélectionner. Sélectionnez la dernière version ici. Et puis il va créer une nouvelle fenêtre ici qui indique Créer une nouvelle version avec cette version particulière. Parce qu'il s'agit d'un cours 2D, nous voulions essentiellement seulement D, sélectionné comme modèle ici. On peut choisir un endroit, je suis d'accord avec cet endroit. Et puis le nom du projet. Dans ce cas, nous allons simplement utiliser l'exemple d'installation dans notre cas pour vous, car après cela, nous allons immédiatement commencer dans l'introduction C sharp. Peut-être que ce serait un meilleur nom pour toi. Alors peut-être nommé le projet C introduction forte pour vous. Je vais m'en tenir à l'exemple d'installation, puis cliquez sur Créer, puis Unity Hub se fermera et une unité s'ouvrira. Vous devrez peut-être dire oui au véritable Windows Defender souhaitant utiliser le pare-feu. Nous allons juste dire oui, bien sûr, parce que c'est ok. Et puis dans un peu de temps après avoir importé des trucs et même téléchargé quelques autres choses, alors il s'ouvrira pour nous en fonction de la qualité de votre PC. Cela pourrait prendre un peu plus longtemps ou plus court, et nous l'avons là. Maintenant, la première chose que je vais faire est que je vais changer la mise en page à ma mise en page personnelle, que j'utilise. J' ai enregistré ceci sous la mise en page KJ. Et si je sélectionne ceci, alors c'est la mise en page que nous allons utiliser pendant ce cours. Maintenant, je vous ai donné cela comme une mise en page ici, page générale du coton, W LTE. C' est aussi le fichier disponible en tant que ressource. Et puis vous pouvez essentiellement l'importer en allant à kJ, puis en voyant Load layout à partir du fichier et en sélectionnant ce fichier. Et alors vous devriez avoir exactement la même mise en page aussi. Si vous le souhaitez. Vous n'avez pas besoin de l'avoir. C' est juste que c'est la mise en page que je suis à laquelle je me suis habitué. Oui. Une autre chose que vous devrez vérifier avant de pouvoir continuer est que vous devriez aller dans la Modifier, puis aller dans Préférences. Et cela ouvrira une fenêtre de préférences ici. Ensuite, à l'intérieur des outils externes, assurez-vous que vous avez sélectionné l'éditeur de script correct. Donc, pour nous, ceci pour vous, ce sera probablement Visual Studio Community 2019. I Visual Studio 2019 lui-même. Donc juste pour que vous sachiez que vous devez sélectionner ceci. Sinon, vous utiliserez l'éditeur de script par défaut, qui est quoi ? Ça aura l'air un peu différent de ce que vous verrez avec moi. Mais ce serait tout pour celui-là. C' est l'installation effectuée. Ensuite, lorsque vous continuez avec ce cours, vous avez essentiellement sur certains de ces articles. Vous avez deux options. Donc, vous pouvez soit obtenir le paquet complet pour quelque chose ou un paquet vide. Donc, cela signifie fondamentalement que vous pouvez tout faire ou vous commencez avec fondamentalement rien et le construire pendant que je le fais. Donc, pour importer cela, vous pouvez aller à Assets, import package, package personnalisé. Ensuite, il va ouvrir un dossier particulier ici. Et nous allons simplement aller dans notre dossier où j'ai ça. Et comme vous pouvez le voir, il y a certains de ces paquets, tous sont disponibles en tant que ressource. Donc, par exemple, ce que nous voulons, c'est le C-Sharp complet. Alors ouvrons ça. Et puis comme vous pouvez le voir, tout ici est déjà fait pour vous de sorte que vous avez simplement besoin de dire Importer. Et puis il va importer toutes ces classes et toutes ces scènes. Et puis vous pouvez essentiellement commencer la conférence 10 types de données. C'est là. Et puis si je devais commencer ça, alors ce que vous pouvez voir c'est qu'il fonctionne immédiatement avec, eh bien, il va se recharger et puis comme vous pouvez le voir, ça marche et tout va bien. Donc, ce serait fondamentalement c'est, c'est très important. Donc, vous devez choisir si vous voulez ou non la version complète ou si vous voulez la version vide de ceci. Et oui, ce serait essentiellement pour l'installation. Ce serait tout ce dont vous avez vraiment besoin pour commencer le voyage pour la programmation dans Unity. Oui, j'espère que vous avez trouvé cela utile et que l'installation a été réussie. Si des questions restent, bien sûr, hésitez pas à poser et je serai sûr de répondre. Et oui. 3. (C) Créer notre premier projet de l'unité: Bon, bienvenue à cette conférence. Et c'est juste un ajout rapide ici. Donc tu sais ce que tu as à faire. Parce que la prochaine conférence, nous allons immédiatement commencer dans cette introduction C-Sharp. Et fondamentalement, je voulais juste vous montrer une fois de plus en créant un nouveau projet, puis important essentiellement le paquet réel que j'ai fourni ici. C' était la conférence avant. C' était le paquet complet et vide. Ce sont Unity Package Files. Et oui, fondamentalement quand vous avez Unity Hub ouvert, vous cliquez simplement sur cette petite flèche puis choisissez la version la plus récente. Et quand vous cliquez dessus, une nouvelle fenêtre s'ouvrira ici. Créez un nouveau projet avec Unity 2020 trois, puis quelle que soit la version actuelle, ME assurez-vous de sélectionner le modèle 2D ici. Et puis je suggère quelque chose comme C introduction forte comme un nom de projet ou quelque chose comme ça. Bien sûr, vous devrez également spécifier votre emplacement. Où voulez-vous que cela soit créé ? Disons juste que je suis content de ça. Et comme je l'ai dit, C-Sharp introduction qui a le plus de sens. Et puis il crée le nouveau projet. Donc, vous devez réellement créer un nouveau projet. Dans l'ensemble, je dirais que probablement pour chaque section. Donc C-Sharp vient alors les concepts de base. Et puis nous arrivons à construire notre premier jeu, les joues clicker, unité, DUI et ainsi de suite. Donc, pour chacune de ces sections, je vous conseille de faire un nouveau projet pour cela, alors vous serez toujours en mesure d'importer quel que soit le contenu réel de celui-ci. Pour l'introduction en C pointu, vous avez la possibilité de choisir entre les deux suivants. Donc si je les amène juste ici, alors il y a le C-Sharp. Comme vous pouvez le voir, le paquet unitaire complet et le paquet unitaire vide. Ils sont tous deux livrés avec un prédéfini, sorte que les dossiers et les scènes sont déjà disposés et faits. Les Vide sont simplement des scripts vides. Et les complets sont les scripts complets qui sont déjà que nous faisons fondamentalement dans l'introduction C forte. Donc, quoi que vous vous sentez, c'est mieux pour vous d'apprendre C-Sharp. Vous pouvez soit tout faire déjà, soit avoir ce vide, de même que toutes les autres sections. Ils le sont. Vous pouvez soit obtenir les paquets complets qu'ils sont, soit créer l'ensemble du projet au fur et à mesure que nous allons avec les conférences. Donc, voyons juste, une fois de plus, généralement la mise en page ici devrait être différente. Si vous regardez en arrière dans l'isolation de l'unité, ils sont, est numéro un une ressource ou numéro 2, Je vous dis que nous allons changer la disposition pour cela. Et c'est aussi la mise en page que nous allons utiliser pendant tout le cours ici. Et vous pouvez aller à Assets, importer des packages ou importer un package, un package personnalisé. Et puis il vous laissera essentiellement ouvrir cette boîte de dialogue de fichier. Et puis vous pouvez choisir soit le paquet complet ou le paquet vide. Comme je l'ai dit, le paquet MD contiendra tout aussi bien. Cependant, les scripts vont être vides sauf peut-être pour les deux premiers parce que c'est, c' est le truc le plus basique que je veux expliquer quelques choses qu'ils sont. Et dans le complet, tout sera à l'intérieur de celui-ci. Ainsi, l'importation elle-même sera la même pour le complet et le vide. Cependant, dans le complet sont remplis, que nous pouvons essentiellement vérifier juste pour des raisons d'argument ici. Alors passons aux scripts, par exemple, et nous allons juste cliquer sur n'importe quoi ici. Et puis comme vous pouvez le voir, cela est déjà rempli, parfois avec quelques commentaires ainsi que pour que vous puissiez également vérifier cela. Mais oui, à partir de là, nous allons commencer immédiatement avec la première conférence, les types de données. J' espère que vous allez vous amuser avec le cours et que vous apprendrez quelque chose de nouveau. Et je te verrai à la première conférence. 4. (C) Introduction à C&d'en C Datatypes de données en C : Bienvenue à l'introduction de C-Sharp pour le cours d'unité. Et dans cette première conférence, nous allons jeter un oeil à un type de données. Tout d'abord, assurez-vous que les types de données Lecture 1 sont ouverts ici. Et puis il suffit d'aller dans les scripts et de double-cliquer sur les types de données, puis le script de type de données s'ouvrira. Maintenant, il y a quelques choses que je veux dire d'abord, la première chose est que nous allons ignorer la plupart de ce qui se passe ici. On va juste ignorer ça pour l'instant. On y arrivera plus tard. Et je vais vous expliquer ça en détail. Mais pour l'instant, nous devons commencer par un peu d'autres fondations. Donc, disons simplement que nous avons besoin de tout cela pour que le programme fonctionne. Disons comme ça et on ira bien. Et puis tout le reste là-haut, on va juste ignorer. Et nous allons regarder dans ce début ici, donc nous voyons le début. Et puis nous avons ce support bouclé et tout ce qui est écrit à l'intérieur d'ici. C' est ce que nous allons regarder. Donc, dans le code, en C Sharp par exemple. Et aussi, je pense que comme fondamentalement n'importe quel autre langage de programmation, nous allons toujours de haut en bas. Donc, chacune de ces lignes, heureusement, il y a aussi numéroté ici. Chacune de ces lignes est exécutée en série. Donc, fondamentalement, d'abord, la ligne 10 est exécutée, puis la ligne 11, puis la ligne 12 et ainsi de suite et ainsi de suite. Il y a quelques choses où vous pouvez, par exemple, regrouper quelques lignes puis les faire exécuter. Mais en ce moment, nous allons penser comme nous allons passer de haut en bas. Et tout s'est passé dans les céréales, non ? Et maintenant les types de données. Alors quoi ? La première question est, quels sont les types de données ? types de données sont essentiellement un moyen de stocker des informations et il existe différents types d'informations. Donc, dans C-Sharp, nous avons la vérité ou des valeurs booléennes. On a des chiffres. Ceux-ci peuvent être des entiers ou des nombres à virgule flottante. Et nous avons aussi fondamentalement du texte. Ce sont des caractères ou des caractères multiples, caractères les uns à côté des autres, qui seraient appelés chaînes. Maintenant, commençons par la vérité ou les valeurs booléennes. Quelques choses pour la syntaxe de base aussi. Donc, si nous voulons créer une nouvelle variable, alors ce que nous avons est que nous écrivons le type que nous voulons. Dans ce cas, il s'agit d'une valeur booléenne. Donc, nous écrivons bool, puis nous écrivons le nom de la variable, puis nous terminons chaque ligne avec un point-virgule. C' est ce qu'on appellerait une déclaration. Nous allons regarder cela à nouveau dans la prochaine conférence, un peu plus, la syntaxe de tout cela. Mais en ce moment, c'est l'idée. Donc, nous avons maintenant créé une variable, comme vous pouvez le voir, la variable locale de type bool, qui est appelée, est mise à la terre. Et puis nous pouvons attribuer cette variable avec cet opérateur égal une valeur. Dans ce cas, nous disons égal à vrai. Donc, dans ce cas, après la ligne 12 est mise à la terre est égale à true. Donc, c'est la mission. Et vous pouvez, par exemple, imaginer que c'est pourquoi un rhume est mis à la terre. La variable est mise à la terre pourrait être quelque chose qui garde une trace de quand vous avez comme un jeu de plateforme 2D où Mario, par exemple, court d'avant en arrière et dès que Mario sauts est mis à la terre serait mis à faux parce que maintenant il est dans l'air. Et puis dès qu'il touche le sol à nouveau est à la terre serait vrai. Donc c'est quelque chose où vous pouvez, par exemple, faire en sorte que vous ne pouvez pas sauter infiniment haut parce que vous devez être sur le sol pour pouvoir sauter. C' est comme une sorte d'exemple réel que vous pouvez utiliser dans un jeu. Et puis nous avons la sortie spécifique Unity ici, juste pour que nous puissions voir ce que la variable implique réellement. Nous allons regarder la sortie à la fin quand j'en aurai fini avec l'explication ici. Et puis ce serait la vérité et les valeurs booléennes utiles pour décider fondamentalement si quelque chose est vrai ou faux. Parce que ce sont les valeurs possibles qui y sont soit vraies ou fausses. Et c'est tout. Ensuite, regardons l'entier. Donc, les entiers sont des nombres entiers. Dans ce cas, nous sommes, nous faisons une variable qui est appelée points de type entier et nous lui assignons immédiatement un 50. Donc, dans ce cas, la déclaration et l'affectation ensemble dans une ligne seraient appelées initialisation. Et cela définit immédiatement la variable de points 250. Et puis nous avons aussi un long. Un long a simplement une limite plus élevée. Donc on peut stocker plus de numéros là-dedans. Et j'ai vraiment aimé avoir ceci ici juste pour référence. Donc, la valeur maximale d'un entier normal est de 2 milliards, puis la valeur maximale d'un long est de cinq quintillions, je crois. Mais en fin de compte, il est si grand qu'il est rarement utilisé. Et j'ai aussi, en particulier dans les jeux, généralement le maximum entier est suffisant. Et oui, les poumons sont là. Si jamais vous en avez besoin, alors vous pouvez le faire et l'avoir essentiellement neuf quintillions. Et vous devriez aller bien à ce moment-là, je crois. C' est vrai ? Et puis les nombres à virgule flottante sont fondamentalement des nombres avec un point décimal. Cependant, ils sont enregistrés avec une notation scientifique. Donc la notation scientifique est des choses comme dix. Faisons comme 3,5 fois dix à quatre, par exemple, notation scientifique et c'est ainsi que les nombres à virgule flottante sont enregistrés. Et il y a deux types de nombres à virgule flottante qui sont intéressants ici. L' un est un flotteur et l'autre est un double. Et la différence entre ces deux est fondamentalement la précision des nombres qu'il peut sauver. Ainsi, un nombre à virgule flottante peut économiser jusqu'à huit points de précision. On peut avoir huit numéros ici. Donc, soit avant ou après la virgule décimale, et ce serait toujours précis. Et le double peut faire jusqu'à 16 numéros. Donc, jusqu'à 16 nombres avant et après la virgule décimale. Donc, mais pour bien faire, donc si on a quelque chose comme Ro, quelque chose de fou comme ça. Ensuite, vous compteriez 123, et ensuite vous compteriez ici 456 et ainsi de suite. Et si c'est 16, alors ou est-ce, si c'est plus grand que 16, alors ce n'est pas le cas. Il serait arrondi ou descendu. Il serait arrondi. Donc c'est important à savoir. Si vous avez besoin de précision. Il est préférable d'utiliser des entiers si vous n'avez pas besoin de points décimaux. Oui, ce sont des nombres à virgule flottante. Nous allons voir comment cela fonctionne aussi dans les conférences futures. Mais ceux-ci sont aussi peut être très important. Et puis allons aux personnages et au printemps. Donc, les caractères, il y a un caractère, type de variable, un type de données et une chaîne. Un caractère est simplement une seule lettre et vous l'écrivez avec ces guillemets simples ici. Et une chaîne est un est plusieurs caractères les uns à côté de l'autre. Et vous écrivez ça avec ces guillemets doubles. Oui. Et l'idée est simplement que, comme je l'ai dit, la lettre est une lettre unique. Maintenant, cela peut être un a, il pourrait en théorie être un nombre, mais alors ce n'est pas le nombre lui-même aussi, mais c'est la représentation textuelle de deux. Et puis aussi, par exemple, un caractère spécial comme une barre d'espace ou un trait de soulignement ou quelque chose comme ça, serait également des caractères dans ce cas. Et puis une chaîne est tout simplement comme je l'ai dit, un multiple caractères l'un à côté de l'autre. Et pourtant, une chose que je voulais aussi mentionner, C-Sharp a quelque chose qu'on appelle des types implicites. Donc, ce que nous avons vu auparavant, c'est que nous avons toujours désigné le type, le type de données qu'il était. Donc char une chaîne, un double, et ainsi de suite. Cependant, nous pouvons aussi écrire var, donc VAR, puis le nom de la variable, puis le mettre comme juste l'assigner à quelque chose et puis il va juste savoir, ok, c'est un entier maintenant. Et comme vous pouvez le voir, si je survole, des points totaux entiers. Et ici, nous avons un joueur de cordes à nommer. Donc, cela fonctionne aussi bien. Personnellement, je n'utilise pas ça très souvent ou n'importe où parce que je ne tire rien de ça. Certaines personnes l'utilisent lorsque vous avez peut-être de longs noms de type de données parce qu'à l'avenir, nous pouvons , par exemple, créer nos propres types de données. Ça aide parfois. Habituellement, j'ai trouvé qu'il est préférable d'être vraiment spécifique, ou dans notre cas, explicite, non ? Donc, c'est un type implicite et alors ce serait typecast explicite. Nous le tapons explicitement. Hey, c'est une chaîne, c'est un caractère qui est un flotteur. Donc oui, mais vous pouvez bien sûr utiliser ça. Et vous pourriez le voir dans le code que d'autres personnes ont écrit. C' est donc toujours important de savoir des choses, même si vous n'avez pas tendance à les utiliser ou si vous ne voulez pas les utiliser. Mais cela a tout à voir avec le style et rien à voir avec si oui ou non c'est meilleur ou pire en termes de performance ou quelque chose comme ça. Le mot-clé var ne change rien. Que j'écris ou non var ou une chaîne là-dedans. Après que tout est compilé sur tous, cela, n'a pas d'importance. Ça ne change rien. Ce n'est que par souci de lisibilité. Et c'est aussi l'une des choses qui sont importantes. Le code doit être lisible pour les personnes. Et il sera très facilement en fait, vous pouvez écrire du code qui fonctionne. Mais il doit également être lisible pour quelqu'un qui n'a jamais vu le code auparavant. Et c'est vraiment dur, non ? Voyons ce qui se passe quand on fait ça. Donc, ce que nous attendrions à cela, la première chose à être éteinte est fondée, vraie. Et puis les points devraient être 50 par neuf, quadrillion ou les poursuivre. Et puis nous avons un 3.5 endommagé, gros dégâts, un 100, puis la lettre un NICU en tant que joueur 1, James joueur deux, et puis le total des points serait 100. C' est une sorte de ce que nous nous attendons à ce qu'il soit éteint, non ? Une fois de plus, assurez-vous que vous avez une conférence ouverte. Et puis on peut juste appuyer sur le bouton de lecture ici. Et comme on peut le voir, on y va. Donc, si nous regardons ici, nous pouvons effectivement faire défiler un peu et ensuite est basée est vrai. Ensuite, nous avons des points 59, quintillion, 3,5 dégâts. Nous avons aussi de gros dégâts, un 100, puis le personnage, un personnage, un joueur un est le James du joueur NICU 2, puis le point générer un 100. Une chose à noter est ici que le 100, en fait le point décimal est coupé. Dans ce cas, car il ne contient pas réellement informations utiles car il était 0 de toute façon. Donc, ce n'était pas vraiment important si nous avons 0,01, par exemple. Et puis on le laisse reposer un peu et puis on joue à nouveau. Ensuite, nous allons voir qu'il fait vraiment ça. Aussi important de noter, ce sont des virgules dans mon cas, c'est juste à cause de la localisation, parce que ma machine exécute la localisation allemande de sorte que des virgules ou aucun point décimal soient convertis en deux virgules et virgules pour les 1000 séparateurs vont être convertis en points ou, vous savez. Oui. Donc c'est juste un important à savoir. Ne sois pas confus à propos de celui-là. Tout va bien. Oui. Et c'était essentiellement tout pour l'introduction aux types de données. Et comme je l'ai dit, juste un aperçu approximatif. Dans les prochaines conférences, nous allons vraiment utiliser ces différents types, ce qu'ils peuvent faire. Et on va les manipuler. On va, par exemple, les chiffres qu'on va maths avec eux, non ? Donc, on va calculer des choses. Donc c'est tout à venir. Et j'espère que vous l'avez trouvé utile. S' il y a des questions. Bien sûr, n'hésitez pas à demander et je serai sûr de répondre. Et oui. 5. (C) Syntaxe C C C Syntaxe expliquée: Bon, bienvenue à l'introduction C-Sharp pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil à la syntaxe C Sharp. Alors, ouvrons juste le script ici, le script de syntaxe. Et passons à travers et voyons ce qu'on peut voir. Donc, tout d'abord, si nous avons deux barres obliques ici, c'est un commentaire, comme il est dit. Et puis nous pouvons aussi avoir des commentaires multi-lignes. Si nous faisons une barre oblique, puis une étoile, puis faisons essentiellement une autre étoile et une barre oblique inverse ou une barre oblique. Et puis chaque fois que nous touchons essentiellement Entrée, nous créons une nouvelle ligne, nouveau poids de ligne, ou nous pouvons commenter. Donc, ce serait des commentaires multi-lignes. Il peut parfois être important d'expliquer des morceaux de code. Ou peut-être que nous avons quelque chose à faire et ensuite nous pouvons juste écrire quelque chose comme faire et ensuite ajouter plus de choses. C' est en fait un peu, parfois ça peut être important. Pour les Communes. Nous n'allons pas entrer dans le genre d' argument idéologique, que les communes soient bonnes ou mauvaises. Je suis juste là pour vous dire qu'il y a des commentaires, au fond, non ? Nous avons déjà vu la déclaration où nous mettons simplement le type de variables, le type de données dans le nom de la variable. Et puis l'affectation consiste simplement à attribuer une valeur à cette variable. Ici, nous mettons effectivement sortie une chaîne, entrez la variable I. On l'a déjà vu dans la dernière conférence. Maintenant, c'est simplement un moyen que nous pouvons combiner fondamentalement une variable dans ce cas, ainsi qu'une chaîne, puis imprimer les deux. Journal des points de débogage. instant, on n'a pas besoin d'entrer dans les détails. Qu'est-ce que ça veut dire ? Eh bien, cela signifie simplement que nous sortons quelque chose sur la console à l'intérieur d'Unity. Mais très important, c'est spécifique à l'unité. Et oui, donc si vous n'utilisez que C-Sharp, cela ne marcherait pas. Vous auriez besoin d'utiliser autre chose. C' est pourquoi il s'agit d'une introduction pointue à l'unité. Si nous voulons accéder aux variables et aux méthodes d'objets, alors nous pouvons le faire. Maintenant, variables, nous savons que les variables écrivent ceci comme ceci est une variable, entier. J' écris que c'est une variable que nous avions le booléen est à la base, c'était une variable droite ? Maintenant, que sont les méthodes et les objets ? On va y aller aussi un peu plus tard dans une autre conférence. Mais en ce moment, nous pouvons juste penser à cela comme un objet fondamentalement étant quelque chose où nous pouvons stocker des variables et des méthodes. Et une méthode est simplement plusieurs lignes de code condensées en une seule expression. Pensez-y comme ça. Donc, par exemple, dans ce cas, quand nous avons, nous voulons la longueur de la chaîne S, non ? Nous pouvons faire la longueur de points S. Dans ce cas, la longueur est une variable parce que c'est juste, c'est juste écrit sans les parenthèses à l'arrière. Et comme vous pouvez le voir, S point normalisé dans ce cas a des parenthèses ici. Et les parenthèses indiquent qu'il s'agit d'un appel de méthode. C' est donc la différence là-bas et nous accédons aux choses à l'intérieur d'un objet avec l'opérateur point. Donc si j'écris du S et puis un point, alors comme vous pouvez le voir, il y a tout un tas de choses que je peux accéder à l'urine et faire. Et nous allons l'examiner plus en détail dans les prochaines conférences. Au début. C' est un peu dur parce que si vous n'avez pas de langage de programmation, et, vous savez, nous devons commencer quelque part. Et au début, je me réfère de plus en plus aux conférences futures, ce qui, au fur et à mesure, n'arrivera pas autant. C' est juste, c'est juste qu'en ce moment nous essayons de remonter les bases et de continuer, non ? est donc l'idée que nous pouvons accéder à certaines choses à l'intérieur de nos variables. Par exemple, assez intéressant, donc nous avons l'IA ici, que nous pouvons bien sûr faire la même chose avec les yeux. Donc, si nous le faisons, je point et comme vous pouvez le voir, il y a aussi des choses que nous pouvons faire, dans ce cas, moins que nous pourrions faire avec la chaîne. Parce que l'entier n'a tout simplement pas, n'a pas autant de fonctionnalités à lui. C' est comme ça que tu peux penser à ça, non ? Et puis il y a aussi une autre chose. Les crochets bouclés sont fondamentalement peuvent définir des blocs de code. Ceux-ci sont également appelés étendues. Ce serait donc une portée différente. Et l'idée étant qu'à l'intérieur de cela, donc nous avons déclaré que je suis ici dans la portée de la méthode de départ dans ce cas. Et c'est une nouvelle portée. Et maintenant parce que ce droit de portée est à l'intérieur de la portée de ce qui est venu avant lui, où j'ai été déclaré dans. On peut y accéder. Maintenant, si on déclare X ici, on peut l'éteindre très bien. Mais si on regarde ça, non ? Donc, si nous pouvons le faire, et si nous le faisons, et comme vous pouvez le voir, x est en fait marqué ici comme une flèche. Et il dit que le nom x n'existe pas dans le contexte actuel parce que nous avons déclaré à l'intérieur de cette portée. Et après que nous sommes hors de la portée, donc à la fin de ce support bouclé, il n'existe plus. Et c'est pourquoi parfois cela peut être utile. Vous pouvez simplement le définir en gros. Définissez une nouvelle portée en plaçant simplement les crochets bouclés. Et ceux-ci sont également utilisés si nous définissons des méthodes plus tard dans la ligne. Et puis ça va être encore plus clair. Mais nous pouvons aussi simplement mettre dans des portées comme ça. Et puis, par exemple, nous pouvons tout simplement les effondrer aussi. Peut être utile parfois pour la gestion du code, juste pour le rendre un peu plus rangé ou quelque chose comme ça. Mais oui, ouais, c'est fondamentalement comme un aperçu approximatif de la syntaxe ici. Après avoir regardé à nouveau la déclaration et l'affectation, c'est un peu important que la sortie ici. est très important que ce soit spécifique à l'unité. Et oui, nous pouvons en fait aussi regarder la sortie juste pour le diable. Une fois de plus, assurez-vous que vous êtes à la syntaxe. Jouons. Et il va sortir la seule longueur de la chaîne est 11. Et puis on a un 0. C' était le x à l'intérieur de la portée différente, non ? Oui, et c'était tout pour la syntaxe. Prochaine conférence, on va faire quelque chose. Nous allons regarder l'entier et les opérateurs arithmétiques. Nous allons donc commencer à utiliser certaines des variables et certains des types de données que nous avons appris. Et oui, c'était ça. Et s'il y a des questions, bien sûr, hésitez pas à poser et je serai sûr de répondre. Et oui. 6. (C) Integers et opérateurs arithmétiques: Bon, bienvenue à l'introduction pointue C pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil aux entiers et aux opérateurs arithmétiques. Alors, ouvrons juste le script entier ici. Et nous allons zoomer un peu. Et très important que vous fassiez tout ce que vous allez faire à l'intérieur de ce début ici. Donc, au lieu de cette portée, et oui, commençons juste. Donc, définissons deux entiers. On va appeler le premier 1 et peut-être le second 1 seconde. Ça marcherait. Donc, la première en ce moment, donc la variable avec le nom d'abord a maintenant 100 écrits dedans, et la seconde a 200 écrits dedans. Maintenant, ce qu'on peut faire, c'est faire des maths. Maintenant. Tout d'abord, ne vous inquiétez pas pour ça. Nous allons seulement faire, disons les choses mathématiques simples en ce moment. Et oui, donc la première chose qu'on va faire, c'est l'addition. Donc on va juste les additionner ensemble. Donc, disons simplement que la somme entière est égale à la première plus seconde. Et ce serait bien sûr 300. Vous pouvez également simplement déboguer le point de déboguer. Ajout. Notez que ce n'est certainement pas ça. Ça s'appelle Diego et on l'a. Donc si on jette un coup d'oeil à ça, alors réfléchissons à ça. Nous avons déclaré une variable appelée somme, puis nous l'avons immédiatement assignée en premier plus seconde. Donc, ce plus, comme vous pouvez le voir, c'est le, c'est un opérateur avec deux entiers. Si je peux vraiment planer dessus, voilà. Donc, à gauche et à droite, et ça ajoute juste ces deux ensemble. C' est tout ce qu'il fait. Il ajoute 100, dans ce cas, d'abord et ensuite, 200. Et cela va se traduire par un 300. Et juste pour que vous sachiez, pour vérifier, voyons juste nous allons juste exécuter ça comme vous pouvez le voir 300. Assurez-vous également que vous êtes sur la conférence trois entiers. Très important. Mais oui, ça marche. Et j'aurais été surpris si tout d'un coup ça n'avait pas marché. J' étais aussi très intéressant. Donc si nous pouvons, bien sûr, faire ça avec, par exemple, premier plus, vous savez, nous pouvons faire plus Arno comme 500. Et puis plus, plus quelques secondes, quelque chose comme ça. Tu sais, ça marcherait aussi. Nous pouvons fondamentalement mettre dans les variables et différents entiers aussi bien. Donc, comme 500 ans, nous pouvons aussi, par exemple, dire, Eh bien nous allons mettre dans un autre 200 là, quelque chose comme ça, qui fonctionne aussi. Et puis si nous pouvons simplement copier ce verrou de débogage, c'est parfois que je le fais très rapidement. C' est pourquoi je l'ai mentionné en ce moment. Donc, ce que je fais, c'est que je marque ce droit. Donc, je m'assure que cela est sélectionné. Ensuite, je vais appuyer sur Contrôle C. Et puis je mets, je vais ici à la fin de la ligne et j'appuie sur le contrôle V. Et puis c'est juste, puis il va simplement le coller dans la ligne suivante. Donc vous allez probablement me voir faire ça dans les prochaines conférences comme un peu. C' est juste, vous savez, quand vous êtes, quand vous disons de programmer pendant un moment, alors une sorte de choses sont parfois automatisées. Donc je voulais juste le mentionner. Je vais probablement le mentionner tout au long de certaines conférences à venir. Je voulais juste dire que c'est comme ça que tu peux faire ça. Tu sais, marquer quelque chose, s' assurer qu'il est sélectionné Contrôle C, Contrôle V, et ensuite ça va être fait. Et j'économise avec Control S. Ou vous pouvez aussi aller ici pour les plus sûrs. Et puis il va aussi sauver à la, aux toilettes. Qu' est-ce que cette disquette écrit ? L'icône d'enregistrement. Et voyons ce qui se passe là-bas. Ça devrait être 1005, si j'ai raison, je crois, oui. Oui. D'accord. C' est bien. Mes compétences en maths sont toujours bien. Même s'il peut y avoir un peu de liste, mais oui, ça marche aussi. Et c'est un peu cool ce que nous pouvons faire en plus, mais je veux dire que c'est juste l'ajout. Regardons la soustraction. Ça va être la prochaine grande chose. Alors qu'est-ce que c'est ? Donc, disons juste entier Sub est une première seconde moins. Qu' est-ce que ça pourrait être ? Eh bien, ce serait négatif 100. C' est intéressant, est-ce que 100 moins 200 est négatif 100 parce que les entiers peuvent également être des nombres négatifs. n'y a rien qui dit que ça ne marche pas. Alors faisons sous et nous allons juste l'imprimer aussi. Et puis nous allons voir si cela fonctionne réellement. Si c'est négatif 100 et en fait c'est négatif 100. C' est donc une chose importante à noter que les entiers dans ce cas peuvent également être négatifs. Il y a aussi des entiers qui ne peuvent pas être négatifs. Cependant, j'ai délibérément sauté ces voitures. Ils ne sont généralement pas requis dans environ 98 % des positions politiques. Donc on va les sauter pour l'instant. Si vous en avez besoin, vous pouvez toujours poser une question et je serai sûr de vous donner plus d'informations. Maintenant, entrons dans quelque chose qui est aussi intéressant, qui est la multiplication. Donc, disons en taupe est égal à 4 fois d'abord, ce serait 400. Et ça marche juste parce que pourquoi pas ? Imprimantons ça. Et nous allons imprimer la taupe ici. Ça devrait juste marcher. Donc quatre fois 100 devrait être 400. Ça semble légitime. Imprimantons ceci et voyons si cela fonctionne aussi. Et bien sûr, ça va très bien. Donc, comme vous pouvez le voir, l'opérateur de multiplication est cette étoile ici. C' est, ouais. Et le plus et le moins devraient être explicites. Je crois que c'est aussi une sorte d'étoile standard. Et puis si nous allons un de plus à la division ou à la division, alors nous pouvons dire que la div est égale à la seconde, divisée en premier. Ce serait deux parce qu'on divise 200 par 100. Et nous pouvons également imprimer celui-ci ou débogué lors de la connexion avec le div, à droite. Et oui, c'est donc une barre oblique dans ce cas, deux barres obliques étant un commentaire, une barre oblique étant la division. Et comme toujours avec des règles mathématiques normales, gros, plus ou moins l'ordre des opérations n'a pas d'importance, non ? Donc le deuxième plus premier est le même que la première et la deuxième fois. Une certaine multiplication n'a pas d'importance. Division de soustraction, c'est vraiment important de quelle façon, Ce qui vient en premier et ce qui vient en deuxième. Mais je pense que c'était comme les maths du lycée. Ça devrait être compris. droite. Et puis on a un 2. Voilà, tu y vas. Donc, cela fonctionne aussi bien. Et il y a une autre chose que vous allez probablement ressembler, qu'est-ce qu'une autre si ? Ce sont les quatre que je connais, oui, mais il y en a aussi un qui s'appelle le module ou le reste. Maintenant, vous avez probablement, si vous êtes peut-être comme Arno, comme la neuvième, peut-être la dixième, vous avez peut-être vu ça avant. C' est l'idée est que si vous divisez quelque chose par autre, dans ce cas, c'était parfaitement uniforme. Donc ça a bien fonctionné. Mais il se peut aussi que si vous divisez 13 par 213 divisé par deux, ce n'est pas, ça ne marchera pas, non ? Donc ça va être, euh, ça ne va pas s'adapter parfaitement. Et donc nous aurons un reste d'un dans ce cas. Donc, voyons juste un exemple de cela. Donc reste, reste égal à 24, disons, et puis l'opérateur restant, l'opérateur de module est le signe de pourcentage 2 et ce serait 0. Alors mettons-le en fait ici aussi. Donc ça va être, juste, ça va être 0 parce que 2 correspond uniformément à 24. Donc, si nous divisons 24 par deux, comme vous pouvez le voir, 0 reste ici. Cependant, si, par exemple, nous allons à cela et disons divisé par ou modulo 5, alors ce ne sera plus 0. Faisons ça. C'est quatre parce que le nombre le plus proche que nous atteignons en divisant par 5 est 20, non ? Donc quatre fois cinq, c'est 20. Et puis pour 24, il reste quatre chiffres. Donc les quatre restent ici. Je veux le faire avec un 23 juste rapidement parce que 4 fois 5 pourrait être une confusion. Il y en aura trois, donc on en arrive à 20 et ensuite cinq ne rentre pas dans trois. Donc trois, c'est le reste. C' est l'idée là-bas. C'est en fait un peu important à certains égards. Donc, le modulo 2 est idéal pour savoir si un nombre est égal ou impair ou non. Parce que si vous avez un opérateur modulo entier 2 égal à 0, alors vous savez, c'est un nombre pair. Et si c'est égal à un, alors nous savons que c'est un nombre impair. C' est donc l'un des cas d'utilisation où l'opérateur modulo ou reste est incroyablement utile dans ce cas. Et bien sûr, d'autres types d'opérateurs arithmétiques sont également utiles dans, eh bien, je veux dire beaucoup de façons. Si vous avez déjà besoin de quelque chose en mathématiques, c'est-à-dire, oui, ceux-ci sont incroyablement utiles et c'est une sorte de première étape connaître ou rassembler des connaissances sur la façon d'utiliser des entiers. Dans ce cas. En théorie, tout ici. Vous pouvez également remplacer tout ici par des flotteurs ou des doubles. Et tout fonctionnerait très bien aussi. Vous pouvez donc le faire, par exemple. Expérimentez un peu avec ça. J' essaie toujours d'encourager cela aussi parce que bien que les conférences ici sont vraiment bonnes pour obtenir une sorte d'avance ou d' avoir une façon structurée de passer par un peu de matériel. J' ai toujours encouragé et je dis qu' il est très important que vous essayez les choses par vous-même. Parce que c'est la meilleure façon de se solidifier et d'apprendre encore plus. Donc, si par exemple, vous allez regarder cela avec des flottants, remplacez simplement tous les entiers par des flottants et voyez ce qui se passe. Et puis tu peux jouer un peu avec ça. Et oui, c'est juste une petite idée pour toi. Et oui, dans l'ensemble c'est, ce serait pour les entiers et les opérateurs arithmétiques. La prochaine fois, nous allons jeter un oeil à un peu plus des méthodes mathématiques que nous avons dans C-Sharp. Donc, un peu plus, disons spécialiser des choses comme une racine carrée ou quelque chose comme ça, dont parfois nous pourrions avoir besoin pour différentes choses. C' est ce qui vient à la prochaine conférence. J' espère que cela vous a été utile. Et s'il y a des questions, comme toujours, hésitez pas à poser et je serai sûr de répondre. Et oui. 7. (C) C C# Math Math Methods: Bon, bienvenue à l'introduction de C pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil à quelques méthodes mathématiques que C-Sharp a à offrir pour nous. Donc, une fois de plus, s'assure que la conférence pour les méthodes mathématiques est ouverte et ensuite nous pouvons simplement ouvrir le script. Et j'ai déjà préparé deux entiers ici, x et y. et voyons juste quel genre de méthodes nous avons. Maintenant, première chose à noter, il y a deux types de mathématiques différents, essentiellement des bibliothèques auxquelles nous pouvons accéder. Nous pouvons accéder à la bibliothèque mathématique normale en faisant essentiellement des maths système. Et celui-ci nous offre des choses comme maxing, maximum, max et Min méthodes, la racine carrée et aussi d'autres choses. Cependant, cela est spécifique à C-Sharp. Cependant, nous allons utiliser le maths F, Fondamentalement collection comme vous pouvez le voir. Et celui-ci offre des méthodes spécifiques, essentiellement presque les mêmes choses, essentiellement presque les mêmes choses, mais spécifiques qui sont pour l'unité. Ce n'est donc accessible que si vous êtes dans Unity. Si non, alors vous devez utiliser cette méthode mathématique System.out dans, par exemple, non ? Tout d'abord, que diriez-vous de Max et Min ? J' ai déjà gâché ça. Faisons un journal de points de débogage. Et à l'intérieur, on va faire des maths F point Min. Et puis on va passer x, y, et ça devrait être 225. Donc, l'idée ici est que ce faire maths F point Min. Et comme vous pouvez le voir, nous avons une parenthèse autour de ça. Et ce qui signifie qu'il s'agit d'un appel de méthode. Maintenant, dans ce cas, et nous n'avons pas vu ça. On a deux choses là-dedans. Et c'est ce que nous appellerions des paramètres. Comme je l'ai dit, nous allons examiner comment les méthodes fonctionnent, beaucoup plus en détail dans une conférence ultérieure où nous discutons des méthodes et approfondissons leur façon de travailler, ce qu'elles sont et ce que c'est. Cependant, en ce moment, nous pouvons voir que nous avons deux locaux ici, et ils sont séparés par une virgule. Et cela évaluera si nous survolons réellement, comme vous pouvez le voir, renvoie le plus petit de deux ou plusieurs valeurs. Ainsi, nous pouvons également mettre plus de valeurs. Dans notre cas, nous n'en avons que deux. Et c'est, bien sûr, ce n'est pas juste. Donc ce serait une centaine, désolé. Donc, si nous minons cela, il va retourner la plus petite de ces deux valeurs. Dans notre cas, ça va être une centaine. Et juste pour être complètement plein ici, on va passer au maximum et ensuite ce sera 225. Parce que le max bien sûr, renvoie la plus grande de deux valeurs ou plus. Allons juste ça et voyons si ça marche. Donc, ce devrait être un 100, puis 225. Et comme vous pouvez le voir, cent deux cent vingt cinq sont en cours d'exploitation. Alors, allons voir. Donc, ce sont la méthode Min et la méthode max. Nous pouvons aussi regarder, par exemple, une racine carrée, n'est-ce pas ? La racine carrée, Copions rapidement le débogage ici. Et puis nous allons faire des maths F points carrés racines. Donc, c'est SQRT. Et puis à l'intérieur d'ici, on va mettre y. parce que y peut être comme un carré enraciné immédiatement. Ça va devenir un 15. Racine carrée de 225. Et ne regardons pas encore la sortie. Allons juste à la suivante, qui va être la valeur absolue. Donc, la valeur absolue est essentiellement utilisée si vous avez quelque chose qui est un négatif. Ainsi, par exemple, négatif 2500. Et vous ne voulez que la valeur absolue et pas le négatif. Donc, vous ne vous souciez pas de savoir si oui ou non c'est négatif ou positif, vous vous souciez seulement de la valeur réelle. Vous pouvez voir renvoie la valeur absolue de la valeur. Donc, quoi que nous mettions ici, ça va retourner la valeur absolue. Voyons juste les sorties de ces deux-là. Donc le premier devrait être 15, c'est la racine carrée de 225. Exactement. Et le dernier, bien sûr. Le dernier ne s'est pas ouvert. Oh, parce que je n'ai pas sauvé. C' est pour ça que oui. Ils y vont. Et puis si je rentre ici à nouveau et appuyez sur Play, alors il va sortir 2500. Ils vont parce que c'est la valeur absolue de 2500 négatif. Et puis il y a encore quelques choses. Par exemple, les méthodes d'étanchéité et de plancher, qui sont intéressants, par exemple, pour le plafond et le plancher de puits. L' idée étant que si vous avez des nombres flottants spécifiques, alors cela va être scellé comme vos nombres flottants flottants. Ainsi, par exemple, 22.1, 45. Alors peut-être ce que nous voulons aussi, en fait, nous voulons un arrondi, mais nous voulons l'arrondir, euh, peu importe ce qui est après la virgule décimale. Et puis ça va être un 23. Et si nous le faisons rapidement et que nous faisons le plancher ici, et ce sera un 22 parce que dans ce cas nous sommes, nous sommes arrondis vers le bas. Ainsi, comme vous pouvez le voir, renvoie le plus grand entier, plus petit ou égal à f, lu. Et scellement va être le plus petit entier supérieur ou égal à f signifie simplement que nous sommes fondamentalement, dès que c'est comme 0.0001 acier, nous allons monter et puis dans ce cas nous allons descendre. Donc, dans ce cas, on va aller au plafond. Cette affaire, on va aller à l'étage. devrait avoir un sens de cette façon. Mais oui, c'est essentiellement pour arrondir de haut en bas. Plus précisément, nous avons aussi un tour. Je crois qu'on devrait faire un tour. Je ne suis pas sûr à 100 %. Oui, nous avons autour. Donc, un tour, il va arrondir à l'entier le plus proche. Cela devrait également faire un comme une sortie 822. Parce que dans ce cas, oui. Oh, ça ne l'a pas fait, je n'ai pas encore sauvé, l'incroyable. C' est très rare, mais il devrait également ouvrir un 22 et il le fait. Donc, l'arrondi suit juste la normale. Les règles normales d'arrondi, je suppose que nous avons aussi le pouvoir de, donc si nous pouvions avoir quelque chose comme Math.Pow, c'est donc dix à la puissance de deux. Donc, ce serait dix à la puissance de 2 est égal à 100. Vous pourriez bien sûr, aussi faire 10 fois 10 fonctionnerait également. Cependant, parfois, vous devez mettre quelque chose au pouvoir de quelque chose. C' est donc ce que servent les pouvoirs. Donc retourne F élevé à la puissance p. Et puis le dernier, qui pourrait être, pourrait être intéressant, est fondamentalement serrer la variable de serrage Val entre deux valeurs. C' est une chose très spécifique qui pourrait être utilisée spécifiquement pour l'unité. Et nous n'allons pas imprimer quoi que ce soit parce que, eh bien, il n'y a rien à imprimer en ce moment. Cependant, l'idée de faisceau, et nous allons regarder cela dans un autre exemple plus tard dans la ligne aussi. Mais l'idée est que la pince, comme vous pouvez le voir, serre la valeur donnée. Donc, ce serait la vitesse étant donné le minimum et le maximum. Donc, l'idée est que la vitesse en ce moment était un 100. Et nous pourrions imaginer, par exemple, un jeu de course où nous accélérons ou ralentissons. Il devrait y avoir à un moment donné cette vitesse maximale. Et si nous avons seulement quelque chose qui est des chèques, Hey, est-ce que ce bouton appuie vers le bas et puis ajoute de la vitesse à la vitesse. Et puis nous pourrions imaginer, eh bien, en fait, serrer ça. Donc, il va essentiellement s'assurer que cette variable de vitesse est à l'intérieur de ces deux valeurs minimales et maximales. Mais comme je l'ai dit, un meilleur, nous allons voir un meilleur, Disons cas d'utilisation pour cette orange, en fait cas d'utilisation pour cela plus tard sur la ligne aussi bien. Je voulais juste le mentionner. Il y a d'autres méthodes intéressantes ici. Par exemple, il y a un sinus, un sinus et une tangente. Donc, il y a presque toutes les choses dont vous pourriez avoir besoin pour les mathématiques. Il y a l'infini, je crois. Si je vois, oui, Pi est aussi là. Il y a donc beaucoup de choses que vous pouvez jeter un coup d'oeil et jouer avec. Mais c'est juste une sorte de vue d'ensemble en ce moment. Le pouvoir de sceller la valeur absolue, les racines carrées, les valeurs Min et max. Ce sont ceux qui, selon mon expérience, sont, eh bien, je dirais que les plus utiles mais le plus souvent utilisés, surtout le minimax, sont utilisés un peu. Mais oui, c'est une introduction générale aux entiers et que les méthodes mathématiques. Et oui, c'était tout pour cette conférence. J' espère que vous l'avez trouvé utile. S' il y a des questions, bien sûr, hésitez pas à poser et je serai sûr de répondre. Et oui. 8. (C) Opérateurs de l'affectation: Bon, bienvenue à l'introduction du C-Sharp ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil aux opérateurs d'affectation. Maintenant, nous avons déjà vu l'opérateur d'affectation standard. C' est là que nous attribuons simplement une valeur à une variable. Mais il y a quelques cas particuliers dans certains opérateurs d'affectation qui rendent un peu plus facile de calculer fondamentalement des choses. Alors ouvrons juste le script d'affectation ici, et commençons simplement par un entier simple appelé I. Rendez cela égal à un. Maintenant, si, par exemple, nous aimerions ajouter un à cela et ensuite le sauvegarder dans I. Nous pourrions faire I égal à I plus un. Cela ne devrait pas être trop fou et devrait en fait être assez explicite. Nous attribuons simplement la valeur de I plus un parce que j'en suis un. Dans ce cas, nous allons, nous allons calculer 1 plus 1, et puis quand je le sauverai dans la variable elle-même, donc dans ce cas ce serait 1 plus 1. Écrivons ça comme ça. Maintenant. On peut l'écrire comme ça, très bien. Nous pouvons aussi l'écrire comme ça. J' ai plus égal à 1. Et cela est fonctionnellement équivalent à cela. Donc, nous allons simplement en ajouter une à la variable originale I, et ensuite nous allons lui assigner cette variable. Donc, dans ce cas, ce serait 2 plus 1 est égal à 3. Donc parce qu'après la ligne 13, j'avais 22 ans et je vais prendre 21 à lui. Et puis nous allons l'écrire dans moi donc dans ce cas, ce serait trois. Maintenant, il y a une autre chose que nous pouvons faire, c'est moi plus, plus. Et cela fera exactement la même chose aussi. Donc ce serait, dans ce cas, je plus 1. Et parce que j'ai trois ans, ce serait un quatre. Ensuite, nous pouvons aussi faire I moins, moins, et cela se transformerait ensuite en i négatif un ou moins un et qui est alors un trois. Donc, ce sont quelques basiques, fondamentalement comment vous pouvez condenser l'ajout d'une variable. Dans ce cas, vous pouvez, bien sûr, tracer le plus égal. Tu peux écrire ce que tu veux. Vous pouvez écrire une 12014, autre variable, tout ce que vous voulez. Dans le plus, plus, ce sera toujours un plus un ou un moins. Ce serait ce qu'on appelle une incrémentation ou un accroissement et une décrémentation. Et c'est vraiment utile pour certains types de structures que nous allons regarder dans C-Sharp en bas de la ligne. Maintenant, ce plus est égal, nous pouvons également faire d'autres affectations. Donc, comme vous l'avez vu, donc nous avions un plus égal. Donc, disons par exemple, plus égal à 5 et 14, non ? Ce serait alors un 17 égal à 17, quelque chose comme ça. Alors on pourrait le faire moins égal à juste pour des raisons d'argumentation en ce moment, ce moins deux conduira à un 15, n'est-ce pas ? Donc, nous pouvons aussi faire moins égaux. Nous pouvons aussi faire un temps égal. Faisons encore deux. Donc, ce serait un 15 fois 2 est égal à A3. Et puis nous pouvons, par exemple, faire diviser égaux aussi, diviser par trois. Donc, ce serait 30 divisé par 3 est égal à 10. Et puis à la fin, nous pouvons aussi faire modulo equals et ce serait un 10. Le modèle sur quatre est égal à 2. Maintenant, j'ai très rarement vu les égaux modulaires en fait, mais les autres pourraient en fait être vraiment utiles à un moment donné. Et comme je l'ai déjà dit dans une conférence précédente, il peut être le cas que bien que vous ne puissiez pas utiliser certains de ces opérateurs, Certains d'autres pourraient les utiliser. Et si vous ne savez pas ce qu'ils sont, alors vous aurez plus de mal à lire le code des autres personnes. C' est pourquoi je dis toujours que même si tu es, tendance à ne pas utiliser quelque chose où même si tu es genre, Eh bien, peut-être que je vais le garder comme ça parce qu'une fois de plus, c'est complètement le même que celui-ci, non ? Donc écrire I égal à I plus 1 est le même que I égal à 1. Certaines personnes disent juste, eh bien, c'est juste plus facile à lire. Je comprends mieux ça. Certains disent que je comprends mieux ça. C' est certainement juste un choix de style. Et vous pouvez faire l'un ou l'autre d'entre eux. Quand il s'agit de performance. Il n'y a vraiment pas de différence. Donc oui, c'est aussi les différents opérateurs d'affectation. J' espère que tu as trouvé ça utile et que tu apprendras quelque chose de nouveau. S' il y a des questions. Bien sûr, n'hésitez pas à demander et je serai sûr de répondre. Et oui. 9. (C) Booleans et opérateurs de comparaisons: Bon, bienvenue à l'introduction C-Sharp pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil aux booléens et particulier aux comparaisons et comment mettre à la façon de les écrire dans des variables booléennes. Alors ouvrons le script booléen et voyons ce qu'on peut voir. Donc, en se souvenant de retour, nous avions la variable est à la base et nous allons juste définir ceci sur false. Et l'Autriche, rappelez-vous, les Booléens étaient une valeur de vérité que nous pouvons soit fixer à vrai ou faux. Donc, ils peuvent être oui ou non, un ou 0. C' était l'essentiel de tout ça. Et peut-être par exemple, nous avons un booléen qui s'appelle x. et alors ce à quoi nous voulons réellement l'assigner est un calcul. Donc, un calcul booléen ou juste une expression, une expression booléenne, par exemple, deux est plus petit que cinq. Ce serait une expression booléenne. Comme vous pouvez le voir, l'a, un opérateur, le plus petit opérateur ajouté cela renvoie un booléen. Dans ce cas, cela serait vrai parce que 2 est plus petit que cinq si c'était l'inverse. Donc, par exemple, de cette façon, alors deux seraient plus grands que cinq et ce serait faux. C' est donc l'idée d'un opérateur de comparaison. Nous pouvons bien sûr aussi avoir un bool tyran. Pourquoi ? Par exemple, 10 est, 10 est plus grand que 50. Et cela, bien sûr, serait faux, n'est-ce pas ? Parce que bien sûr Sen n'est pas plus grand que 50. Et c'est pourquoi l'expression ici est fausse. Il y a beaucoup d'opérateurs de comparaison différents. Nous avons donc vu le plus petit que, plus grand que plus grand ou égal, plus petit ou égal, égal et pas égal ou inégal. Donc, ce serait, par exemple, c'est comme un 100 égal à 100. Ce serait vrai, non ? Et c'est parce que dans ce cas, un 100 est exactement égal à un 100. Maintenant, comme vous pouvez le voir, cela peut parfois sembler un peu déroutant parce que l'opérateur égal est deux signes égaux et l'opérateur d'affectation est un signe égal. C' est quelque chose que vous devez certainement regarder dehors parce que parfois, soit vous oubliez l'un des signes égaux ou peut-être que vous êtes juste la programmation enthousiaste et puis vous supervisez simplement que soit vous avez mis dans un signe ou deux signes égaux. Ce sont des choses complètement différentes et elles n'ont rien à voir les unes avec les autres. L' un est l'expression booléenne pour voir si deux variables ou deux choses sont égales. Et l'autre attribue une valeur à une variable. Juste comme une note rapide. Et puis, par exemple, nous pouvons avoir quelque chose comme ça. Donc 51, inégal, 50. Et cela serait bien sûr aussi vrai. Et c'est une inégale. Ou quoi d'autre ça pourrait être, pas égal, quelque chose comme ça. Mais ce sont les opérateurs de comparaison. Ils peuvent donc être incroyablement utiles pour comparer différentes variables les unes avec les autres. Est quelque chose de plus grand ou égal à quelque chose, est simple égal à quelque chose d'autre. Incroyablement utiles, applications répandues que nous allons voir au cours des prochaines conférences également. Mais c'est tout. Tout comme une petite introduction aux opérateurs booléens et de comparaison. S' il y a des questions, bien sûr, hésitez pas à poser et je serai sûr de répondre. Et oui. 10. (C) Booleans et opérateurs logique: Bon, bienvenue à l'introduction C-Sharp ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil à Booléens une fois de plus. Alors nous venons de rouvrir le script booléen ici. Et dans ce cas, ce que nous allons examiner, ce n'est pas les opérateurs de comparaison, mais nous allons regarder les opérateurs logiques. L' idée étant que nous avions ces expressions booléennes comme plus petites que cinq ou 10 est plus grande que 50, ce qui pourrait être vrai ou faux. Il s'agissait donc d'expressions ou de déclarations qui étaient vraies ou fausses. Ils étaient donc des expressions booléennes. Et maintenant, on peut les enchaîner ensemble. Donc, par exemple, on fait, on va faire un nouveau booléen ici, B2. Et alors ce que nous pouvons faire, c'est dire x et y. Donc, si nous faisons ce double signe d'esperluette, alors ce sera, c'est une opération finale. Et l'idée ici étant que ce sera x et y. maintenant x est vrai et y faux. Par conséquent, cette déclaration entière ne tire pas ici est également fausse car il s'agit d'un opérateur AND. Et l'opérateur est fondamentalement vrai si les deux déclarations d'état sont vraies aussi, alors il y en a un autre qui est l'opérateur OR. Donc ceci, par exemple, nous pouvons prendre est fondée ou B. Et cela dans ce cas serait vrai. La raison est que B est vrai, non ? Donc nous savons que B est vrai. Votre B était un 100 égal à 100. Et c'est vrai. Et l'opérateur OR est fondamentalement vrai si l'un des donnés, si l'un ou les deux des Booléens donnés ou déclarations est vrai. Et puis il y a une dernière chose que nous avons déjà vue, et c'est juste le point d'exclamation. Et que tout simplement cela inverse tout ce qui est donné. Donc, dans ce cas, c'est essentiellement l'opérateur NOT. Donc pas vrai, c'est juste faux, non ? Donc, cela retourne simplement ou inverse la valeur booléenne. Donc, en théorie, ce qu'on pourrait faire, c'est mettre les parenthèses autour de ça. Je pourrais mettre un point d'exclamation devant lui et ensuite ça annulerait tout ce qui est dans l'année. Et ils sont aussi comme des mathématiques fantaisie que vous pouvez utiliser. Les mots que vous cherchiez, pour ce serait soit table de vérité ou algèbre booléenne. Et donc tu peux imaginer que tu as quelque chose de fou comme ça, non ? Tu dois B2 et B4, ou B3 et x ou y, ou bien voir quelqu'un comme ça, non ? Donc on ne peut pas avoir quelque chose de fou comme ça. Cela serait, cela fonctionne totalement bien si vous deviez, bien sûr, avoir à évaluer fondamentalement chacun d'eux séparément. Mais vous pouvez également simplifier quelque chose comme ça à une version beaucoup plus petite de la même fonction fondamentalement que nous avons ici. Et bien, la même expression et c'était, c'est ce qu'on appelle l'algèbre booléenne. Donc nous pourrions simplifier cela. Je ne vais pas, si cependant, il y a beaucoup d'intérêts dans cela, je peux faire une conférence séparée pour cela. Cependant, je dirais que c'est rarement vraiment nécessaire. C' est plus quelque chose de théorique et c'est vraiment important en informatique théorique et bien sûr parfois aussi en informatique appliquée. Dans ce cas, lorsque vous avez des déclarations incroyables, incroyablement longues comme booléennes, alors il est logique de regarder comment vous pouvez peut-être les faire un peu. Les deux plus faciles à comprendre et peuvent également être plus faciles à évaluer. Cependant, comme je l'ai dit, ce n'est pas nécessairement la chose la plus importante. Cependant, s'il y a assez d'intérêt devant les gens, veulent voir cela, alors je suis heureux de faire une nouvelle conférence à ce sujet. Cependant, en ce moment, c'est le, fondamentalement les opérateurs logiques, l'opérateur AND, l'opérateur OR et l'opérateur NOT ou l'inverse. Je veux dire, ça s'appelle l'opérateur NOT. Et oui, c'est fondamentalement les trois principaux opérateurs logiques, avec lesquels vous pouvez tout faire en logique. Et oui, ce sont les deux termes que vous, si vous voulez, peut-être regarder d'autres choses aussi qui ont à voir avec ça. Ce sont les deux termes que vous devriez examiner. Et s'il y a des questions à ce sujet , bien sûr, n'hésitez pas à poser et je serai sûr de répondre. Et oui. 11. (C) C C C Strings and String Méthode de cordes: Bon, bienvenue à l'introduction du C-Sharp ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil aux ficelles. Donc, une fois de plus, en s'assurant que nous sommes sur Lecture 8, cordes ici. Si ce n'est pas le cas, vous pouvez simplement aller dans le dossier Scènes et l'ouvrir. Et puis en veillant à ce que dans notre dossier de scripts, nous double-cliquez sur ces scripts de chaînes. Et nous voici à l'intérieur de notre script. Et commençons simplement par faire une nouvelle chaîne. Donc, la phrase de chaîne , par exemple, faisons-le dire helloworld. Ceci, cette conférence est merveilleuse. Espérons que c'est vrai. Mais tout d'abord, comme nous l'avons déjà vu, l'idée d'une chaîne est qu'il s'agit de plusieurs caractères l'un à côté de l'autre. Et la première chose que nous allons examiner est fondamentalement une fois de plus, la longueur. Nous l'avons déjà vu. Donc la longueur de la chaîne. Et c'était, nous avons pu y accéder en tapant le nom de la variable, dans cette phrase de cas. Et nous pouvons auto-completer cela avec la tabulation, puis la longueur des points, la longueur. Et puis nous pourrions aussi auto-compléter cela avec l'onglet. Et après avoir sauvé, on pourrait revenir à Unity. Et voyons voir. La longueur est 39. Eh bien, c'est génial. Alors revenons en arrière. Et voyons voir. Ainsi, la longueur de la chaîne peut être utile dans de nombreuses parties différentes. Par exemple, parfois, peut-être que nous voulons comme des sous-chaînes ou certaines parties d'une chaîne et alors nous avons besoin de connaître la longueur. Je vais regarder ça assez tôt. Tout d'abord, regardons en majuscules et en minuscules. Cela peut être utile, par exemple, si vous voulez, indépendamment de certaines entrées, vérifier si cette entrée est identique ou non. Mais dans ce cas, nous allons simplement convertir la phrase en criant. Donc, nous allons taper la phrase point 2 en haut dans ce cas. Comme vous pouvez le voir, ceci est, cela se termine par une parenthèse, ce qui signifie qu'il s'agit d'un appel de méthode, donc cela appelle une nouvelle méthode. Et puis nous pouvons juste une fois de plus copier ceci en sélectionnant simplement le journal de débogage, en appuyant sur Contrôle C, puis sur Contrôle V pour le coller. Et cela va être plus bas. Et ça va être, bien sûr, chuchoter. Droit ? Et puis, oui, regardons ça. Donc, la douche juste à la partie supérieure va juste faire tout en majuscules. Et pour abaisser c'est juste que ça va tout faire, chaque personnage de cette phrase en minuscules. Donc, comme vous pouvez le voir, crier va être majuscules puis chuchoter. Tout est minuscule. Comme je l'ai dit, parfois ce qui est intéressant une application pour cela est fondamentalement de le faire de sorte que quoi que ce soit, indépendamment des majuscules ou minuscules, vous pouvez comparer deux chaînes les unes avec les autres et voir si elles sont toujours la même chose, que tout soit en majuscule ou en minuscule ou non. Et, eh bien, regardons juste la phrase elle-même. Donc le printemps lui-même. Imprimantons aussi celui-là. Juste, juste pour des raisons d'argumentation. Eh bien, ce que nous respectons que tout est ralenti, petit mais en minuscules, mais comme vous pouvez le voir, les H et W sont en fait toujours en majuscules. Quoi, pourquoi c'est ? Eh bien, l'idée étant que même si nous avons appelé cette méthode ici, comme vous pouvez le voir, il dit en fait chaîne et ensuite il dit string dot two oper. Donc, l'idée étant que ce genre en fait, il renvoie une nouvelle chaîne. Il en est ainsi, la phrase elle-même n'est pas modifiée. Et cela arrive avec certaines des méthodes. Je crois que c'est presque toutes ces méthodes de chaîne ne changent pas réellement cette variable d'origine ou la valeur même. Ils redonnent toujours une nouvelle instance de cette variable qui est ensuite modifiée. Dans ce cas, scie majuscule tout est grand. Et puis celui-ci, en minuscules. Peut-être que ce qu'on veut, c'est qu'on veut savoir où il y a quelque chose à l'intérieur de cette chaîne. Et nous pouvons utiliser l'index off pour ça. Donc, faisons juste un verrou de débogage à nouveau. Et puis nous allons trouver le mot conférence. Le mot conférence trouvé à la position. Et puis mettons la position ici en le faisant en faisant l'index de points de phrase hors. Et puis on peut passer une chaîne ici. Et nous allons dire conférence, oh, ce n'est pas juste. Voilà, cours. Et cela va retourner l'indice de l'endroit où les électrons commencent. Alors voyons quoi, comptons d'abord. Donc 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19. Voyons si on en a 19 ou ce qu'on obtient. On en a 18. Eh bien, ce n'est pas si bizarre ? L' IOM aime compter mal ? Non, on n'a pas mal compté. Eh bien, nous l'avons fait d'une certaine façon. Mais non. L'idée est qu'une phrase, le premier caractère ici, le premier caractère ici est en fait 0. On doit donc commencer à 0. Et si nous commençons à compter à 0, 0 , 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18. Ensuite, nous voyons que le L de la conférence se trouve en fait à la position 18 parce que nous commençons à compter à 0 et c'est vraiment important, commencer à compter à 0. C' est donc une chose importante dans la programmation. La plupart des langages de programmation commencent là, comptent à la fois les chaînes et les autres types de données à 0. Un peu important à savoir. Parce que cela peut parfois conduire à l'étrangeté. Il y a aussi d'autres langages de programmation où ce n'est pas le cas et le nombre commence à 1. Cependant, il est vraiment déroutant de basculer entre les deux. C' est pour ça que je dis, ok, commence le compte à 0. Très important. Il existe également une méthode de remplacement. Donc, dans ce cas, la méthode replace remplace tous les, toutes les instances d'une phrase particulière, fondamentalement. Disons qu'il s'appelle la méthode de remplacement et que nous voulons remplacer le monde par des étudiants. Et l'idée est que, oh, je sais pourquoi l'ego, c'est pourquoi, il faut deux cordes. Le premier est la chaîne qui doit être remplacée, puis la deuxième chaîne est ce qu'elle est censée remplacer. Donc, dans ce cas, ce qui va se passer, c'est que la sortie va être bonjour étudiants. Cette conférence est merveilleuse au lieu de bonjour monde et cette conférence est merveilleuse. Laissons ça et voyons si ça marche. Oui, Bonjour les étudiants. Cette conférence est merveilleuse. Et encore une fois, n'oubliez pas qu'il ne s'agit pas de modifier les phrases originales, en nous donnant une nouvelle. Donc, ce que nous pouvons faire est que nous pouvons aussi, quand nous avons une nouvelle chaîne, par exemple , chaîne S, qui va juste être une chaîne vide. Donc, ce serait une chaîne vide. Nous pouvons également dire strings.xml pour la chaîne vide, mais ceux-ci sont fondamentalement les mêmes. Alors ce que nous pouvons faire, c'est que nous pouvons fondamentalement avoir un booléen. Donc, nous pouvons appeler la chaîne est nulle ou vide. Passez une chaîne, dans ce cas S. Et cela va retourner true si la chaîne ici est nulle ou vide. Et il va retourner un faux si la chaîne n'est ni nulle, nouvelle, ni vide, non ? Et nous pouvons également regarder si comme ce qu'une certaine chaîne commence par un, ce qu'elle se termine par, peut être utile dans des moments très différents. Prenons celui-là. Cela va être celui de Stuart avec, et c'est la phrase commence par, commence par retourne un booléen. Donc, en gros, on peut dire, hé, ça commence par un H ? Et puis nous pouvons dire se termine par. Et puis nous avons juste rapidement à celui-ci, se termine par, et disons que ça se termine par un gros A. Et ce n'est bien sûr pas vrai. Donc, ce serait vrai. Et ce serait faux. C' est bien formaté. Voilà, c'est génial. Droit ? Regardons cela après avoir regardé le suivant et le suivant est la méthode contains. La méthode contains renvoie simplement true ou false. Donc, une valeur booléenne si quelque chose y est contenu ou non. Donc, disons que nous voulons savoir si la phrase contient ou non du monde. C' est bien sûr vrai parce que quel monde est le deuxième mot ici. Et encore une fois, le remplacement n'a pas remplacé la phrase. Il a en fait créé une nouvelle sorte de chaîne en arrière-plan. Alors voyons. Oui, commence par un H. Ça commence par un H, H majuscule, puis se termine par un grand A, qui était un capital a et qui a des plis. Et puis c'est un vrai ici pour les contient le monde des cordes. Il y a aussi une sorte de manière différente. L' index ici était un entier. Donc, fondamentalement, le nombre où commence le L de la conférence, nous pouvons aussi en quelque sorte faire l'inverse afin que nous puissions réellement obtenir un personnage à la position. Mettons-le à la position 10. Et la façon dont nous le faisons c'est que nous tapons simplement la phrase du nom. Et puis nous faisons ces crochets et puis tapons dans la position que nous voulons. Donc, cela renvoie un caractère. Et dans ce cas, ce serait, je suppose que le D, je crois. Donc 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Oui. Donc cela rendrait le D ici dans le monde. Et quelque chose qui est aussi à voir avec cela est la sous-chaîne où nous devons également spécifier des positions. Et maintenant, oui, alors faisons déboguer la sous-chaîne de point de phrase de journal et E Une fois un index de départ, et puis il veut la longueur, il va. Donc fondamentalement, la sous-chaîne, ce qu'elle veut, c'est qu'elle veut savoir, d'accord, où dois-je commencer et ensuite combien de temps dois-je aller ? Donc, dans ce cas, cela devrait commencer au t et se terminer à, je ne suis pas sûr, en fait, 123456789, 10, 11, je suppose. Visite. Eh bien, nous allons voir à ce sujet. Voyons voir que c'est le cas. Voyons ce que ça va apporter. Donc, la sous-chaîne est en fait oui, et cela a aussi l'espace là-dedans. Et élire à cette conférence. Et comme vous pouvez le voir ici, le D est également sortie cette étape deux. Donc ce serait 12 et ne commencerait pas à 13 ans, je crois que si nous le voulons, je veux qu'il imprime cette conférence, Faisons ça. Et ils vont cette conférence, super. C' est exactement ce que je veux, non ? Et c'est une sous-chaîne dans ce cas où nous avons, quand nous prenons une partie particulière de la chaîne et en créons une autre. Donc, une fois de plus, nous ne modifions pas la chaîne elle-même. La façon dont nous modifierions la chaîne pourrait être quelque chose comme cette phrase, la sous-chaîne de points de phrase par exemple. Et puis ce qui arriverait, c'est qu'il créerait cette sous-chaîne do, puis sauverait dans la phrase elle-même afin que la variable elle-même, de sorte que cela fonctionnerait. Cependant, nous ne le ferons pas à ce stade. Ce n'est pas tout à fait ce dont nous avons besoin en ce moment. La dernière chose que je veux vous montrer est que si nous avons une chaîne et alors peut-être que ce que nous voulons dans cette chaîne est que nous voulons avoir des guillemets. Maintenant, le problème est que dès que je tape des guillemets, la chaîne se termine, ce n'est bien sûr pas tout à fait ce que nous voulons. Et ce qu'on peut faire, c'est faire une de ces barres obliques inverses. Et cette barre oblique inverse est fondamentalement un caractère d'échappement afin que le programme sache que, ok, c'est maintenant censé être des guillemets qui sont en fait à l'intérieur d'une chaîne. Il y a aussi d'autres choses telles que la barre oblique inverse t, barre oblique inverse, barre oblique inverse, barre oblique inverse. Si vous voulez taper une barre oblique inverse. Ce sont essentiellement les principaux. Donc, la barre oblique inverse entre guillemets, barre oblique inverse t, barre oblique inverse n. Donc, l'onglet enseigner simplement MIX. Donc, si vous appuyez sur la touche de tabulation, vous tabulez sur un certain nombre d'espaces et fait une nouvelle ligne. Et la barre oblique inverse, barre oblique inverse tape simplement une nouvelle barre oblique inverse. Donc en tant que caractère, même avec, le, comme avec ces guillemets, n'est-ce pas ? Ouais, ce sont le genre de choses principales sur les chaînes et certaines de ces méthodes de chaîne. Encore une fois, je vous implore de regarder quelques-uns d'entre eux vous-même. Il y en a quelques autres. Donc, si nous regardons ceci, ce que nous pouvons voir, il y a aussi des égaux de comparaison, il y a insert, um, il y a une méthode remove. Donc il y a d'autres choses que nous pouvons faire aussi. Comme je l'ai dit, je vous implore de les regarder. C' est juste un aperçu général des ressorts, généralement en particulier dans le développement de jeux lui-même. Ce n'est pas la manipulation de chaîne n'est pas aussi fréquente que peut-être dans d'autres champs. Cependant, parfois vous ne savez jamais ce que vous allez obtenir. Il est donc préférable de connaître ces choses et de les avoir bien regardées. J' espère que cela a été instructif pour vous. Si c'était le cas, alors j'apprécierai, bien sûr, un commentaire de votre part. Et s'il y a des questions, bien sûr, comme toujours, n'hésitez pas à poser et je serai sûr de répondre. Et oui. 12. (C) Défonts variables de casting ables: Bon, bienvenue à l'introduction pointue C ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil au casting. Maintenant, le casting pourrait ne pas vous dire quoi que ce soit. Le terme pourrait être correct. Qu' est-ce que le casting ? Jetons un coup d'oeil en ouvrant le script ici. Et l'idée est que voyons, nous avons une variable appelée prêt, qui est 750, et c'est un entier. Maintenant, nous avons aussi un flotteur appelé le taux d'intérêt. Et ça va être, disons que 5,25 %. Donc, cela peut être écrit comme 0,05 à cinq. Maintenant, ce que nous pouvons faire, c'est que nous pouvons dire, eh bien, le propriétaire calcule les intérêts. Eh bien, l'intérêt va simplement être le taux de prêt multiplié par le taux d'intérêt, le taux d'intérêt que vous allez, n'est-ce pas ? Donc, ça ne va pas être trop fou d' un calcul et devrait être assez simple. Et puis nous allons aussi nous assurer que nous avons juste enregistré l'intérêt en ce moment. Et voyons ce qu'on peut voir. Qu'est-ce qui va sortir de ça. Donc ça va sortir de ça c'est 39,375, ou disons 39 points, disons 3, 8$, disons. Comment ça marche ? Nous venons de prendre un entier et de le multiplier par un flotteur. Alors la question se pose : comment ça marche ? Ça, c'est un peu bizarre, non ? Pourquoi pouvons-nous simplement prendre l'entier et le multiplier fondamentalement avec un flotteur ? Eh bien, c'est ce qu'on appellerait le casting implicite parce que les deux sont des nombres et ça marche. Ce qui ne fonctionnerait pas, c'est, par exemple, si je disais, eh bien l'intérêt est maintenant un entier, alors serait en fait un qui ne fonctionne pas parce que, comme vous pouvez le voir, il dit que ne peut pas implicitement convertir en type float en int est parce que c'est un flotteur. Et si nous avons un entier multiplié par float, alors il est converti en un flotteur car un flotteur a plus d'informations qu'une interruption. Cependant, je peux explicitement dire Hey, peu importe, traiter cela comme un entier. Donc, je peux dire bien int. Et puis ça va être comme d'accord, bien sûr, le taux d'intérêt est maintenant un entier. Le gros problème avec ça va être, eh bien, qu'est-ce que ça veut dire vraiment ? Voyons si on en a encore 39. Maintenant nous obtenons, nous obtenons 0. Comment on obtient 0 ? Eh bien, l'idée est qu'un entier n'en a pas, quoi que ce soit après la virgule décimale, non ? Donc, un entier est toujours un nombre entier. Par conséquent, cela est converti en un entier. Et que se passe-t-il lorsqu'un flotteur est converti en un entier ? Tout après la virgule décimale, il est juste coupé. Donc, fondamentalement, ce que le taux d'intérêt après qu'il a été converti en un entier voit est 0. Donc le taux d'intérêt est 0, donc, le prêt est 0, ce qui, bien sûr, n'a aucun sens. Ou si l'intérêt est donc 0, ce qui n'a aucun sens. C' est pourquoi nous voulons que ce soit un flotteur. Nous pouvons également voir cela comme un autre exemple. Disons que nous avons un entier x et que nous allons juste dire quelque chose comme 50.5 f plus 20.6 f, non ? Et nous allons maintenant déconnecter ce. Donc, nous allons voir ce que nous attendons. Dans ce cas, un 71. Oui, 0.171.1. Maintenant, c'est un entier. Donc, ce que nous devrions voir est un 71, et en effet nous voyons un 71. Donc, encore une fois, dans ce cas, ce serait en fait 71.1. Et puis tout après que le point décimal est coupé, donc, il est 71. Et ce qui est aussi intéressant ici, c'est quand nous divisons quelque chose, si nous divisons, par exemple, un 100 par 200, F, par exemple, non ? C' est gentil, c'est parfois important parce que parfois une division ne va pas retourner des nombres entiers. Donc, dans ce cas, c'est un nombre entier. Mais si, par exemple, nous devions faire quelque chose comme ça et alors bien sûr, pourquoi ne pas diviser cela par deux cent deux cents F. Donc diviser cela par un flotteur. Et puis voyons ce que cela donne réellement. Comme vous pouvez le voir, cela crie pour pointer vers 55. Maintenant, si on divise ça par 200, et qu'on peut aussi dire que ça ne flotte pas, ça n'a pas d'importance. Le problème étant que c'est alors un deux. Donc, parfois, il vaut mieux si nous avons un flotteur ici, parfois il est préférable de travailler avec des entiers. Une note que je veux vraiment dire clairement juste pour que nous ayons ceci dehors. J' ai donc utilisé ce prêt et le taux d'intérêt comme exemple. Si vous travaillez sur un système bancaire, qu'il s'agisse de l'intérieur d'un jeu ou de la vie réelle, n'utilisez jamais de nombres à virgule flottante. Faites toujours tout avec des entiers. Donc économiser à la fois le, à la fois le montant total de dollars ainsi que des cents dans les deux en entiers. Parce que les nombres à virgule flottante, comme je vous l'ai déjà dit, sont sujettes à des erreurs. Et surtout en arrondissant. Et vous ne voulez vraiment pas arrondir les erreurs quand il s'agit d'argent, ça va être un vrai gros problème. Je voulais juste mentionner que toujours utiliser des entiers si vous faites cela juste comme un peu de temps. Quand une autre chose que nous pouvons faire est que nous pouvons réellement lancer des personnages. Donc, ce que nous pouvons faire, c'est que nous pouvons lancer le personnage, par exemple , des castes supérieures, huit, la majuscule a. Alors faisons y. Maintenant, c'est vraiment génial ici un peu parce que le casting est redondant parce que je peux juste dire, eh bien, int y est égal à un et cela fonctionne bien. On va juste le garder ici juste pour qu'on sache, ok, on a vraiment filé. Et si nous faisons ça, nous pouvons voir que c'est un 65. Pourquoi c'est 65 ? Eh bien, cela vient de la façon dont les caractères sont fondamentalement encodés. Et l'encodage en arrière-plan n'est qu'un nombre. C' est tout ce que c'est. Donc on peut faire quelque chose comme ça. Donc on peut dire, par exemple, 50, eh bien pas 50, Faisons 12 plus ça, non ? Donc comme ça. Et puis nous pouvons également lancer l'entier en un caractère, puis imprimer ce que c'est. Donc, nous allons fondamentalement passer d'un et puis 12 encodages après. Voyons ce que c'est. Ça devrait être un néant. C'est un M. tu y vas. Donc, il y a aussi un certain nombre de façons que nous pouvons calculer les choses avec les caractères aussi bien. Et ce sont quelques-unes des pièces moulées de base. Et il y a aussi des concepts un peu plus avancés que nous allons jeter un oeil dans une conférence future. Mais à l'heure actuelle, nous n'avons pas les outils ou les connaissances nécessaires pour savoir comment cela fonctionne là où il s'agit d'une vue d'ensemble de base en ce moment. Ainsi, nous pouvons réellement convertir certains types de données en d'autres types de données. La plupart du temps, implicite. Ouvrages implicites de coulée. Si vous passez d'un type de données qui contient moins d'informations à un type de données qui contient plus d'informations. Donc, d'un entier à un flotteur fonctionne implicitement. D' un flotteur à un int ne fonctionne pas implicitement parce que vous perdez des informations, principalement dans ce cas étant le, tout après la virgule, n'est-ce pas ? C' était tout pour la conférence de casting. J' espère que cela vous a été instructif. S' il y a des questions, comme toujours, hésitez pas à poser et je serai sûr de répondre. Et oui. 13. (C) Déclarations conditionnelles (Si et Elle): Bon, bienvenue à l'introduction C-Sharp pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil aux opérateurs conditionnels. Que sont les opérateurs conditionnels ? Eh bien, c'est essentiellement quelques mots clés que nous pouvons utiliser pour voir si oui ou non quelque chose est vrai ou faux. Et puis, selon que sur ce trophozoïtes font certaines actions différentes ou exécutent une couche différente. Alors commençons juste le script conditionnel ici. Et voyons ce qu'on peut voir. Donc, comme vous pouvez le voir, ce sera les déclarations if et else que nous allons jeter un oeil. Mais tout d'abord, nous avons besoin de quelques variables, donc nous allons avoir un x et un pourquoi ainsi qu'un bool est un bon cours. Et cela, bien sûr, va être vrai. Espérons que c'est aussi vrai, mais je suis assez certain que c'est le cas. Eh bien, qu'est-ce qu'on peut faire ? Eh bien, nous allons juste taper IF c'est l'instruction if. Maintenant, ce que nous pouvons faire est que nous pouvons appuyer deux fois sur Tab et puis il va générer pour nous le chemin si l'instruction semble, comme vous pouvez le voir, il a des parenthèses après le if. Ensuite, à l'intérieur de ces parenthèses, il y a une expression booléenne. Maintenant, cela peut être aussi compliqué ou aussi facile que vous le demandez. Il peut être soit juste une valeur booléenne, comme true. Il peut s'agir d'une variable booléenne ou comme nous l'avons vu dans les conférences précédentes, les opérateurs de comparaison booléens fous ou quelque chose comme ça. Donc, nous allons juste taper x est plus grand que y. et puis si c'est le cas, alors tout à l'intérieur de cette portée ici est exécuté. Donc, disons juste le journal des points de débogage. Et puis on va dire que x est plus grand que pourquoi ils vont, bam. Et puis si c'est le cas, alors cela est exécuté. Maintenant, bien sûr, nous pouvons déjà voir que x est un 100 et y est 1000. Par conséquent, c'est certainement faux. Que pouvons-nous faire alors ? Eh bien, alors on peut juste ajouter une déclaration else. L' instruction else est alors exécutée. Si c'est faux. Donc, si c'est vrai, alors cela est exécuté. Sinon. Donc, si ce n'est pas vrai, alors cela est exécuté. Et dans ce cas, x n'est pas plus grand que y. Laissons ça et voyons ce qui se passe. Encore une fois, assurez-vous que vous êtes à la Conférence 10. Et comme vous pouvez le voir, x n'est pas plus grand que y. et c'est la seule chose qui est exécutée. Au lieu de cela, ce que nous avons vu ici, ce que nous avons vu auparavant, c'est que nous allons droit de haut en bas et tout, chaque ligne est exécutée. Dans ce cas, nous avons en fait un conditionnel. Donc c'est une sorte de ramification. Dans ce cas. Cela dépend de ce qui se passe ici. Intéressant. Comment pouvons-nous faire autrement ou que pouvons-nous faire d'autre avec ça ? Eh bien, tout d'abord, une chose à noter est que, par exemple, si nous avons cette vidéo est bonne, c'est bien sûr ici. Ce que nous pouvons utiliser, c'est que nous n'avons pas vraiment besoin d'avoir ces parenthèses. Nous pouvons aussi simplement appuyer sur Entrée et ensuite avoir une ligne que nous voulons faire. Donc oui, c'est plutôt bon, par exemple. Et cela est alors exécuté. Si c'est vrai. On peut aussi, si on recopie ça. Et dans ce cas, nous venons de mettre dans le, le booléen. On peut aussi dire explicitement, Hey, ça doit être vrai. Maintenant, ce n'est pas nécessaire parce que tout cela fait déjà cela. Cependant, certaines personnes préfèrent cela parce que cela le rend un peu plus explicite à ce que cela signifie réellement. Alors, qu'est-ce que je veux avec ça ? Personnellement, je préfère utiliser cette version. Cependant, si vous pensez que cela est plus lisible pour vous, vous pouvez bien sûr l'utiliser également. Ce que je voulais aussi dire c'est, si vous utilisez le M de cette façon de l'écrire, donc l'instruction if et ensuite avec la ligne suivante en retrait, je dirais que ce n'est pas la meilleure chose à faire. Parce que si jamais nous voulons ajouter une nouvelle ligne qui est également à l'intérieur de cela, si alors nous aurions besoin d'ajouter les crochets bouclés de toute façon. Par conséquent, c'est toujours la meilleure chose à faire pour ajouter les crochets bouclés. Juste, je voulais juste mentionner celui-là, non ? Alors voyons une dernière chose. Donc, par exemple, nous avons une note, par exemple, n'est-ce pas ? Disons quelque chose comme 99. Alors peut-être que vous, nous venons de passer un examen et la note est de 99%. Et ce que vous pourriez imaginer, c'est que peut-être ce que nous voulons, c'est que nous voulons aussi des choses différentes. A, B sortie en fonction de ce qui se passe avec le grand. Donc, par exemple, si la note est inférieure à 50, eh bien, ce que nous voudrions imprimer est que vous avez échoué la classe. Parce que ça a du sens, non ? Si vous avez moins de 50, alors cela vous fait échouer une classe. Maintenant, si on veut peut-être, n'est-ce pas ? Et puis vous avez réussi en classe, alors vous avez réussi, non ? Tu as réussi la classe. Si ce n'est pas 50, cependant, eh bien, peut-être ce que je veux, c'est que je veux vraiment avoir cela, droit, parce que vous avez passé la classe, mais pas calme avec, calme avec un 100 points. Donc peut-être que ce que je veux est en fait que je veux que cela soit appelé si la personne n'a pas 100 points mais a réussi. Et puis je veux qu'une autre chose soit froide. Donc, ce que nous pouvons alors faire est que nous pouvons faire l'autre si déclaration, simplement changer la, un autre si déclaration ici disant, par exemple, la note est plus grande ou égale à 50. Donc, c'est exactement l'inverse de cette fin droite. La note est inférieure à 100. Donc, il est entre 50 et 100. Et puis ça s'appelle. Donc, vous avez passé la classe, mais pas tout à fait avec un 100 points. Et si nous disons ensuite autre, nous pouvons alors examiner, par exemple, faire cela et ensuite avoir ceci. Vous avez passé la classe, Voyons voir, avec quelque chose comme ça sur nous. Et cela fonctionnerait alors. Donc, pour l'instant, on en a 99. Donc, ce qui devrait être imprimé, c'est que vous avez passé la classe, mais pas tout à fait avec 100 points. Voyons si c'est le cas. Vous avez passé la classe, mais pas tout à fait avec 100 points, exactement. Et puis si nous avons 100 points, alors ça devrait fonctionner. Voyons voir. En effet, vous avez la classe, la classe passe la largeur de la classe sur nous. Droit ? Maintenant, il y a un petit flux là-dedans où vous pouvez regarder vous-même. Peut-être que vous pouvez le savoir et l'ajouter à votre temps libre. Parce que si j'ai 101% en année, je passe toujours la classe avec les honneurs. Comme vous pouvez le voir, cela fonctionne toujours. Peut-être que vous pouvez ajouter une nouvelle expression ici ou peut-être huit, une autre instruction if. Mais c'est vraiment juste une idée pour toi. Si vous voulez jouer avec ça, un peu plus. Très important si et sinon les déclarations sont un élément essentiel de la programmation. Ils sont fondamentalement l'une des choses les plus importantes à descendre. C' est donc un domaine de connaissances très important que vous devez avoir pour que vous puissiez programmer. C' est pourquoi je veux vraiment insister, essayer quelques choses avec les déclarations if et else. Jouez un peu avec ça. Et s'il y a des questions dans ce cas, dans ce sujet, très important, Duke, posez des questions que vous avez qui pourraient ne pas être complètement claires s'il y a quelque chose de peu clair, s'il vous plaît poser une question. Je serai sûr de répondre comme toujours. Et oui. 14. (C) Opérateur salarial: Bon, bienvenue à l'introduction pointue C pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil à l'opérateur ternaire. Tout d'abord, l'opérateur ternaire sonne comme si c'était incroyablement compliqué et certains comme une chose complètement folle. Ce n'est pas fou du tout. En fait, c'est assez facile à comprendre et on va le faire tout de suite. Encore une fois, s'assurer que nous sommes sur la Lecture 11, ternaire, puis juste ouvrir le script ternaire. Donc, comme vous pouvez le voir, il y a déjà quelque chose là-dedans. Nous avons une grande note et un bool qui expriment simplement si ce plus grand passé a passé ou non. Nous avons vu au cours des dernières conférences comment nous pouvons fondamentalement manipuler un peu cela. Et maintenant, il va juste montrer un raccourci en bref. Donc, nous pouvons dire que le passé est égal à. Et puis, par exemple, on peut dire grade, je suis plus grand ou égal à 50. Et cela fonctionne juste parce que nous pouvons bien sûr sauvegarder les expressions booléennes. Dans ce cas, avec l'opérateur de comparaison juste à côté d'un booléen aussi. Au lieu de, au lieu de toujours évaluer cela à l'intérieur d'une instruction if, nous pouvons aussi simplement l'enregistrer dans un booléen et ensuite le regarder comme ça. Maintenant, l'opérateur ternaire a quelque chose. Cela fonctionne essentiellement presque comme une déclaration if. Donc, nous pouvons, par exemple, dire que le passé est égal à et ensuite nous disons que le grade est, disons, inférieur à 50. Faisons une somme parenthèses plutôt que l'opérateur ternaire est un point d'interrogation. Et puis tout ce qui devrait être retourné. Si c'est vrai, ça va être un peu. On est en ce moment. Cela peut être faux et ensuite nous faisons deux-points. Donc, comme vous pouvez le voir maintenant, il ne montre plus d'erreurs. L' idée étant qu'en face du point d'interrogation, vous mettez une expression booléenne. Et le premier élément ici est ce qui est retourné. Dans ce cas, écrit dans la variable passée. Si l'expression ici est vraie. Et puis qu'est-ce qui vient après le retour du côlon ? Si l'expression ici est fausse. Donc celui-ci, donc ceci, cette expression ici est fondamentalement la même si je devais faire ce qui suit. Donc celui-ci est passé égal à faux. Sinon passé égal à vrai. C' est donc tout à fait équivalent. Dans ce cas. La même chose arriverait ici comme ici. Peut-être un, un autre exemple pourrait être un peu mieux, par exemple, avec une chaîne. Donc, disons, par exemple, la phrase et ensuite nous allons dire que la note est égale à 100. Ensuite, nous allons vous dire félicitations pour 100. Et puis si ce n'est pas un 100, donc ceci, cela est retourné si c'est un 100, et cela est retourné si ce n'est pas un 100, pas un 100. Mais c'est toujours bon. Quelque chose comme ça. Par exemple. Comme vous pouvez le voir, ça marche. Et cela pourrait être un peu meilleur exemple que l'année dernière parce que nous utilisons des Booléens ici aussi. Ceci l'opérateur ternaire, comme je l'ai dit, peut être remplacé par des instructions if normales aussi, ou si les instructions peuvent remplacer par un opérateur ternaire. Cela dépend vraiment de la situation. Quelque chose que je ne ferais certainement pas est d'avoir plusieurs opérateurs ternaires, comme à l'intérieur de l'autre. Donc, en théorie, on peut dire, eh bien, ok, c'est un autre journal plus brillant, donc on peut dire plus grand, plus grand ou égal à 50. Et puis un autre point d'interrogation, et puis nous pouvons revenir au-delà et ensuite nous pouvons, par exemple, retourner échoué, non ? Pour que nous puissions le faire. À ce stade, il commence à devenir un peu plus compliqué à lire. Je pense que ça pourrait être correct. Si vous avez deux niveaux de profondeur, peut-être que ça marche. Mais je ne vous conseillerais pas de faire plus que cela. Oui. Mais c'est aussi une sorte de chose que vous ressentez si vous commencez à programmer un peu. Oui, donc c'est l'opérateur ternaire. C' est juste une petite introduction. n'y a rien de trop fantaisie à ce sujet. Et il est juste important que vous ayez vu que ce sont tous. Donc oui, ouais, c'était tout pour cette conférence. J' espère que vous l'avez trouvé utile s'il y a des questions, comme toujours n'hésitez pas à poser et je serai sûr de répondre. Et oui. 15. Déclaration de commutateur de la voix: Bon, bienvenue à l'introduction pointue C ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil aux déclarations de commutation. Donc la dernière fois, nous avons vu l'opérateur ternaire. Il y a un autre opérateur ou une déclaration que nous pouvons utiliser que je ne dirais pas remplacer les instructions if, mais que nous pouvons utiliser à la place des instructions if si nous le choisissons. Alors, ouvrons simplement le script d'instruction switch ici. Et il est possible de voir que j'ai déjà préparé une valeur entière ou une variable entière x avec la valeur 75. Et nous allons regarder le mot-clé switch. Donc c'est juste un changement. Et puis entre parenthèses à l'intérieur de celui-ci, nous voulons mettre une variable que nous voulons évaluer, dans ce cas x, et ensuite nous avons besoin des crochets bouclés. Et c'est fondamentalement déjà ce dont nous avons besoin pour l'instruction switch. Ensuite, à l'intérieur de l'instruction switch, nous allons réellement définir des cas spécifiques. Donc, si par exemple, x est 10, donc nous allons écrire le cas 10, puis un deux-points, et ensuite tout ce que nous voulons avoir. Donc ici, nous pouvons réellement écrire comme un tas de code, appel de méthode, ce que nous voulons. Dans ce cas, nous allons juste imprimer ou déboguer le journal x est 10. Et à la fin de ceci, donc après le point-virgule, nous voulons réellement un autre mot-clé et c'est brique. Et cela signifie simplement que, ok, cette affaire est maintenant terminée. Donc, évidemment, le, IT, il y a un moyen plus facile de produire ce que x est dans ce cas. Ceci est juste à des fins de démonstration dans ce cas. Et donc nous pouvons avoir un autre cas, donc par exemple, le cas 20. Et puis nous allons dire que le journal de débogage x est x est 20. Et une autre pause. Et nous allons simplement les copier. Donc, nous allons essentiellement nous assurer de les marquer et de les faire sélectionner. Ensuite, nous allons appuyer sur Ctrl C pour copier le contrôle V à coller. Et puis nous aurons encore cinquante cent cinquante et cent cent. Et oui, c'est bon. Maintenant, comme vous pouvez le voir, l'inconvénient disons ici est que nous devons réellement spécifier chaque cas spécifique au lieu d' une instruction if où nous avions le genre de capacité où nous passons le booléen pour avoir des plages. Ici, il doit en fait être explicite dans chaque cas. Donc ça peut être un peu fastidieux. Et il y a un cas spécifique qui se produit si x est quelque chose que nous n'avons pas pensé ou si nous ne voulons pas définir un cas pour cela, et c'est ce qu'on appelle par défaut. Et par défaut se produit. Ainsi, par exemple, disons le journal de débogage. Je ne sais pas ce qu'est X. Un peu bizarre. Et puis une pause, tu l'es aussi, non ? Donc, dans ce cas, évidemment par défaut serait, le cas serait par défaut parce que x 75 ne tombe dans aucun de ces quatre cas. Et on peut vérifier ça. S' assurer que nous sommes sur la conférence de commutation. Et jouons et voyons si ça marche. Je ne sais pas ce que X est un peu bizarre. Voilà, tu y vas. Parce que x était quelque chose pour lequel aucun cas n'a été défini. Donc oui, c'est fondamentalement l'instruction switch. Il a certaines utilisations dans des cas spécifiques. Cependant, il est généralement réservé pour peut-être où vous avez trois ou quatre cas prédéfinis, où cela ne dure pas trop longtemps. Et aussi généralement des entiers et flottent aussi. Donc n'utilisez jamais de cas de commutation si vous avez des flotteurs ou des doubles parce que cela, je veux dire, ne fonctionne littéralement pas. Ou ma piste au désastre. Les entiers r peuvent être bien. Cependant, généralement les cas de changement sont réservés à des choses comme les énumérations, que nous allons jeter un oeil un peu plus tard, où cela a fondamentalement des valeurs prédéfinies. Donc c'est une sorte d'idée. Mais je voulais vous montrer la déclaration Switch. Il peut être utile et peut être fondamentalement interchangé avec une instruction if. Et oui, c'était tout pour cette conférence. J' espère que vous l'avez trouvé utile s'il n'y a pas de questions, comme toujours, n'hésitez pas à poser et je serai sûr de répondre. Et oui. 16. (C) Pendant la boucle: Bon, bienvenue à l'introduction du C-Sharp ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil à la boucle while. Donc, nous allons à la section suivante, disons, qui est boucles. Et voyons juste ce que nous pouvons voir ouvrir le script while loop. J' ai donc déjà défini un entier x égal à cinq. Et maintenant ce qu'on veut, peut-être, ce qu'on veut, c'est qu'on veut verrouiller ce x, peut-être beaucoup de fois, non ? Donc on veut verrouiller ça. Donc en ce moment nous avons regardé 6 fois, mais en fait, je veux l'enregistrer 100 fois, non ? Donc, je dois copier et copier à nouveau et copier ça. Je veux dire, c'est ridicule, non. Évidemment, c'est beaucoup trop. Et peut-être en fait ce que je veux entre ces serrures, je veux en fait augmenter ça. Donc je veux regarder cinq, puis je veux regarder six et ensuite 78. Et je veux dire, c'est, c' est le taux de folie. Bien sûr que c'est de la folie. C' est pourquoi nous avons des boucles. Une boucle répète simplement une section spécifique de code. Disons le nombre de fois que nous avons défini. Et dans ce cas, une boucle while fait quelque chose alors qu'une certaine expression booléenne est vraie. Donc, nous allons juste écrire le while, une boucle, le mot-clé while ici, et nous allons juste taper deux fois et comme vous pouvez le voir, il génère des parenthèses, des parenthèses ici et des parenthèses bouclés. Donc, tout ce qui est à l'intérieur des crochets bouclés est exécuté tant que ce qui est à l'intérieur des parenthèses est vrai. Dans ce cas, alors que true fonctionnera toujours et continuera à fonctionner. Et ça va planter l'unité si on fait ça. C' est donc une des choses que nous devons surveiller. Il devrait toujours y avoir une bonne condition au lieu d'une boucle while. Sinon, il pourrait se transformer en une boucle sans fin. Et cela va alors à son tour, se transformer en Unity crash. Crois-moi, ça va t'arriver à un moment donné. Pendant que vous programmez quelque chose avec des boucles while. Ça m'est arrivé. Et qui sait ? D' ici la fin de cette conférence, peut-être que ça arrivera aussi. J' en doute, mais on ne sait jamais. Donc, mettons dans x est plus petit ou égal à 10. Et bien que cela soit vrai, nous allons déboguer le journal de points x log x, et ensuite nous allons augmenter x. Donc, si nous n'aurions pas cette augmentation ici, alors il continuerait à se déconnecter 55, 55. Mais cela ferait avec cette To Eternity, qui bien sûr ne fonctionne pas, et donc l'unité s'écraserait. Ce n'est pas ce qu'on veut. Par conséquent, nous allons augmenter X chaque fois que la boucle while s'exécute. Donc, il va fonctionner comme n'importe quel autre type de code de haut en bas. Donc, il va l'imprimer ou l'augmenter. Vérifier un est toujours une chose. Si c'est résoudre un déconnecter, augmentez-le, vérifiez à nouveau et ainsi de suite, ainsi suite jusqu'à ce que nous ayons terminé. Et ajoutons simplement un débogage après ici. Ça va dire hors de la boucle. La boucle, non, hors de la boucle. Voilà, tu y vas. Et oui, nous allons faire ça donc ce que nous attendons. Donc, une chose qui est toujours une bonne idée à regarder, ce que nous attendons à voir dans la console. Donc je m'attends à voir 5, 6, 7, 8, 9, 10. Oui. Je crois. Je vais voir 10 ? Oui, je vais voir 10, je crois. Et puis hors de la boucle. Donc cinq à dix. Et puis de là, c'est ce que je pense à la senior et à m'assurer que nous sommes à la conférence 13. Alors que Voyons voir si c'est le cas. 05678910. Et hors de la boucle, n'est-ce pas génial ? C' est aussi tout aussi rapide, très important. Pensez à ce que vous voulez voir dans la console. Alors pensez à vos attentes, puis regardez ce qui sort. Et si votre attente et tout ce qui est sortie ou verrouillé est satisfait, génial, vous avez une pensée à ce sujet de la bonne façon. S' il y a une divergence, alors essayez de comprendre, eh bien, qu'ai-je fait de mal ? Ou par exemple, un facile, Disons erreur ou, ou une chose facile à faire est au lieu d'avoir x plus petit égal à 10, nous avons, il est plus petit 10. On est comme, eh bien, il va toujours sortir le 10, non ? Il va toujours passer de cinq à 10 parce que tant qu'il est plus petit que 10, et bien sûr il ne sort pas le 10, parce que dès qu'il est 10, il n'est plus inférieur à 10. Par conséquent, il ne va pas, il ne va pas exécuter ce qui est dans le, dans les crochets bouclés. Donc c'est quelque chose à surveiller. Ce n'est pas spécifique à la boucle while elle-même, mais juste des conseils généraux. Et il y a une seconde, disons. Un autre que je fais avec une boucle while qui sorte de liens dans le plus petit, plus petit que ou égal. Et c'est la boucle do while. Donc, nous pouvons juste mettre en faire et puis appuyer deux fois sur Tab. Et comme vous pouvez le voir, dans ce cas, nous allons avoir un mot clé do ici, suivi par les crochets bouclés, puis le sans-fil à l'arrière. Mettons x est plus petit que 10. Et ensuite on peut faire la même chose. Alors faisons exactement la même chose. Et ne le faisons pas comme si on ne le faisait pas cette année. Droit ? En fait, sortons vite ça d'ici. Et la boucle Do-while. Voyons ce qui se passe. Donc, nous avons vu précédemment que la boucle while avec x plus petit que 10 qui a imprimé cinq à neuf. Et dans ce cas, il va imprimer cinq à neuf une fois de plus. Intéressant, n'est-ce pas ? Eh bien, qu'est-ce qui est aussi intéressant ? Si nous gardons ça, alors nous allons tourner notre X en dix. Donc cette fonction est exactement de la même manière, n'est-ce pas ? Donc, cela va aussi évaluer cela. Et puis mettons ça ici. Disons, ok, x est, dès qu'on sera hors de la boucle, x sera égal à 10. Donc, le temps n'est pas, n' est jamais une chose. Donc X va toujours être plus grand que 10, jamais plus petit que 10. Cependant, si nous regardons cela, il va en fait imprimer 11 ici. Et si on double-clique ici, on va voir que c'est ce qui est imprimé. C' est un peu bizarre, n'est-ce pas ? Pourquoi cela arriverait-il ? Parce que x n'est jamais plus petit que 10 à ce moment. Et je veux dire, c'est, c'est assez évident parce qu'il est en fait imprimé 11. Eh bien, Do-while fait celui-là, donc il y a la commande DO pour ainsi dire. Ils font mot clé, va exécuter les choses à l'intérieur des crochets bouclés une fois. Et puis il va évaluer la condition while. Et puis il fonctionne fondamentalement comme une boucle while normale pourrait être utile à un moment donné. Personnellement, je l'ai rarement utilisé. Et aussi personnellement, j'ai aussi rarement utilisé alors que les boucles, parce qu'elles le font, au moins quand je les utilise ont tendance à planter l'unité. Alors soyez prévenu, mais ne le faites pas, ça ne va pas être trop mal parce habitude, tant que vous économisez assez de temps, alors ça ira. Mais oui, c'est pas trop mal en fait. Je voulais juste le mentionner. Et oui, c'est essentiellement un bref aperçu de la boucle while. J' espère que vous l'avez trouvé utile et j'apprécierais vraiment un commentaire de votre part. Et s'il y a des questions comme toujours, les frais pour la tâche et je serai sûr de répondre. Et oui. 17. (C) Pour la boula boucle: Bon, bienvenue à l'introduction du C-Sharp ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil à la recherche de boucles. Donc on a vu une boucle sauvage. Alors, quelle est la boucle for ? Eh bien, jetons un coup d'oeil en ouvrant le script for-loops. Eh bien, nous allons jeter un oeil à la boucle for sans rien d'autre. Donc nous allons juste taper quatre et nous allons le faire manuellement d'abord. Donc, le premier composant à l'intérieur d'une boucle for est un entier. Dans ce cas, nous allons appeler cet entier I égal à 0. Je vais mettre un point-virgule. Ensuite, nous devons choisir une, une expression. Disons que je suis plus petit que cinq et ensuite je plus, plus. Et puis mettre dans les crochets bouclés aussi bien. Qu' est-ce que ça veut dire ? Ça veut dire que je commence à 0. Il va à cinq. Et ça augmente, je augmente d'un. C' est l'idée parce que, comme nous l'avons appris, je plus des augmentations. Dans ce cas, je par un. Je commence à 0. Et tant que cela est vrai, la boucle continue. Donc celui-ci compterait de 0 à 2, 1, 5, 4, 5 à 4. Regardons ça. Donc déboguer le journal des points et ensuite moi . Et puis nous allons passer par ça. À quoi ça ressemble. Alors verrouillons ça et voyons ce que la console a pour nous. Il devrait verrouiller 0 à 4. Et comme vous pouvez le voir, 0, 1, 2, 3, 4. Super, c'est plutôt bon. Et puis réfléchissons à ça. Donc on commence à 0, c'est facile à voir. Donc on va imprimer 0. D'accord ? Ensuite, on va augmenter I d'un. Et puis on va évaluer, Hey, je suis plus petit que cinq ? Oui, ça l'est. D' accord. Imprimantons-le. Et puis il va être 2 est à plus petit. Oui. Alors ça va être trois petites zones pour oui. Et puis ce sera 55 ans. Je ne sais pas si vous avez entendu, mais ce n'est pas plus petit que 5. Il est en fait égal à 5. Par conséquent, nous sommes hors de la boucle à ce point. Et c'est pourquoi cinq ne sont pas inclus dans l'œil, pour ainsi dire. Dès que j'aurai cinq, on va sauter hors de la boucle. Donc, c'est vraiment utile pour compter, et c'est aussi utile pour d'autres choses que nous allons jeter un oeil très bientôt dans la prochaine conférence déjà. Cependant, les for-boucles, certainement génial. Nous pouvons aussi compter à rebours. Alors faisons ça. Donc, faisons un entier 10. Et disons, eh bien, je devrais être plus grand que 0. Et puis on va dire que je moins moins. Et on va l'imprimer. Et cela devrait compter de, eh bien 10, certainement écrire 200. Sache encore une fois, pense à ça. Si nous avons dans pas, disons signe plus grand ou égal ou plus petit ou égal dedans. Alors généralement que le numéro ici n'est pas inclus. Si nous avons un plus grand ou égal que le 0 serait inclus. Dans ce cas, ça va être un. Et puis nous allons dire aussi à l'envers, parce que cela compte à l'envers. Donc, nous allons, la sortie devrait être de 0 à quatre, puis de 10 à un. Voyons si c'est vraiment le cas. Commençons. Alors 0 à 4 et 10 contre 1, allez. Super. Droit ? Donc c'est la boucle pour. À mon avis personnel, généralement plus polyvalent que la boucle while. Mais je pense que cela doit aussi faire un peu avec la préférence. Je pense qu'il est applicable dans différentes situations aussi, donc, eh bien, c'est tout pour la boucle for, une partie très importante de la programmation, certainement. Donc, s'il y a des questions, comme toujours, hésitez pas à poser et je serai sûr de répondre. Et oui. 18. (C) Pause pause et continuer aux mots clés: Bon, euh, bienvenue à l'introduction du C3b pour le cours de l'unité. Et dans cette conférence, nous allons jeter un oeil à deux mots-clés. Ceux-ci vont être interrompus et continuer. Maintenant, nous avons déjà vu un peu du mot-clé break dans la conférence d'instruction switch. Cependant, c'est en fait l'application FOR boucles. Dans ce cas, nous allons jeter un oeil à la pause et continuer les mots-clés à l'intérieur de la boucle for-. Cependant, en particulier le mot-clé break pourrait également être utilisé dans une boucle while. Alors ouvrons juste le script de pause et continuez ici. Et comme vous pouvez le voir, nous avons en fait 24 boucles qui font exactement la même chose. En fait, on va compter de 0 à 9 dans les deux. Et pourtant, ça va marcher. Cependant, ce que nous pouvons faire, c'est que nous pouvons utiliser l'un de ces mots-clés, les mots-clés. Donc, par exemple, disons que si je suis égal à quatre, alors ce que nous allons faire, c'est que nous allons continuer. Alors, qu'est-ce que ça fait ? Eh bien, le mot clé continue dit essentiellement , d' accord, passons au prochain I. Donc nous allons sauter l'impression ou la consignation des quatre. Et on va passer directement de trois à cinq. Donc, voyons juste, Copions rapidement ceci hors d' ici pour que la console ne soit pas encombrée. Et une fois de plus, assurez-vous que nous sommes sur Lecture 15 pause et continuer. Comme vous pouvez le voir, nous avons sauté de trois à cinq. Parce que sur un quatre, donc je suis égal à 4. Ce que nous avons fait est que nous avons continué, Continuer, fondamentalement saute juste dans la boucle à nouveau, ignorant tout ce qui vient après à l'intérieur de la boucle. Donc, fondamentalement, il fait froid à nouveau et toutes les lignes après il sont ignorées. Oui, c'est le mot-clé continue. Maintenant, passons à la seconde boucle pour. Et disons par exemple, si je suis égal à cinq, alors ce que nous voulons faire c'est rompre. Faisons-le correctement pour qu'il ait l'air agréable. Ouais, casser. Nous l'avons vu avant, comme je l'ai dit dans l'instruction switch à l'intérieur d'ici, le break signifie simplement au lieu d'une boucle, break signifie que la boucle s'arrête. Donc break dit, Ok, nous allons immédiatement sauter à l'arrière de l'organisation, à la fin de la boucle est la même que si l'expression booléenne ici serait fausse. Donc, nous sortons de la boucle immédiatement. Voyons ça. Ce que nous devrions voir, c'est que nous devrions voir 0, 2, 3, 5 à 9. Ensuite, nous devrions voir 0, 2, 4 parce que dès que j'ai cinq ans, nous allons sortir de cette forme. Droit ? Voyons si c'est vraiment ce que nous allons voir. Ce que je suis assez confiant que c'est. Donc, il est de 0 à 3 et nous allons sauter de 5 à 901234 et puis c'était tout. Ouais, donc c'est essentiellement l'idée du mot-clé continue et break. Il y a des gens qui disent que ce n'est pas nécessairement la meilleure pratique parce que cela peut parfois être déroutant, surtout si vous avez peut-être une longue boucle FOR et que vous avez beaucoup de continue et de ruptures là-dedans avec peut-être encore plus si les déclarations et tout cela, alors il pourrait parfois être un peu déroutant pour les boucles simples. Et alors que les boucles cassent ou continuent mot clé ne va pas être trop mauvais. Je ne pense pas. Mais oui, donc c'est tout pour les mots-clés break and continue. Aussi des parties importantes d'avoir vu au moins et de savoir pour les boucles. Donc, s'il y a des questions, comme toujours, n'hésitez pas à poser et je serai courte réponse. Et oui. 19. (C) C C Arrays: Bon, bienvenue à l'introduction pointue C pour le cours d'unité. Et dans cette conférence, nous allons parler de tableaux. Maintenant, les tableaux sont une partie essentielle de la programmation. Et le premier sujet qui est un peu plus complexe et compliqué. Donc je vous implore certainement de regarder cette conférence deux fois, parce que cela a un peu plus dedans. Et bien sûr, s'il y a des questions, n'hésitez pas à poser. Mais nous allons juste entrer. En ouvrant le script. J' ai déjà préparé trois cordes ici. Comme vous pouvez le voir, les élèves 0, l'élève 1, et l'élève 2, John, July et Ryan. Ce sont, disons, les adresses e-mail de mes étudiants, par exemple ici. Et maintenant ce que je veux, c'est que je veux les envoyer par e-mail ou que je veux sortir les e-mails, disons simplement, donc bien sûr, nous pouvons faire le débogage des points et ensuite nous pouvons dire étudiant, étudiant 0, et ensuite nous pouvons dire étudiant un. Et puis on peut dire étudiant aujourd'hui que tu pars, maintenant j'ai sorti ça. N' est-ce pas génial ? Eh bien, c'est bon. Mais disons que j'ai 100 de ces emails qui vont être un peu plus dur que, eh bien, nous avons appris quelque chose que nous pouvons faire. Nous pouvons prendre cette boucle quatre et nous pouvons dire, eh bien, passons à travers cela et ensuite nous pouvons peut-être dire journal de débogage et ensuite mettre le je ici sont quelques-uns, non, ça ne marche pas. Évidemment, ça ne marche pas, n'est-ce pas ? Donc ça, malheureusement, ça ne marche pas. Donc nous ne pouvons pas simplement les sortir avec une boucle for et nous ne pouvons pas, nous pouvons les itérer, non ? Donc, c'est fondamentalement ce que nous voulons. Nous voulons, en quelque sorte, nous voulons énumérer quelque chose comme une liste. Et c'est là que la théorie entre en jeu. Donc nous pouvons, disons init, un tableau, non ? Donc, l'idée étant qu'un tableau est fondamentalement une liste d'un certain type. Dans ce cas, nous allons faire une, une zone de chaîne. Donc, nous allons écrire la chaîne, juste le mot-clé de chaîne normale comme nous le ferions avec toute autre variable, variable de chaîne. Et puis nous allons taper ces parenthèses et ensuite le nom de la variable, étudiant, hommes, disons. Et puis nous pouvons faire un, nous pouvons initialiser ce nouveau tableau en le mettant entre crochets bouclés. Et puis nous pouvons mettre, par exemple, John sur gmail.com. Et puis le second sera juillet sur gmail.com. Et puis le troisième sera Maria chez Gmail pour example.com. Et puis nous aurons aussi Ryan sur gmail.com. Allons juste zoomer un peu. Et puis à la fin, un point-virgule. Et maintenant c'est, comme vous pouvez le voir, pas d'erreurs, tout va bien. Et maintenant, nous avons réellement initialiser ce tableau est également une autre façon que nous pouvons initialiser ce tableau. C' est donc explicite avec quatre chaînes spécifiques. Dans ce cas. Nous pouvons également dire, par exemple, un tableau entier de certains nombres comme ça. Il va être égal à new int. Et puis de cette façon, donc les crochets, puis à l'intérieur de ces parenthèses, nous devons réellement écrire combien. Des nombres, ou dans ce cas, alors combien d'entiers y a-t-il ? Alors mettons-nous en 5. Donc celui-ci serait, peut avoir cinq entrées. Et puis nous pouvons assigner quelque chose à ça. Et comment on lui attribue quelque chose ? Eh bien, on peut juste prendre le nom de la variable. Donc quelques chiffres. Nous mettons une fois de plus dans les parenthèses. Et à l'intérieur des parenthèses que nous prenons, nous mettons un nombre qui est l'index de l'entrée. Donc 0 signifie la première entrée. Donc, disons 10, et puis copions rapidement cela sur 1, 2, 34. Donc disons quelque chose comme 2054421337, quelque chose comme ça, non ? Très important. Les tableaux commencent là, comptent à 0. Nous l'avons déjà vu avec les ficelles. Et je voulais le mentionner encore ici. Si nous examinons les étudiants de sexe masculin, par exemple , nous avons quatre éléments. Donc, la taille ou la longueur de ce tableau de chaînes, étudiants mâles est quatre. C' est bon, c'est bon. C'est compréhensible. Cependant, le premier élément ici, John edit gmail.com. C' est en fait à l'index 0. Donc, une fois de plus, nous commençons à compter à 0. Donc c'est 0, 1, 2, 3. En somme, il y a encore quatre éléments. Cependant, nous commençons juste au début de compter à 0. Donc maintenant, en regardant cela, eh bien, nous voulions imprimer ou enregistrer toutes nos adresses e-mail, et maintenant nous pouvons le faire. Alors faisons juste une nouvelle boucle pour. Et c'est déjà long ici. Ce que nous pouvons faire, c'est que nous pouvons, eh bien, faisons juste quatre, parce que nous savons que nous avons pour les emails des étudiants, c'est assez facile. Et nous pouvons dire que les étudiants de débogage sont des hommes. Et puis ici, nous avons assigné des valeurs. Nous pouvons également simplement récupérer les valeurs en appelant simplement les crochets faisant. Et puis à l'intérieur d'ici, on met dans les yeux parce que c'est le nombre qui change. Donc ça va passer de 0, 1, 2, 3, et le 4 n'est jamais atteint. On l'a déjà vu. Donc notre production devrait être, tout d' abord, John, July, puis Ryan Gmail, puis June, July Maria Ryan. Parce que d'abord ceux vont être sortis ici apparaissent. Ensuite, la boucle for va sortir. Donc, nous allons voir à nous assurer que nous sommes sur les tableaux Lecture 16. Commençons ça et comme nous pouvons le voir, June et Juillet, Ryan, sont les trois que nous avons fait manuellement et puis nous avons John, July, Maria et un Ryan. Super. Eh bien, je veux dire, c'est incroyable. Alors ajoutons un autre. Vous savez, le Cloud est également rejoint. Je veux dire, c'est plutôt cool, non ? Donc c'est vraiment sympa. Faisons en sorte que tout le monde soit là et que tout le monde soit inclus ici aussi. Commençons simplement cela et tout fonctionne parfaitement bien comme vous pouvez le voir très clairement. Mais maintenant, eh bien, tout d'abord. Oui, mais en fait, les nuages n'étaient pas sortis. Donc c'est bon, c'est un peu bizarre. Mais maintenant, oh non, regarde ça. Nous sommes en train de perdre trois de nos étudiants rencontrés. Donc seuls John et July sont, vous savez, rester pour ce semestre. Je veux dire, c'est, tu sais, ça peut arriver. Peut arriver, mais il n'y a pas de problème qui est oui, il y a un indice de problème hors de portée. Alors qu'est-ce que c'est ? Eh bien, ce qui se passe ici, c'est que tout d'un coup nous essayons d'accéder à quelque chose qui n'existe pas. Dans ce cas, les étudiants mâles n'ont que deux éléments. Donc, nous ne pouvons compter que de, donc 0 et 1, deux éléments. Mais ici, nous essayons en fait d'accéder aux éléments 3, 4, 5, et ainsi de suite. Ça ne marche pas parce que, eh bien, ça n'existe pas. Alors, qu'est-ce qu'on peut faire à ce sujet ? Parce que nous l'avons explicitement dit pour, ok, je vais changer ça à deux. Mais chaque fois que l'étudiant change, nous devons entrer manuellement et changer cela. Eh bien, ça ne marche pas. Bien sûr, il y a quelque chose pour cela et ensuite nous pouvons aller étudiants hommes de cette longueur. Et c'est toujours la longueur des étudiants de sexe masculin. Et maintenant, ça va passer par ça. Maria, Ryan et Klaus nous ont rejoints. Et maintenant Klaus sera également sortie parce que nous l'avons pris en compte. Voyons voir, vous y allez. Fermez sur gmail.com, c'est aussi la sortie. Donc oui, c'est, c'est l'idée de tableaux. Il s'agit essentiellement d'une liste. Il peut être de n'importe quel type de variable, donc n'importe quel type de données, tant que vous mettez les crochets après, peut être un tableau. Et dans ce cas, explicite. Lee a mis les ficelles. Voici quelques entiers. L' affectation fonctionne très similaire à l'obtention de la sortie de tout ce qui est là dedans. Ce qui est également important, c'est que lorsque vous avez défini le nombre d'entrées dans un tableau, vous ne pouvez pas modifier le nombre d'entrées, sorte que cela reste le même. Vous pouvez modifier ce qui est écrit à cette position, mais vous ne pouvez pas modifier le nombre d'entrées dans un tableau. Maintenant, il y a d'autres choses que nous pouvons utiliser qui ont effectivement ce genre de liste dynamique dedans. Ce sont d'autres structures de données que nous allons examiner plus tard. Cependant, les tableaux en ce moment sont au moins un peu importants. Ce quelque chose que nous pouvons utiliser plus tard qui est un peu plus facile à comprendre à mon avis. Cependant, en ce moment, les tableaux sont la chose. Je vous encourage certainement à bien regarder cela pour vraiment essayer de comprendre ce qui se passe. S' il y a des questions poser définitivement. Parce que c'est comme l'un des, Je dirais l'un des sujets les plus importants, mais c'est certainement un sujet important. Et juste pour un petit peu à part ici, je peux en fait raconter une histoire amusante à ce sujet. Donc, quand je commençais à apprendre la programmation et l'ère est venue, je, au début, je ne les comprenais pas. C' est pourquoi je prépare ça en disant, ok, c'est peut-être un peu plus dur et un peu plus complexe. Et donc je ne les ai pas compris au début. Et je ne pouvais pas comprendre ce que je faisais de mal. Et puis j'ai dit, je n'utiliserai jamais les zones de toute façon. Je n'en ai pas du tout besoin. Ça n'a pas d'importance. Je vais toujours le faire comme ça. Et bien sûr, je veux dire, tout d'abord, c'est comme la mauvaise façon d'aborder ça d'une façon ou d'une autre. Tu ne devrais jamais faire ça. Si vous essayez d'apprendre quelque chose de nouveau. Ce n'est certainement pas la bonne façon d'aborder cette question. Mais dans cela spécifiquement, il y a juste certaines choses que vous ne pouvez pas faire si vous n'utilisez pas un tableau ou comme nous avons plus tard que nous allons voir plus tard une liste ou une sorte de structure de données différente. Parfois, vous devez utiliser ces structures de données qui sont différentes de simplement écrire stupidement chaîne ligne par ligne. Ça marche, mais à un moment donné, ça devient très, très méchant, mauvais, c'est tout simplement pas bon. C' est pourquoi je veux vraiment vous encourager à essayer de comprendre cela. Peut-être regarde-le une ou deux fois. Et s'il y a des questions, n'hésitez pas à poser. Et comme toujours, je serai sûr de répondre. Et j'espère que vous avez trouvé cela utile. Et oui. 20. (C) Grandes plaques multidimensionnelles en C ?: Bon, bienvenue à l'introduction pointue C ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil rapide sur les tableaux multidimensionnels. Maintenant, après avoir regardé les tableaux, maintenant nous allons jeter un oeil aux tableaux multidimensionnels. Maintenant, j'ai mentionné que c'est juste un aperçu très, très rapide, juste un coup d'oeil sur la façon dont ceux-ci, comment ils ont l'air, et juste un peu de la façon dont ils fonctionnent. Et ouvrons simplement le script multi-dimensions ici. Et j'ai déjà défini un tableau multidimensionnel. Comme vous pouvez le voir, nous avons juste mis une virgule entre crochets. Et puis à l'intérieur de celui-ci, nous définissons effectivement un tableau, puis la zone suivante est également définie. Et puis un autre crochets bouclés autour de là. Donc, en gros, il y a deux zones. Au lieu d'un tableau, vous pouvez le considérer comme un tableau de tableaux. En théorie, c'est quelque chose que vous pouvez penser. Ou vous pouvez penser à cela comme une table où vous avez différentes lignes. Donc, si nous devions l'écrire comme ça, par exemple, dire quelque chose comme ça, alors vous pourriez imaginer que c'est la première vente, deuxième cellule et ainsi de suite et ainsi de suite. Et puis tout d'un coup, c'est beaucoup plus logique quand on pense à ça. Donc, vous pouvez avoir, vous avez deux coordonnées pour décrire ces cellules. Et puis ce serait tout simplement 0, 0. Et cela a un sens absolu. Et puis c'est quelque chose comme 0, 3 par exemple, et ainsi de suite et ainsi de suite. Et nous allons juste, je vais copier quelque chose. Donc, si nous regardons cela, donc nous pouvons une fois de plus obtenir le contenu ou les éléments du tableau simplement en mettant le bracket puis en écrivant dans les indices en ce moment parce que nous avons bien sûr besoin de deux indices dans ce cas . Et 03 produira quelque chose à partir du premier tableau. Donc, ce 0 notifie le premier tableau. Encore une fois, nous commençons à compter à partir de 0, puis les trois signifie simplement 0123. Par conséquent, il va sortir 25. Et le second, ce sera le deuxième tableau ou celui à la position 1, plutôt un index. Et puis avec l'index deux, donc on va avoir 1, 0, 1, 2. Ça va ouvrir 5 000. Voyons si c'est vraiment le cas. S' assurer que nous sommes sous la conférence 17. Et la sortie est de 25 et 50 mille, exactement comme nous l'avons imaginé. Et il y a deux choses que nous avons vu la longueur et maintenant il y a quelque chose d'autre qui est le rang. Donc, c'est fondamentalement combien de lignes il y a. Donc, comme vous pouvez le voir que ce sont essentiellement les lignes. Cela a le nombre de réseaux de voies respiratoires intérieures que vous pourriez décrire comme ça. Dans ce cas, Rose, je pense que l'abstraction de penser à un tableau multidimensionnel comme une sorte de peut-être même une feuille de calcul Excel est en fait très utile. Et ce que nous pouvons aussi faire, c'est que nous pouvons faire pour les boucles. Et je vais rapidement copier aussi cela sur m. Et ce serait un deux pour les boucles à l'intérieur de l'autre. Celui qui passe par les lignes fondamentalement, puis celui qui passe par chacun des éléments eux-mêmes. Bien sûr, dans ce cas, les éléments sont la longueur. Donc la longueur est la totalité de tous les éléments, non ? Nous avons huit éléments ici divisés par le nombre de lignes là-bas. Bon, donc chaque ligne a quatre éléments, comme vous pouvez le voir clairement. Nous devons donc diviser le nombre d'éléments par le nombre de lignes. C' est ce que fait ce calcul ici. Et puis cela fonctionne était également très important est que chacun des tableaux internes, où chacune des lignes doit avoir exactement le même nombre d'éléments que les autres. Donc, si je fais cela, alors comme vous pouvez le voir, un initialiseur de tableau de longueur 4 est attendu. Donc, nous avons réellement besoin de quatre éléments dans chacun des tableaux. Donc, si je devais ajouter un autre tableau, nous avons aussi besoin de quatre. C' est juste rapidement mentionné. Voyons juste la sortie pour cela aussi. Et puis nous avons fondamentalement fini avec des tableaux multidimensionnels. Je voulais juste te montrer ça rapidement. Comme vous pouvez le voir, 10, 15, 20 et 25. Donc la première, la première rangée est imprimée, puis 5500, cinq mille, cinquante mille, et ensuite la seconde est imprimée. Donc c'est un peu sympa. À mon avis. Et mon expérience, il est très rare que des tableaux multidimensionnels soient utilisés. Cependant, je voulais vous les montrer parce qu'ils ont une certaine application dans certains cas. Cependant, je ne m'inquiéterais vraiment pas s'il y a certaines choses que vous ne comprenez pas tout à fait sur ce sujet, n'est pas trop mal, comme ce n'est pas si important. zones elles-mêmes sont beaucoup plus importantes que la compréhension des tableaux multidimensionnels. C' est comme un bonus. C' est bon de savoir, Il est bon d'avoir vraiment pas nécessaire. Mais de toute façon, si vous trouviez cela utile, j'apprécierais vraiment un commentaire de votre part. Et s'il y a des questions, bien sûr, vous pouvez toujours poser, je serai sûr de répondre. Et oui. 21. (C) C C Listes de listes de c C C C : Bon, bienvenue à l'introduction pointu C pour le cours. Et dans cette conférence, nous allons jeter un oeil aux listes. Donc, après avoir examiné les tableaux, puis juste un aperçu rapide des tableaux multidimensionnels. Maintenant, nous allons examiner des listes qui vont nous rendre la vie environ 120% plus facile. Jetons donc juste un coup d'oeil au script de listes juste ici. Et tout d'abord, souvenons-nous des tableaux. Au lieu des zones. Nous avions différentes adresses e-mail des étudiants à titre d'exemple ici, défini. Et c'était aussi facile que de mettre le, le type de données, puis les crochets. Et puis nous avons eu un tableau d' une liste est un peu plus compliqué ou un peu plus bizarre peut-être. Mais définissons juste une liste. Initialisons une liste. Donc on va juste écrire dans la liste. Ensuite, nous allons faire ces crochets angulaires. Et à l'intérieur de ces crochets angulaires, nous allons écrire le type de données que nous voulons enregistrer là-bas. Donc, dans ce cas, une corde et on va appeler ça des mâles. Ensuite, aller à égalité nouvelle liste de type chaîne, puis parenthèses et un point-virgule pour le terminer. C' est ainsi que vous initialisez essentiellement une liste. Droit ? Donc maintenant, nous avons une nouvelle liste comme le nom de la nouvelle liste suggère de chaîne de type, donc nous pouvons maintenant y ajouter. Alors regardons quelques méthodes que nous pouvons appeler pour cette liste. Donc, nous pouvons, par exemple, dire mâles point ajouter, comme vous pouvez le voir. Et puis on peut écrire, par exemple, peut-être que Jonah n'est plus chez Google, peut-être qu'il est chez Yahoo à ce stade. Je ne sais pas pourquoi, mais qui sait ? Et puis nous allons juste copier ça quelques fois, puis ajouter quelques sortes de juillet et puis nous allons ajouter Ryan à nouveau et ensuite Maria. C' est donc la méthode add, comme vous pouvez le voir clairement. Maintenant, la première chose à laquelle vous devriez penser en arrière était, attendez une seconde. Nous avions, nous devions définir combien d'éléments ils étaient dans un tableau. Exactement. Nous n'avons pas à le faire dans une liste. Une liste est dynamique. Ainsi, vous pouvez avoir 0 éléments et vous pouvez ajouter plusieurs éléments, puis vous pouvez plus tard sur la ligne, vous pouvez également supprimer des éléments. Et oui, c'est, c'est une des bonnes choses, ce sont des choses formidables sur les listes. Donc, nous allons juste nous déconnecter, tout d'abord, juste les hommes et ensuite aussi déconnecter les mails 0. Donc, encore une fois, le même accès, le même opérateur d'axe que nous avons vu avec le tableau, n'est-ce pas ? Juste les parenthèses, puis le nombre qui indique l'index de ce que nous voulons. Dans ce cas, il sera tiré sur yahoo.com. Et puis on verra ce qui se passe si on déconnecte les hommes, juste pour voir. Alors nous allons appuyer sur le bouton de lecture et voir. Ok, donc on va la liste générique des collections système. Donc quelque chose qui ne nous est pas vraiment utile, pas vraiment. Cependant, ici, nous pouvons effectivement voir John à yahoo.com obtient. Le journal. Lorsque nous déconnectons le premier élément de la liste, ou le 0ème élément de la liste. Je suppose. Nous pourrions également réaffecter des valeurs. Donc réassigner des valeurs, c'est très similaire à la, en fait c'est exactement la même chose quand nous l'avons fait avec le tableau. Voyons voir, en fait, John est revenu. Donc John est à nouveau chez Gmail. Donc, dans ce cas, l'élément John at yahoo.com change à John at gmail.com. Nous pouvons également supprimer un article. Donc, supprimez ils vont supprimer un élément. Et ce serait si nous appelons les mâles dot remove. Et puis on peut enlever. Donc on peut lui passer une chaîne. Donc nous pouvons dire, ok, je veux qu'une chaîne spécifique soit supprimée. Ainsi, par exemple, Juillet sur yahoo.com. Maintenant, pour que cela fonctionne, nous devons bien sûr savoir quel élément nous voulons supprimer de ceux qui ne le savent pas, mais nous connaissons l'endroit où il est. Nous pouvons aussi dire mâles point enlever à et ensuite mettre dans un. Donc c'est équivalent. Maintenant, bien sûr, je ne peux pas le faire l'un après l'autre parce qu'après que nous avons enlevé le Juillet, Ryan All d'un coup devient la chose qui se tient à la place un. Par conséquent, ça ne marche pas. Si nous voulons la longueur d'une liste, nous pouvons aussi l'obtenir. Donc, ce serait, par exemple, important pour, pour les boucles ou quelqu'un comme ça. Ensuite, nous utilisons le compte. Donc, la variable count est ce dont nous avons besoin. Donc c'est la longueur. Longueur. Parfois, certaines personnes l'appellent aussi la taille ou le nombre de la liste. Et dans différents langages de programmation, c'est presque interchangeable longueur, taille et nombre. Mais dans notre cas, c'est le comte en ce moment, dans ce script, il devrait être trois parce que nous avons supprimé un des éléments ici, à savoir Juillet sur yahoo.com. Et puis nous pouvons aussi effacer la liste. Donc les mâles points-points clairs. Ce sera, cet appel effacera littéralement la liste. Donc ça va juste effacer complètement tout ce qui est là dedans. Et nous allons juste imprimer le compte après ça aussi. Voyons ce qui va se passer ici. Nous allons avoir ça. On n'a plus besoin de ça. On va imprimer John sur yahoo.com. Ensuite, nous allons réécrire le premier. Alors on va dire, Hey, combien, combien d'éléments il y a là-dedans ? Ça devrait être trois. Et puis on va effacer la liste. Donc plus rien ne devrait être dans la liste et alors on devrait avoir 0. Au lieu de ça. Voyons si c'est le cas. Mais je suis assez confiant qu'ils vont ici. Donc, tout d'abord, nous imprimons John sur yahoo.com. Ensuite, nous avons trois éléments dans la liste. Après avoir supprimé l'un élément, puis après avoir effacé la liste, nous avons 0 éléments là-dedans, ils vont. Voilà donc quelques-unes des choses que nous pouvons faire avec les listes. Si vous regardez, donc si nous faisons mail stat, comme vous pouvez le voir, il y a quelques autres méthodes que nous pourrions appeler. Dans ce cas. Je voulais juste vous donner un bref aperçu de la liste. C' est si vous comprenez les tableaux, vous comprenez essentiellement les listes. Et ce qui est génial, c'est que les listes sont juste meilleures à presque tous les égards qu'une zone. Parce qu'ils sont dynamiques. Vous pouvez les ajouter. Et leur ensemble, je pense qu'il est beaucoup plus agréable d'utiliser les tableaux habituellement, non ? Donc, dans l'ensemble, je dirais qu'il est généralement préférable de toujours utiliser des listes. Parce que la libération no. Disons un impact positif de l'utilisation de tableaux par rapport aux listes. Il peut y avoir des choses très spécialisées, mais c'est comme avec presque tout. Tu sais, si tu demandes à 100 personnes, tu auras 100 opinions. Donc c'est parfois comme ça. Quoi qu'il en soit, c'est un bref aperçu de la liste en C pointu. J' espère que cela vous a été utile. Et s'il y a des questions comme toujours, hésitez pas à poser et je serai sûr de répondre. Et oui. 22. (C) C Dictionnaires en C C C : Bon, bienvenue à l'introduction C-Sharp pour le cours d'unité et cette conférence nous allons jeter un oeil à un dictionnaire. Maintenant, les dictionnaires sont essentiellement des listes avec un peu de torsion pour eux. Alors ouvrons le script du dictionnaire et voyons ce que nous pouvons voir. Alors, tout d'abord, comment définir ou initialiser un dictionnaire ? Eh bien, on va juste écrire un dictionnaire. Et puis une fois de plus, les crochets angulaires. Et maintenant, nous devons réellement spécifier deux types différents, ou pas deux types différents, mais deux types de types de données. Dans notre cas, nous allons faire une chaîne et une chaîne. Donc, ceux-ci sont séparés par une virgule. Maintenant, on va appeler ça les capitales. J' en ai les raisons, qui seront évidentes sous peu. Et puis est égal à nouveau. Et puis comme vous pouvez le voir, il nous donne déjà une suggestion ici que nous pouvons simplement remplir automatiquement en cliquant ou en appuyant sur le bouton Tab, en ajoutant les parenthèses et le point-virgule. Et puis on y va, on a un nouveau dictionnaire. Maintenant, un dictionnaire fonctionne de la manière suivante. Donc, il cartographie fondamentalement. Alors écrivons ça. Un dictionnaire mappe une clé. Dans notre cas, c'est une chaîne, non ? Parce que c'est le premier type de données que nous avons donné le dictionnaire à une valeur spécifique, qui est également une chaîne. Maintenant, c'est fondamentalement la, la valeur clé. La dynamique est appelée une paire de valeur clé parce qu'ils viennent en paires, n'est-ce pas ? Et cela sera maintenant montré avec des majuscules. L' idée étant que, bien, si vous avez un pays, ce qui serait la clé, vous aurez toujours une certaine valeur pour son capital. C' est joli, assez facilement compréhensible. Et puis nous pouvons simplement ajouter de nouvelles entrées ici. Par exemple, si nous mettons au Mexique, alors nous pouvons mettre à Mexico comme capitale. Et puis nous allons juste copier ça. Quelques fois. L' Allemagne serait Berlin, puis nous avons la France avec Paris. Et enfin, les Etats-Unis avec Washington DC. Voilà donc maintenant quelques exemples que nous avons ajoutés à cela. Nous avons vu précédemment dans le, la fois le tableau et la liste que nous pouvons obtenir certains éléments là-dedans en utilisant les parenthèses, puis en mettant maintenant tout l'index que nous voulons. Maintenant, dans ce cas, ça ne marche pas. Comme vous pouvez le voir clairement, 0 ne fonctionne pas car il veut réellement une clé spécifique, pas l'index. Donc, si nous mettons une chaîne à l'intérieur d'ici et disons l'Allemagne, par exemple, alors ce que nous allons obtenir est Berlin, parce que l'Allemagne est la clé de la valeur Berlin, z. Plus d'erreurs. Et si nous revenons ici en nous assurant que nous sommes à la conférence 19 et aux dictionnaires. Ensuite, nous pouvons voir Berlin se déconnecter parce que c'est en fait la valeur de la clé Allemagne. Donc, ce n'est pas différent d'avoir une liste. Mais au lieu d'avoir les clés être la position dans la liste, nous avons en fait quelque chose de différent. Nous pouvons également supprimer un article. Donc, par exemple, parce que je majuscules point supprimer, et ensuite on peut juste supprimer la France, non ? Et cela va en fait simplement supprimer cette entrée ici. Donc, alors nous ne pouvons pas vraiment obtenir le, obtient une valeur Paris hors de lui parce qu'il a réellement. Ensuite, supprimez toute l'année d'entrée. Et si nous allons ensuite pour le nombre de points majuscules, ce qui serait le nombre d'éléments à l'intérieur du dictionnaire. Cela devrait alors être 3 après que nous ayons supprimé la France. Comme vous pouvez le voir, c'est aussi facile que ça va. Ouais, et c'est fondamentalement un, au dictionnaire. Un dictionnaire incroyablement utile de beaucoup de façons différentes. Il peut essentiellement mapper un type de données à un autre type de données. Dans notre cas, nous mettons une chaîne à une chaîne. Bien sûr, il pourrait y avoir autre chose. Par exemple, nous pourrions avoir la chaîne à un entier, puis ce serait, par exemple, le nombre de personnes qui vivent dans le pays ou le PIB ou autre chose. Pour que nous puissions faire, nous pourrions faire toutes sortes de choses avec le dictionnaire. Je peux certainement dire qu'il est préférable de jouer un peu avec elle aussi. Il y a d'autres méthodes que vous pouvez appeler aussi. Eh bien, oui, c'est, c'est à peu près un bref aperçu des dictionnaires. Et j'espère que vous avez trouvé cela utile. S' il y a des questions, comme toujours n'hésitez pas à poser et je serai sûr de répondre. Et oui. 23. (C) Boucle de foreach Sboucles pour chaque pans: Bon, bienvenue à l'introduction C-Sharp pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil à la boucle pour chaque. Donc, cela va être une conférence très rapide juste sous peu regardant le, à un autre type de boucle. Donc, après avoir vu que nous pouvons utiliser des listes et nous avons vu comment nous pouvons fondamentalement les parcourir avec une boucle normale pour. Nous allons maintenant examiner une, une autre boucle. C' est ce qu'on appelle la boucle for-each. Donc, nous pouvons simplement taper un foreach comme un mot-clé. Et à l'intérieur des parenthèses, nous allons définir une nouvelle variable, dans ce cas une chaîne appelée mâle. Ensuite, nous allons écrire dans le mot-clé dans so i n, et ensuite nous allons taper la collection. Ça va être des hommes. Et puis à l'intérieur d'ici, vous allez avoir raison, déboguer dot log mâle et ils vont. Et c'est l'idée de boucle pour chaque idée est, vous pouvez simplement le lire à haute voix et cela va avoir du sens pour chaque corde mâle chez les hommes. Et puis on va faire ce qu'il y a à l'intérieur des crochets bouclés. Donc, dans ce cas, nous allons juste le déconnecter. Il pourrait y avoir d'autres choses que nous pourrions vouloir faire. Une chose qui est mentionnée dans pour chaque boucle, nous pouvons vraiment changer la collection. Nous pouvons changer les éléments eux-mêmes, mais pas la collection dans son intégralité. Donc, nous ne pouvons pas simplement supprimer quelque chose de la collection, alors la boucle for-each se cassera que nous ne pouvons faire que dans la normale pour les boucles, disons. Et même ça, ce n'est pas tout à fait ce que tu dirais ? Ce n'est pas conseillé. droite. Mais voyons si cela fonctionne. Nous n'avons pas réellement besoin de spécifier un élément spécifique dans la boucle for-each. S' assurer que nous sommes à Lecture 20 pour chaque boucle. Appelons ça. Donc le premier, John July Ryan, Maria, et ensuite nous avons le séparateur, John July, Ryan et Maria. Donc tout est verrouillé comme on s'y attendrait. Et c'est le pour chaque boucle. Cela fonctionne bien sûr aussi pour les dictionnaires ou d'autres collections. Nous n'allons pas examiner les autres collections en détail. Dans cette introduction. Cependant, il y en a aussi d'autres et cela fonctionnerait aussi pour les dictionnaires en théorie, non ? C' est juste un bref coup d'oeil. Je suis à la pour chaque boucle. J' espère que vous avez appris quelque chose de nouveau. Et s'il y a des questions, comme toujours n'hésitez pas à poser et je serai sûr de répondre. Et oui. 24. (C) Namespaces de Namespaces de C/C: Bon, bienvenue à l'introduction du C-Sharp ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un coup d'œil à un espace de noms. Alors, que sont les espaces de noms ? Eh bien, ouvrons juste, le script d'espaces de noms et voyons. Donc je vous ai dit depuis le début que nous allons ignorer la plupart des choses ici, plupart de ce qui est écrit ici. Mais maintenant, nous allons jeter un oeil à ces trois choses. Tout d'abord, le mot-clé using et ensuite tout ce qui est écrit après eux. Ce sont donc des espaces de noms. Et l'idée d'espaces de noms est fondamentalement d'eux comme des répertoires où certaines classes sont conservées, certains scripts sont conservés dans. C' est la façon la plus simple de les conceptualiser. Et nous pouvons alors accéder à ces fonctionnalités et à ces classes si nous les utilisons. Ainsi, par exemple, il existe un espace de noms particulier pour l'interface utilisateur de l'unité. Donc, par exemple, il y a quelque chose appelé un bouton, qui est évidemment un bouton que nous pouvons utiliser dans Unity. Mais comme vous pouvez le voir, ce n'est pas le cas, il n'existe pas. Si je mets le bouton ici, ça ne montre rien. Cependant, si je monte ici et je dis en utilisant le moteur Unity, wi, alors tout d'un coup ce bouton tourne ici, tourne cette couleur sarcelle. Et ça me dit, haha, je peux vraiment l'utiliser. Et je peux l'utiliser parce que j'ai le moteur Unity avec un espace de noms ici. Et si nous survolons, comme vous pouvez le voir, espace de noms, Unity engine wi. Et nous pouvons réellement utiliser des espaces de noms sur pour nous aussi. Donc, cela fonctionne aussi. Nous pouvons en ajouter un pour le script existant. Par exemple, comme ceci, nous écrivons juste espace de noms. Ensuite, nous mettons le nom de l'espace de noms. Habituellement, ce que je dirais c'est que maintenant que vous avez un nom pour votre projet, donc c'est une sorte de convention. Vous avez un nom pour le projet. Ceci, nous allons juste appeler notre projet, dans ce cas tutoriel. Et puis vous pouvez également diviser cela avec des espaces de noms ci-dessous fondamentalement. Ainsi, vous pouvez créer un espace de noms de répertoires à l'intérieur d'un espace de noms. Mais nous n'avons pas besoin de le faire comme ceci où nous atterrissons, par exemple, faisons certains comme des espaces de noms. Espaces de noms, non ? On n'a pas besoin de faire ça. Ça marche aussi, non ? Et puis ce que je fais, c'est que je reproduis rapidement ça et ils s'en vont. Ensuite, nous avons la classe au lieu d'un espace de noms. Maintenant, nous n'avons pas forcément besoin de le faire. Cependant, je vais vous montrer juste après cela, comment vous pouvez réellement l'automatiser là pour qu'il ajoute automatiquement chaque nouvelle classe que vous créez dans un espace de noms. Donc, vous n'avez pas besoin de faire ce marquage ici, donc vous n'avez pas à sélectionner tout cela, vous savez, contrôler X4 pour le découper, contrôler V pour le coller, enregistrer tout et alors vous n'avez pas besoin de le faire. On peut en fait automatiser ça. Je vais juste te montrer comment tu pourrais faire ça si tu n'as pas d'espace de noms ici. Mais généralement, je recommanderais en fait de commencer avec un espace de noms de toute façon. Euh, mais ouais, nous n'avons pas vraiment besoin de définir deux espaces de noms. Donc, dans ce cas, cette classe d'espaces de noms serait accessible si nous étions comme, si nous sommes dans une autre classe, alors nous devrions mettre dans des espaces de noms de points de tutoriel, puis nous pouvons l'utiliser. Maintenant, évidemment, nous sommes maintenant dans ce répertoire gras de sang spécifique, disons que nous pouvons l'utiliser de toute façon, mais parce que nous avons deux espaces de noms ici, nous pouvons aussi simplement faire ces espaces de noms. Et cela va en fait nous économiser un peu de, un peu d'espace ici parce que alors nous pouvons réellement tout faire comme ça et alors il n'est pas trop indenté parce que si nous devions avoir, donc par exemple, je ne suis pas sûr si Unity UI a encore plus d'espaces de noms en dessous, ce n'est pas le cas. Mais certains d'entre eux comme vous pouvez le voir. Donc le système que la collection de générique a déjà comme trois. Eh bien générique n'a rien de plus mais ça pourrait l'être, peut-être c'est comme à un moment donné et alors c'est W2 générique et dans util dot core ou autre. Ainsi, vous pouvez avoir plusieurs espaces de noms à l'intérieur de l'autre. Par conséquent, il est préférable de, cependant, tous l'avoir en une seule ligne. Idée étant que vous voulez séparer votre base de code. Donc si vous avez 100 scripts, alors vous n'avez pas volé dans vos dossiers, alors ça peut, eh bien, tout d' abord, ça va mener à tout mon dieu, où est mon script ? Où était-ce ? Je ne sais pas ce que ça fait. Et avec les espaces de noms, vous pouvez essentiellement créer certains groupes de scripts et de classes qui fonctionnent ensemble et ont un but particulier. Ainsi, par exemple, peut-être que vous voulez mettre tous vos scripts ennemis dans un espace de noms spécifique. Donc, ce serait, par exemple, tutoriel points ennemis. Ou vous voulez mettre tout votre combat dans les choses dans les classes de combat, dans votre espace de noms spécifique qui pourrait, par exemple, être tutorial.com, quelque chose comme ça. Et peut-être que vous avez des interfaces que nous allons regarder dans une vidéo ultérieure, ce que c'est dans une conférence ultérieure. Certaines choses que vous allez utiliser tout au long du code. Vous pouvez, par exemple, mettre cela dans la classe YouTube tutoriel dot util. Ce seraient des choses qui aideraient à tout. Donc, comme les maths, maths F était une sorte de classe util à certains égards. Et où vous avez d'autres choses que vous pourriez vouloir mettre dans un espace de noms de base. Il y a donc beaucoup d'applications pour eux. Cependant, en ce moment, ce que je dirais est que la chose la plus importante est juste que je conseille de les utiliser définitivement. Et quand je conseillerais aussi dans notre cas, parce que c'est fondamentalement juste une sorte de tutoriel C-Sharp sur ce sujet. Je ne l'ai pas fait, je n'ai pas une telle structure ici à l'intérieur du dossier de script. Cependant, ce que je conseille personnellement ce que vous faites est que votre dossier de script. Donc, le script doit toujours être l'espace de noms racine. Donc, tout, chaque script qui serait à l'intérieur du script. Donc si je crée une nouvelle portée, juste pour l'enfer, lisez celle-ci. En théorie ou dans ce script de test. Je voudrais que cela soit dans le tutoriel d'espace de noms. Et puis si j'ai un autre dossier ici, donc par exemple, des espaces de noms, alors je voudrais que chaque classe qui se trouve à l'intérieur de ce dossier soit les espaces de noms de points de feuille. Donc, reflétez fondamentalement votre structure de dossier avec votre structure d'espace de noms. Mais ne nous inquiétons pas à ce sujet maintenant. C' est juste un avertissement dont on n'a pas vraiment besoin de s'inquiéter. Et maintenant, nous pouvons également faire en sorte que chaque nouveau script que nous créons reçoive déjà un espace de noms attribué. Et nous pouvons le faire en allant dans Modifier les paramètres du projet. Et puis à l'intérieur de l'éditeur descendre un peu. Et puis comme vous pouvez le voir, C-Sharp Project génération, espace de noms racine. Et nous allons juste dire tutoriel. Et c'est tout. Je vais sauver ça en appuyant sur Control S. et puis on va créer un nouveau script ici. On va juste appeler ça, appelons-le festif. Bien sûr. Et si nous ouvrons ensuite ce script, alors vous pouvez voir généré avec le tutoriel d'espace de noms. Et c'est essentiellement tout ce qu'il y a pour ce moment dans le temps. Je ne pense pas qu'il y ait autre chose pour les espaces de noms est juste une petite chose. Et ce n'est pas la chose la plus importante, mais c'est toujours quelque chose qui, surtout quand vous voulez vraiment faire un projet dans vraiment ne ferait pas un jeu, alors je recommande fortement de regarder dans le, aussi le conventions des espaces de noms. Nous allons jeter un oeil à cela à la fin de l'introduction C-Sharp. Encore une fois aussi. Cependant, je juste quelque chose à penser et un peu important pour l'évolutivité et aussi pour comprendre la compréhensibilité rouge du code afin d'avoir fondamentalement est des nouveautés de fonction semi-séparées du code en sorte d'endroits différents, à droite  ? C' était tout pour cette conférence. J' espère que vous l'avez trouvé utile. S' il y a des questions, comme toujours, hésitez pas à me poser, je serai sûr de répondre. Et oui. 25. (C) C C Méthode de C C : Bon, bienvenue à l'introduction en C pointu ici pour les noyaux cinétiques. Et dans cette conférence, nous allons jeter un oeil aux méthodes. Maintenant, les méthodes sont une grande partie de la programmation et C forte en général. Donc, eh bien, ne perdons pas de temps et voyons ce que nous pouvons voir en ouvrant le script de méthodes. Assurez-vous également que nous sommes à la lecture 22 méthodes. Et ouvrons ça et voyons ce qu'on peut voir. Donc, nous avons vu, disons, des méthodes dans un peu dans l'abstrait, où nous avions quelques méthodes pour les chaînes, par exemple, nous les avons vues. Nous avons également vu que nous pouvons accéder aux méthodes par l'opérateur point. Et oui, c'était quelques choses de méthodes que nous avons vues. Et maintenant, regardons un exemple de, par exemple, une fois pourquoi les méthodes seraient vraiment agréables et vraiment bonnes à utiliser dans certaines circonstances. Et aussi, nous allons juste, commençons par ici. Jetons juste un coup d'oeil. Donc, pour l'instant, ce que nous voulons faire, c'est que nous voulons calculer le factoriel. Donc, nous pouvons le faire très facilement en fait juste eux faire quelque chose comme ça et ensuite le mettre à ce que nous voulions que les deux factoriels calculent. Factoriel est juste tout. Donc, si nous voulions factoriel cinq par exemple, ce serait exactement ce cinq fois quatre fois trois fois deux fois une. Donc c'est le factoriel, c'est ainsi qu'il est défini. Et c'est tout simplement ce que nous voulions calculer en ce moment. Alors nous définissons le num factoriel, et ensuite nous avons une boucle for que nous allons de num moins un jusqu'à ce que je sois plus grand ou égal à un. Et puis on compte à rebours. Et puis nous disons que les temps factoriels sont égaux à moi et c'est exactement ce que cela fait parce que factoriel commence à cinq, je commence par cinq moins un. Donc, à quatre, donc, nous passons par et nous fois je que si 5 fois 4. Et puis le prochain sera 5 fois 4 fois 3, et ainsi de suite jusqu'à ce que nous en atteignions un, et puis nous avons fini. Donc, si nous faisons maintenant un point de débogage log factoriel est, et puis faire de cette façon autour d'un aller. Et puis nous sauvegardons factoriel. Et nous pouvons réellement l'imprimer ou le déconnecter dans la console. Et commençons juste à C. Qu'est-ce que c'est, factoriel est 2, 120. Donc factoriel 5 est 120. Maintenant. Et maintenant, mon truc est, en fait, ce que je veux c'est que je veux en fait factoriel pour huit numéros différents. Je suis allé factoriel par exemple, pour sept et je voulais aussi pour la nuit, et je le veux aussi pour D. Et je pensais l'avoir pour 11 aussi. Et maintenant, nous entrons dans un problème parce que maintenant nous devons prendre ceci et peut-être copié comme huit fois ou quelque chose comme ça. Et c'est bien sûr. C' est absolument ridicule. Ça n'a aucun sens. C' est ce que les méthodes de guerre. Donc, nous pouvons fondamentalement prendre le tout ici et le mettre dans une méthode et ensuite l'appeler aussi souvent que nous le voulons. Et pour ce faire, ce que nous allons faire est que nous allons aller en dehors de cette méthode stockée parce que c'est aussi une méthode en passant. Et cette méthode est appelée quand un certain, uh, quand le jeu commence fondamentalement. La façon la plus simple de conceptualiser cela maintenant. Donc nous allons sortir du support bouclé ici, et nous allons taper ce qui suit. Nous allons taper en int public, puis le nom de la méthode factorielle. À l'intérieur, nous allons écrire int number, et je vais expliquer rapidement ce que cela signifie. Maintenant, nous aurons une flèche ici pour le moment. L' inquiétude à ce sujet, nous allons arranger ça assez tôt. Je vais juste expliquer rapidement, expliquer comme l'idée de cette méthode et quoi, ce que tout cela, c'est appelé le modificateur d'accès. On va y jeter un coup d'oeil un peu plus tard aussi. Donc, fondamentalement, ce que sont les modificateurs d'accès et ce qu'ils font exactement. Public dans ce cas, signifie simplement que nous pouvons y accéder de n'importe où. Nous avons également le type de retour. Donc, c'est le type de données qui est retourné de l'appel de cette méthode. Dans ce cas, il s'agit d'un entier. Comme vous pouvez le voir ici dans la méthode start, est en fait vide. Et le vide signifie qu'il ne retourne rien. Entier dans ce cas renvoie évidemment un entier. Ensuite, nous avons le nom de la méthode, puis nous avons les parenthèses. Et à l'intérieur de là il y a des paramètres et le type de paramètre est d'abord donné, puis le nom du paramètre. Dans ce cas, nous voulons lui donner un, un entier appelé nombre. Et ce numéro est fondamentalement ce num ici que nous avons utilisé ici. Prenons ça et copions-le. Maintenant quelques choses dont nous n'avons pas vraiment besoin. Nous avons seulement besoin d'avoir factoriel ici. Et nous n'avons pas vraiment besoin de faire ça. Et on n'a pas besoin de faire ça de toute façon. Laissez-moi juste besoin de faire en fait, nous pouvons même le rendre un peu plus facile en faisant numéro, ils vont. Et puis ici, nous avons juste besoin de remplacer cela par le nombre et ensuite c'est tout. Et puis aussi revenir, retour factoriel, l'ego. Et c'est la méthode factorielle maintenant faite. Et ce que nous pouvons faire maintenant, c'est si nous copions rapidement cela et nous disons avec une méthode, alors nous pouvons dire factoriel que 25, quelque chose comme la méthode est. Et puis nous appelons factoriel. Et comme vous pouvez le voir, c'est en fait ici avec ce genre de cube là-dedans. Et puis nous le passons, par exemple six. Et puis nous allons simplement le copier dessus et le laisser faire cinq aussi, juste pour que nous puissions nous assurer que cela fonctionne réellement. Mais je suis assez certain que c'est le cas. Et vous pouvez voir, nous pouvons également voir que c'est un, a deux références parce que dans ce cas, notre méthode est appelée 2 fois 1, 0, 1, 1 ici. Et voyons si ça fait quelque chose, mais je suis assez certain que c'est le cas, oui. A 120. Et puis avec la méthode est aussi un 120 quand nous passons à la cinq et le six est 720. Donc les méthodes sont un outil incroyable et quelque chose qui est vraiment, vraiment important. Il y a quelques points de base de méthodes, par exemple, que chaque méthode ne devrait faire qu'une seule chose et une seule chose. Les noms ne devraient pas être trop longs, quelque chose comme ça. Mais ce sont des conventions qui, comme je l'ai dit. Oh, donc nous allons jeter un oeil à la fin de l'introduction C-Sharp aussi. heure actuelle, les méthodes sont simplement un moyen de contenir certaines instructions que nous voulons faire. Beaucoup de fois. C' est un moyen de nœuds de réutiliser le code sans le copier. C' est aussi une sorte de façon que nous pouvons conceptualiser les méthodes. C' est donc une façon de réutiliser le code sans le copier. Et c'est toujours une bonne indication si vous avez copié. Donc, si nous aurions besoin de ce code factoriel huit fois R, comme je l'ai dit, ce serait un candidat idéal pour s'assurer qu'il y a une méthode hors de cela parce que cela, il est logique si dès que vous commencez, peut-être si vous commencez à utiliser quelque chose deux fois, vous pouvez débattre de, eh bien, je n'ai pas vraiment besoin d'une méthode pour cela. Mais lorsque vous commencez à utiliser une ligne de code particulière, comme pour la troisième fois, il est temps d'en faire une méthode. Je pense que c'est une bonne règle empirique. Oui. Mais ce sont les méthodes C Sharp. Je voulais aussi mentionner que parfois les gens peuvent les désigner comme des fonctions. C' est fondamentalement la même chose. Habituellement, à mon avis d'après ce que j'ai entendu, une méthode est liée à des objets et les fonctions sont un peu comme flottant librement. Mais généralement, vous pouvez, il y a des synonymes les uns pour les autres. Donc, je peux dire que c'est des fonctions C-Sharp ou des méthodes C-Sharp. Habituellement, tout le monde devrait comprendre qu'ils sont les mêmes. Mais il pourrait y avoir des gens qui sont comme vraiment pédés étaient comme. Ce n'est pas correct. Des écrivains comme moi, oui. Correct. Ce serait une méthode. Une fonction est quelque chose de légèrement différent. Cependant, vous pouvez utiliser les termes de façon interchangeable, n'est-ce pas ? C' était tout pour la conférence sur les méthodes. J' espère que vous l'avez trouvé utile. Et comme toujours, s'il y a des questions, hésitez pas à poser et je serai sûr de répondre. Et oui. 26. (C) Surchargement de méthodes: Bon, bienvenue à la coupure C pour le cours de l'unité. Et dans cette conférence, nous allons jeter un oeil aux méthodes de surcharge, ou aussi appelé surcharge de méthode. Donc, c'est fondamentalement une continuation de ce que nous pouvons faire avec les méthodes et pourtant si peu, quelque chose qui est semi important de savoir ce que vous pouvez faire. Alors, ouvrons le script de surcharge ici et voyons ce que nous pouvons faire. Donc, la première chose que nous allons faire est que nous allons créer une nouvelle méthode et nous allons la faire retourner un entier et l'appeler multiplier avec deux paramètres, a et b. Et comme son nom l'indique, Il va retourner un fois B. Maintenant, bien sûr, définir une telle méthode est absurde dans le sens où, eh bien, il est assez facile d'écrire une fois b. Et même si nous avons plusieurs paramètres ici, donc a, B, C, D, E, F, G à peut-être tout alphabet. Nous pourrions toujours l'écrire comme une fois b fois c et ainsi de suite. Donc généralement ce type de méthode n'est pas quelque chose dont nous avons vraiment besoin. Cependant, il est facile de démontrer avec cette méthode, le concept de surcharge de méthode. Donc, ce que nous pouvons faire est que nous pouvons nous connecter, donc déboguer le journal de points. Et puis nous pouvons faire multiplier et puis par exemple, quelque chose comme 10 et trois. Donc, cela reviendrait 30. Voyons si ça marche vraiment. S' assurer que la méthode est correcte. Conférence 23, surcharge comme scène et voyons, oui, il est 30, donc c'est assez bon. Et maintenant, vous pouvez faire est que nous pouvons définir une deuxième méthode, également appelée Multiply. Maintenant c'est, c'est là que ça devient intéressant. Il doit donc avoir exactement le même nom que celui-ci. Donc, le nom doit être le même aussi avec les majuscules et minuscules comme sera le même. Cependant, ce que nous pouvons faire est que nous pouvons changer le nombre de mètres et puis c'est une, une méthode surchargée. Donc, par exemple, si nous ajoutons l'entier c ici en tant que paramètre, puis nous faisons cela, et ensuite nous pouvons retourner, par exemple, une fois B fois C. Nous pourrions également retourner, en passant, c'est juste comme un exemple. Nous pouvons également retourner multiplier AB fois C. Par exemple, nous pourrions, nous pourrions retourner cela, non ? Donc on peut, on pourrait appeler l'autre méthode. Et comme vous pouvez le voir maintenant, il n'y a pas d'erreurs. Même si j'ai deux méthodes avec le même nom. Comment, comment le programme sait-il ce qu'il faut prendre ? L' un a trois paramètres et l'autre doit permanent. Donc, si nous copions ceci avec Control C et ensuite Control V le collant, ce que nous pouvons voir, c'est que si nous commençons par le multiplier, nous pouvons réellement voir qu'il y a, est-ce que j'ai écrit ça mal ? Je n'ai pas nié NON. Multipliez. Je deviens fou ? Je ne deviens pas fou d'accord. Pendant une seconde, je pensais que cela est multiplié. Maintenant ce qu'on doit faire, c'est que oui, on doit commencer ça. Désolé, Exactement. Donc, comme vous pouvez le voir, l'un des deux. Donc là, il se rend compte qu'il y a deux méthodes appelées multiplier. Et il est comme, Ok, l'un d'eux a et b et a, euh, prendre cette flèche, cliquer sur cette flèche, puis on peut voir dans un dans B et C. Alors on peut prendre ceci par exemple, on peut dire 524 par exemple. Et puis fermez également le journal des points de débogage. Donc, cela fonctionne aussi bien. Et puis la dernière chose que nous pouvons faire, par exemple, est de multiplier avec des flotteurs. Donc nous allons retourner un flotteur et nous allons multiplier les flotteurs une fois de plus, retourner une fois b n'est rien de fou dans ce cas. Et puis nous pouvons aussi copier ceci. Et puis par exemple, dites quelque chose comme 3.512 pour F, par exemple. Et c'est, C'est le même, c'est le même nom pour les trois méthodes. La seule différence est cette partie de la signature de la méthode. Donc, ce serait le, le modificateur d'accès, le type de retour, le nom et les paramètres. Ils le sont. Certaines de ces choses sont différentes, à savoir les périmètres et peut-être aussi le type de retour. Et c'est une surcharge de méthode. Cela peut arriver parfois, parfois il y a des méthodes qui ont un nombre différent de paramètres parce que peut-être il y a quelque chose qui peut, vous savez, une méthode peut être appelée un ou deux ou trois paramètres différents, et l'un d'eux va bien. Donc, nous pouvons appeler la méthode avec un ou dans ce cas avec 23. Et bien sûr qu'on pourrait ajouter à ça, non ? Nous pourrions aussi avoir un multiplier avec a, B, C, D, et ainsi de suite et ainsi de suite. Mais juste, vous montre juste que vous pouvez avoir des méthodes qui sont définies plusieurs fois avec le même nom mais des signatures différentes, comme le nombre différent de paramètres ou différents types de paramètres. Et cela vous permet de surcharger ces méthodes. C' est un concept important à voir. Et la meilleure chose à faire ici est de juste jouer avec un peu, surtout après les méthodes. C' est une sorte de prochaine étape. Et puis la surcharge de la méthode est un peu en plus de cela. Donc, je suggère certainement juste de jouer un peu avec elle, juste définir quelques méthodes en utilisant certains des mots-clés précédents et des structures et des déclarations que nous avons appris à jouer avec cela un peu et juste voir ce que vous pouvez voir. Et puis c'est la meilleure chose que je peux. Fondamentalement des conseils à ce stade, non ? J' espère que vous avez trouvé cela utile. S' il y a des questions comme toujours, hésitez pas à poser et je serai sûr de répondre. Et oui. 27. (C) Cours et objets: D' accord, continuons avec l'introduction du C-Sharp ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil aux classes et aux objets. Probablement l'un des sujets les plus importants de C-Sharp dans ce cas. Parce que C sharp, comme vous le savez peut-être, est un langage de programmation orienté objet. Et les classes et les objets sont en quelque sorte l'un des blocs de construction les plus basiques de ce type d'abstraction. programmation orientée objet n'est donc qu'une abstraction. Donc, nous disons que tout est un objet. Et certains objets ont des membres et des méthodes. Et nous pouvons créer de nouveaux objets et de nouvelles classes. Et oui, jetons un coup d'oeil à ça. Donc, au lieu d'ouvrir notre script de classes et d'objets, nous allons réellement créer un nouveau script en cliquant avec le bouton droit de la souris sur le dossier d'objets 24, 25 classes, puis en créant puis en C script pointu. Et on va appeler ce fichier fruit. Juste après qu'on ait créé le fichier de fruits, on pourrait avoir un avertissement ici. Ne vous inquiétez pas pour ça. Ça n'a pas d'importance pour l'instant. Ce qui importe, c'est que nous ayons créé cette classe de fruits et cette lime de fruits. Et je vais double-cliquer dessus et nous l'ouvrirons ensuite. Maintenant, comme vous pouvez le voir, il y a plein de choses ici, et on ne veut pas ça. Aussi à noter, nous avons maintenant deux fichiers ouverts. Donc, si vous ouvrez également les objets classes, vous allez avoir les deux ouverts et vous pouvez les changer. Ils sont juste des onglets simples comme dans un navigateur fondamentalement. Et ce sont les différentes classes que nous avons ouvertes en ce moment. Maintenant, on va faire, c'est qu'on va supprimer tout ce qu'il y a à l'intérieur d'ici. Donc on va tout marquer. Et puis nous allons appuyer sur Entrée pour que tout soit supprimé. Et ce comportement de modèle et ce deux-points seront également supprimés de sorte que nous n'avons écrit ici que des fruits de classe publique, puis les crochets bouclés, et c'est tout. C' est tout ce qu'on veut à l'intérieur d'ici. Et puis à l'intérieur de nos classes et objets, nous sommes à nouveau au lieu de la méthode start et nous pourrions déjà faire quelque chose, mais pensons à un fruit. Nous voulons donc créer un nouveau fruit. Maintenant, quand on pense à un fruit, eh bien, qu'est-ce qu'une moitié de fruit ? Donc on pense à une sorte d'attributs d'un fruit, non ? Donc l'une des choses qu'un fruit en particulier pourrait avoir est un numéro, un nom, non ? Donc mangue, c'est, c'est un nom pour un fruit et une banane. Et aurait aussi une pomme, n'est-ce pas ? Donc ce serait un nom pour un fruit. Donc tous les fruits ont un nom. Je dirais que c'est logique. Maintenant, nous pourrions penser, eh bien, quels sont les différents attributs d'un fruit aussi ? Eh bien, peut-être qu'il a une teneur en sucre, non ? Peut-être que toi et moi vivons en bonne santé et que tu veux savoir, je veux connaître la teneur en sucre, tu sais, soyons en sécurité à ce sujet. C' est mieux de le savoir, non ? C' est donc la teneur en sucre. Et puis peut-être qu'une autre chose pourrait être une couleur par exemple. Donc nous allons faire une nouvelle chaîne appelée couleur. Droit ? Maintenant ces trois attributs, c'est ce qu'on appellerait des champs. sont donc des champs de cette classe particulière, les fruits. Et vous pouvez les considérer comme fondamentalement les attributs que chaque fruit a, n'est-ce pas ? Donc, chaque fruit a une certaine teneur en sucre, chaque fruit a une certaine couleur, et chaque fruit a un certain nom. Maintenant, il pourrait y avoir beaucoup plus d'attributs que nous n'avons en ce moment. Il y a donc beaucoup plus que ces trois. Cependant, nous allons rester avec ces trois pour rendre les choses simples, non ? Et maintenant, nous pouvons déjà l'utiliser et nous pouvons déjà faire quelque chose avec des racines afin que nous puissions réellement créer un nouveau fruit ici. Donc ce qu'on va faire, c'est qu'on va taper des fruits. Et comme vous pouvez le voir, cela nous suggère déjà et nous allons créer un nouveau fruit et nous allons l'appeler une banane. Et puis nous allons dire que c'est égal à de nouveaux fruits, et ensuite finir par les parenthèses. Donc, comme si nous appelons une méthode, comme vous pouvez le voir, il n'y a pas d'erreur ici. Et ça ne devrait pas être trop fou. Donc, cette partie de la construction est simplement une fois de plus une déclaration d'une variable. Donc, ce n'est rien comme il n'y a pas de différence entre cette année et dans x. Fondamentalement, c'est simplement une nouvelle variable que nous avons créée. Et cette variable, dans ce cas est de type de fruit. Donc, la seule chose qui a changé ici est que nous n'utilisons pas les types de données primitifs. Donc, les types de données primitifs pour chaîne et entier et ainsi de suite et ainsi de suite. Maintenant, nous avons créé une sorte de type de données complexe, mais nous avons créé notre propre classe, qui s'appelle Fruit. Et cette année, la mission essentiellement. Et nous avons le Mu, nous avons le nouveau mot-clé que nous avons vu avec les listes avant. Et maintenant, cependant, nous avons créé un nouveau fruit. Et ça peut sembler un peu bizarre au début. Cependant, c'est fondamentalement juste le, euh, comme, euh, c'est fondamentalement juste comme un appel de méthode. Cependant, dans ce cas, nous avons codé le constructeur. C' est donc une méthode très spéciale qui est liée aux classes et aux objets. De cette façon, nous créons réellement une nouvelle instance de cette classe. Et oui, alors voyons ce qu'on peut faire en fait, c'est qu'on peut utiliser ça une banane et on peut faire avec l'opérateur de points. Nous pouvons en fait, comme vous pouvez le voir, vous allez et accéder à la couleur et nous pouvons accéder au nom et à l'axe, à la teneur en sucre. Donc, nous pouvons réellement accéder à tous ces champs comme vous pouvez le voir, comme on les appelle. Et, et pourtant ils sont accessibles. Donc, par exemple, on pourrait dire, eh bien, un nom de point de banane est égal à une banane, par exemple. Ce qui aurait du sens. Cependant, dans la question ici étant que nous devrions en fait passer par chacun d'entre eux et créer un nouveau nom de point de banane puis 80 nano a point de banane teneur en sucre égale, je ne sais pas, comme 15 et ainsi de suite et ainsi de suite. Eh bien, ça semble un peu fastidieux. Cependant, nous pouvons réellement le rendre un peu plus facile en utilisant ce constructeur et en faisant réellement notre propre construction. Donc, il y a un moyen facile avec cela nous pouvons faire notre propre constructeur. Et c'est en appuyant sur Alt. Entrez. Comme vous pouvez le voir, alors vous obtenez cette suggestion Generate Constructor ici, et nous allons le faire et maintenant nous pouvons choisir les membres que nous voulons. Donc on peut juste avoir à mettre la coche ici. Nous devons dire, d'accord, quels membres voulons-nous avoir comme paramètres dans le constructeur ? Nous allons juste laisser, avoir tout sélectionné et dire, ok, et puis comme vous pouvez le voir, il a créé un nouveau constructeur pour nous avec des paramètres ici et aussi les affectations. Donc, le, ce mot-clé fait simplement référence à l'objet qui est en cours de création. Donc, vous devez séparer fondamentalement deux choses. La classe elle-même est fondamentalement un modèle à partir duquel nous créons ensuite un objet et qui existe alors. Et puis nous avons aussi les paramètres que nous passons à travers le constructeur ici, et ceux-ci sont également séparés. Cependant, ils sont ensuite enregistrés dans l'objet. Comme vous pouvez le voir ici maintenant, nous obtenons en fait une, une erreur car il n'y a pas d'argument donné un qui correspond au nom du paramètre formel requis, et ainsi de suite et ainsi de suite. Ce que cela veut dire, c'est que nous n'avons pas assez de paramètres ici et que nous pouvons corriger ça. On pourrait le réparer soit en mettant banane, puis un contenu de fruits, puis une couleur. Ou parce que ce qui se passe, c'est avant que ça marche et alors pourquoi ça ne marche pas maintenant ? Eh bien, nous avons en fait remplacé le constructeur normal, le, le, le constructeur de base. Et c'est tout simplement, c'était ça. Donc des fruits. Oh, tu y vas. Et puis celui-ci, nous l'avons écrasé parce que et nous avons créé le nôtre. Et cela fondamentalement quand vous avez une nouvelle classe, cela est normalement généré. Donc c'est toujours là, même si tu ne le vois pas. Cependant, dès que vous créez votre propre constructeur, cela ne fonctionne plus. Et maintenant, nous devons le taper explicitement et dire, Ok, c'est maintenant aussi constructeur et puis cela fonctionne. Comme vous pouvez le voir maintenant, il n'y a plus d'erreur. Mais ce que nous pouvons faire maintenant, c'est que nous pouvons créer un nouveau fruit. Donc, par exemple, nous pouvons dire une, une pomme. Une pomme est un nouveau fruit. Et ça a le nom de pomme. Et il a une teneur en sucre de 10, par exemple, et une couleur de rouge. Et de cette façon, nous avons maintenant créé une pomme avec le nom teneur en sucre d' Apple de 10, puis la couleur rouge. Donc, par exemple, nous pouvons dire le journal de points de débogage, et ensuite nous pourrions dire un nom de point pomme. Et puis nous allons juste imprimer ou enregistrer tout, la teneur en sucre et aussi la couleur. Droit ? Voyons si ça marche. S' assurer que nous sommes sur des conférences 24, 25 cours et objets. Et lançons cette pomme 10 et lisons, eh bien, n'est-ce pas génial ? C'est plutôt sympa. Ça marche très bien. Et revenons rapidement une fois, une fois de plus au fruit ici. Et l'une des choses qui est de noter que nous allons regarder dans, je pense, deux conférences. C' est le mot clé public ici. On va comprendre ce que c'est. Nous l'avons vu très bientôt avec le modificateur d'accès, désolé, avec les méthodes. Donc c'était le modificateur d'accès. Et nous l'avons vu avec les méthodes que nous avons aussi rendues publiques. Cela signifie simplement que nous sommes autorisés à accéder à ces variables dans ce cas. Et oui, c'est essentiellement l'idée que je vais juste mettre rapidement en place. Donc, c'est, donc c'est le constructeur très important et utilisé pour créer de nouvelles instances. Donc c'est fondamentalement la classe de cette classe. Donc vous pouvez dire, eh bien, c'est une nouvelle instance. Donc, ici la, une pomme est une nouvelle instance, ou vous pouvez dire que c'est un nouvel objet. Ce genre de façon interchangeable. Mais oui, c'est la vue d'ensemble de base des classes et des objets et aussi comment les créer. Un autre exemple, juste pour que je vous laisse avec, est, vous pourriez penser à, par exemple, un, vous pourriez penser à un ennemi. Et un ennemi pourrait être une classe. Donc nous aurions une classe ennemie. Et puis une classe Emmy, par exemple, a des points d'accès entiers, et ainsi de suite et ainsi de suite. Et c'est peut-être une chose qui est un peu plus étroitement liée au développement du jeu lui-même. Cependant, je pense qu'il ya un exemple de fruits montre aussi un peu, je suggère certainement de regarder les prochaines conférences avant d'essayer quelques choses. Donc, je dirais que probablement jusqu'à ce que nous soyons à la conférence 28 à travers où nous parlons des propriétés. Je pense que tu devrais les regarder et quand on en a fini avec eux, alors je pense que tu peux jouer avec les classes et les objets. Il y a encore quelques choses que nous devons examiner avant que vous puissiez, avant que je vous suggère de vraiment plonger, bien sûr, vous pouvez plonger à tout moment et essayer de nouvelles choses dès que vous le voulez. Mais c'est juste une simple suggestion de ma part. Mais oui, c'était tout pour la conférence des classes et des objets ici. Très important. S' il y a des questions, n'hésitez pas à poser et je serai sûr de répondre. Et oui. 28. (C) Membres du cours (C): D' accord, continuons avec l'introduction en C au cours de l'unité. Et dans cette conférence, nous allons jeter un oeil aux membres de la classe. Et c'est fondamentalement un peu d'approfondissement de la compréhension des classes. Jetons un coup d'oeil à notre classe de fruits et réfléchissons. Donc, nous avions les, ces variables que nous avons déclarées. Et ce sont des champs, non ? Cependant, ils sont également membres. Donc, les membres sont fondamentalement une façon fantaisiste de dire, eh bien, cela fait partie d'une classe et un champ signifie simplement que c'est une variable. Maintenant, d'autres membres incluent, par exemple, une méthode. Donc, nous allons juste créer une nouvelle méthode. Ainsi, par exemple, un vide public, manger des fruits, qui va simplement faire ce qui suit. Donc, c'est, nous obtenons le bon formatage. Voilà, tu y vas. Cela va simplement déboguer les fruits du journal de points. Et puis on va dire, ce nom a été mangé, non ? Donc, dans ce cas, nous n'avons pas besoin de, ce mot clé ici nom peut être simplifié. Donc, nous pouvons aussi simplement écrire le nom parce que le programme sait bien, cela signifie ce nom. Cependant, personnellement, utilisez parfois le mot clé, ce même s'il n'est pas nécessaire. Dans mon cas, je pense que parfois cela le rend un peu plus clair et vous pouvez voir un peu plus près, ok, ceci, avec le, ce mot-clé, c'est un, fondamentalement un membre ou un champ de cette classe particulière. Mais c'est un choix stylistique. Tu n'as pas à faire ça. Je voulais juste mentionner, cependant, maintenant, nous avons une nouvelle méthode appelée manger des fruits. Qu' est-ce qu'on peut faire avec ça ? C' est aussi facile que d'appeler, par exemple, un fruit à pois de pomme ? Et oui, en fait, c'est à quel point c'est facile. Donc, un point de pomme mangent des fruits comme vous pouvez le voir, et vous pouvez aussi maintenant voir qu'il existe d'autres méthodes que nous pourrions appeler. Ce sont simplement des choses de la classe d'objet que chaque objet est, fait essentiellement partie de. Cependant, nous avons créé ça, mangez des fruits, et nous allons appeler ça, et nous allons voir ce qui se passe. Donc, si nous faisons cela, alors après la sortie rouge, nous devrions voir que le fruit, pomme a été mangé. C' est ce que la sortie devrait dire. Alors partons. En fait, ça marche. Eh bien une fois qu'on commence, ils vont et les fruits, pomme a été mangée. Eh bien, c'est plutôt bien. C'est plutôt bien. Ouais, et on peut faire toutes sortes de choses avec ces méthodes fondamentalement. Donc, dans ce cas, c'est un vide donc il ne retourne rien. Cependant, nous pouvons bien sûr, aussi faire d'autres choses et pouvons créer différentes méthodes qui retournent des choses différentes. Donc, nous allons voir, par exemple, dans les conférences à venir est quand nous avons formé notre modificateur d'accès, peut-être que nous devons faire quelque chose. Ils sont quelque chose comme ça. Et c'est vraiment cool. Ainsi, nous pouvons créer les nouvelles classes qui ont non seulement différentes variables en eux, mais elles ont également des fonctionnalités différentes où nous pouvons utiliser ces variables, éventuellement les manipuler. Et oui, donc c'est une de ces choses. Dans l'ensemble, les membres ne sont que des membres de la classe. Donc, dans ce cas, les champs qui sont fondamentalement juste des variables. Et puis il y a aussi de nouvelles méthodes que nous pouvons appeler pour ces objets et sur ces classes, mais sur les objets, nous pouvons les appeler sur l'instance spécifique. Dans ce cas, une pomme. Nous pourrions bien sûr dire aussi un point de banane manger des fruits. Cela fonctionnerait aussi. Ouais, et c'est que je voulais juste te montrer. Donc principalement la méthode. C'est plutôt cool. Et puis aussi juste en s'assurant que vous comprenez fondamentalement la terminologie au moins un peu. Ce n'est pas absolument nécessaire, mais je voulais juste te le donner, le sol que tu connais. Ce sont donc des champs. Et puis c'est une méthode et c'est un membre et les champs sont également membres. Ouais, donc c'est tout pour les membres de la classe. Petite conférence. J' espère que vous l'avez trouvé utile. S' il y a des questions comme toujours, hésitez pas à poser et je serai sûr de répondre. Et oui. 29. (C) Membres statiques de C/C): D' accord, continuons avec l'introduction du C-Sharp ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil au mot-clé statique. Nous avons vu quelques mots clés auparavant, mais maintenant le mot-clé statique fait également partie des classes et des objets. Donc nous allons encore avoir besoin de la classe des fruits. Mais nous avons aussi besoin oralement de cette classe de grippe et du script fruit dans ce cas, ainsi que du script de mot-clé statique. S' assurer que nous sommes à la conférence 26, statique dans ce cas. Et nous allons juste ouvrir le script de mot-clé statique. Et avant de pouvoir faire quoi que ce soit ici, nous devons modifier à nouveau le script de fruits. Et nous allons créer un nouveau champ, et ce sera un champ statique. Donc, nous allons faire un nouvel int statique public. On peut appeler ça un nombre de fruits. C' est donc un nouveau champ statique appelé un nombre de fruits. Donc, pour l'instant, ça ne fait rien. Il est juste assis là comme vous pouvez le voir, si je survole, vous pouvez voir qu'il est dit champ, statique, int fruit, nombre de fruits. Donc il n'y a rien de spécial qui se passe ici. Maintenant ce que nous allons faire, c'est chaque fois que ce constructeur est appelé, nous allons dire num de racines plus, plus. Maintenant, cela va avoir un problème parce que ce n'est pas réellement initialisé en ce moment. Donc on va dire que c' est égal à 0 parce qu'en ce moment il n'y a pas de fruits, non ? Donc, ce nombre de fruits est le nombre de fruits. Voyons juste, vous savez quoi, soyons, soyons de bons programmeurs et sinon en fait appeler le nombre de fruits parce que le BER, qui ne change vraiment pas beaucoup quand il s'agit de son nom. Donc, le nombre de racines est égal à 0. Et puis à chaque fois qu'un constructeur est appelé, nous allons appeler ce numéro de socket. C' est bon, c'est bon. Et puis nous mangeons le fruit. Nous pouvons aussi dire, eh bien, que diriez-vous alors nous allons réellement à moins moins parce qu'il a été mangé. Donc, le fruit est Dieu, même si ce n'est pas tout à fait parti pour qu'il ne soit techniquement pas parti. Réfléchissons comme ça. Eh bien, d'accord, mais je veux dire que ça ne nous mène nulle part parce que si un fruit a ça, on peut créer un nouveau fruit, par exemple, une banane à nouveau. Et on va dire de nouveaux fruits. Et ça ne dira rien. Amino k est. Alors on peut dire, eh bien, une banane pointe un certain nombre de, eh bien, nombre de Froude, numéro Froude. Pourquoi tu ne peux pas y accéder ? Eh bien, c'est bizarre. Eh bien, si nous regardons cela, ce n'est pas appelable car c'est un membre statique ou un champ statique dans ce cas. Mais aussi membre statique ne pouvait pas être refroidi à partir de l'objet banane. On doit l'appeler par la classe. Donc, nous devons réellement taper le nombre de points de fruits. Et c'est la chose folle à propos de, eh bien, en fait, déboguer juste le journal de points ceci. Parce qu'alors on peut voir que ça devrait être un après avoir créé cette nouvelle nourriture, sauvegardons ça. C' est en fait l'affaire. Et puis je vais vous expliquer pourquoi le mot-clé statique est si génial. Intéressant, Donc c'est un 0. On peut, je suis sûr qu'on peut comprendre pourquoi. Alors réfléchissons à ça. Eh bien, parce que nous avons mis ceci dans ce constructeur et sur dans ce constructeur. Eh bien, c'est bien sûr un vrai problème. Donc, copions-le et mettons-le ici aussi. Donc, si nous appelons ce constructeur, nous allons également augmenter le nombre de racines. Alors je suis assez certain que nous allons avoir il y a un jour et il y en a un. Maintenant, pourquoi le mot-clé statique est-il si grand. Eh bien, nous appelons cela en utilisant la classe elle-même. Donc, nous disons le nombre de points de fruits. Pourquoi c'est un spécial ou quelque chose comme ça ? Eh bien, cette variable, ce champ dans ce cas, est en fait complètement indépendante de chaque fruit particulier. Donc, dans le cas du nombre de fruits, il n'est pas vraiment logique de stocker le nombre de fruits qui sont avec chaque fruit. Parce que tout d'abord, cela n'a vraiment aucun sens parce que pourquoi une banane saurait-elle combien de fruits il y a dans ce mur du monde, comme une banane particulière. Ce grill n'a aucun sens. Mais aussi que chaque fruit particulier saura combien d'aliments il y a. Tu sais, c'est, ça n'a aucun sens. Vous pouvez donc également appeler ce genre de variable globale. Je dis cela avec, vous savez, avec prudence, mais vous pouvez le considérer comme une variable globale qui existe pour le fruit de classe, pas une seule fois pour chacun des objets qui sont créés à partir du fruit. Il n'existe donc qu'une seule fois. Vous pouvez penser à la statique, peut également être, vous pouvez également avoir des méthodes statiques dans ce cas. Donc disons statique. Et puis nous pourrions juste dire éviter par exemple, et puis juste obtenir le numéro. Faisons-le. Ouais, il a un nombre de fruits. Dans ce cas. Nous sommes en fait, faisons cela un entier et ensuite avons ce nombre de fruits de ce retour. Bien sûr, dans ce cas, n'est pas vraiment nécessaire, cependant, juste pour illustrer le fait que nous pouvons également avoir des méthodes statiques. Les méthodes statiques la plupart du temps je ne dirais pas la plupart du temps, mais certains du temps peuvent être, par exemple, une sorte de méthodes d'aide. Ils peuvent être en quelque sorte des méthodes génératrices de génération. Donc vous pourriez avoir quelque chose comme un public chercher des fruits, produire des fruits. Donc, il générerait un fruit aléatoire. Donc, par exemple. Ouais, cependant, l'idée de statique est juste qu'il n'est pas lié à un objet spécifique, il est lié à la classe spécifique. Donc c'est vraiment important. Parfois, surtout au début. La différence peut être un peu mal comprise peut-être ou peut-être un peu plus difficile à saisir. Cependant, je pense qu'une fois que vous, une fois que nous allons y aller et que nous voyons quelques autres exemples de cela, je suis sûr que nous allons comprendre comme un peu plus vite. Ok, qu'est-ce que c'est ? Comment cela fonctionne-t-il ? Qu' est-ce que c'est exactement ? Mais en ce moment, quel est le mot clé statique vraiment utile ? Et vous pouvez aussi voir cette dernière chose. Donc, si je fais ce nombre de points de fruits, comme vous pouvez le voir, cela ne fonctionne pas parce que c'est exactement la même chose que nous avons fait auparavant, où un nombre de points de banane de racines ne fonctionne pas parce que le nombre de fruits n'est pas lié à un objet d'un fruit ou comme instance d'une presse à fruits liée à la classe. C' est tout pour le mot-clé statique. Oui, c'est incroyablement utile. Il peut être vraiment utile et il y a, il y a beaucoup d'applications réelles pour cela. Et à l'avenir, nous allons certainement en voir de plus en plus aufur et à mesure que nous continuerons à travers l'introduction du C3b, en plus fur et à mesure que nous continuerons à travers l'introduction du C3b, entrer dans la partie unité du cours parce qu'ils le sont, nous allons avoir beaucoup de méthodes statiques et aussi des champs. Donc, oui, s'il y a des questions, hésitez pas à poser et je serai sûr de répondre. Et oui. 30. (C) Modifiers de l'accès à la version de l'acc.): D' accord, continuons avec l'introduction C-Sharp pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil aux modificateurs d'accès. Donc, modificateurs d'accès, nous avons vu le modificateur d'accès public avant quand nous parlions de méthodes et aussi quand nous avons parlé de classes. Et maintenant, nous allons plonger encore plus profondément dans ceux-ci et voir ce que sont les différents types et ce que nous pouvons faire avec eux. Par exemple, ouvrons simplement notre script d'accès et assurez-vous également que nous ouvrons le script de la personne qui est ici. Autrement dit, nous allons utiliser la classe Person dans ce cas, et nous ne allons pas continuer avec la, euh, avec la très belle classe de fruits. On va s'en tenir à la personne en ce moment. Alors qu'est-ce que la personne a ? Disons qu'une personne a un prénom et qu'une personne a un nom de famille. Et ceux-ci seront tous les deux publics. Et ceux-ci seraient maintenant accessibles partout. Maintenant, partout, bien sûr, ne veut pas dire comme littéralement partout. Cependant, à l'intérieur de notre programme, partout dans le programme, si vous créez une nouvelle personne, prénom et le nom de famille pourraient être lus. Ok, c'est juste, ce n'est pas trop fou. Nous pourrions aussi penser, eh bien, peut-être que nous avons un entier h et nous voulons que cela soit protégé. Donc protégé int age. Et c'est maintenant un peu plus complexe. Et cela est fondamentalement accessible pour la classe elle-même. Donc tout ce que j'écris à l'intérieur des crochets bouclés ici entre pour ce cours, non ? Donc, si j'ai une méthode ici, je peux aller à l'âge, la changer et l'utiliser. Ce que je finis. Cela peut également être accessible, si accessible, si accessible pour tous par lui-même, n'est-ce pas ? Donc, c'est par la classe elle-même, les classes de fin dérivées de cela. Maintenant, c'est un peu bizarre. Ok, qu'est-ce que c'est ? Eh bien, c'est froid dans l'héritage et cela va être discuté dans une future conférence, très important. Cependant, je voulais vous montrer le mot-clé protégé, dans ce cas, dans il est utilisable dans la classe person, mais non, pas en dehors de celui-ci. Donc, alors que je pourrais utiliser, je pourrais faire , par exemple, maintenant, faisons le dernier et puis nous allons voir un exemple de ceci. Donc le dernier serait privé. Et c'est, par exemple, une chaîne. Ainsi, par exemple, un numéro de sécurité sociale. Cela semble être quelque chose qui serait probablement préférable d'être seulement accessible. Accessible uniquement par cette classe. Parce que nous ne voulons pas non plus être lus, ni que cela soit changeable de l'extérieur. Donc, si nous créons le constructeur en appuyant une fois de plus sur Alt, puis dans Generate Constructor, nous allons avoir les quatre champs en tant que périmètres. Et on va rester avec ça. J' aime ça. Grâce. Ensuite, nous pourrions, par exemple, penser à quelque chose comme ça. Nous pourrions donc aussi faire une méthode privée ou publique. Donc, faisons un bool privé est de l'âge de boire, par exemple, nous pourrions le faire et cela pourrait alors retourner un âge booléen plus grand ou égal à 21 si nous sommes aux États-Unis, si nous sommes un obstacle en Allemagne, par exemple, cette serait 16. Selon le type de liqueur. Laissons ça hors de l'équation. Reste à 21 dans ce cas. Comme vous pouvez le voir, l'âge, pas de problème. Je peux y accéder ici. Je peux le changer. Aussi la sécurité sociale, mon je l'ai changé ici. Pas de problème si vous allez maintenant dans notre script d'accès et que nous allons créer une nouvelle personne. Donc nous allons créer une personne de Frederick. Alors tais-toi. Et nous allons créer une nouvelle personne. Et bien sûr, FirstName est de la rhétorique, et ensuite le nom de famille sera Johnson. Si je peux taper, ils partiront et il aura 26 ans. Et le numéro de sécurité sociale, je n'en ai aucune idée. Alors mettons quelque chose comme ça là-dedans. J' aime ça, non ? Donc c'est génial. Maintenant, nous avons un nouvel objet appelé Frederick, donc nouvelle variable appelée phosphorique. Et nous allons dire le journal des points de débogage. Et puis nous pouvons, par exemple, dire Frederick, ce prénom. C' est très bien. Nous pouvons imprimer Prénom. Nous pouvons également, si nous regardons les suggestions, imprimer le nom de famille. Comme vous pouvez le voir, je veux dire à la fois l'âge et le numéro de sécurité sociale manquant et manquait également est la méthode que nous avons créée. Donc, nous pouvons aimer le faire, mais à la fois h et le numéro de sécurité sociale et pas accessible. C' est exactement exact. Donc nous avons parce que le protégé aimerait que je l'ai dit, seulement accessible dans la classe elle-même. Alors que c'est un privé, peut-être qu'on dit, accord, tu sais quoi, ça peut être public en fait, genre. C' est quelque chose qui est peut-être important pour les gens de savoir. Comme si j'avais quitté EC en âge de boire. Nous pouvons aussi dire, avoir une méthode qui s'appelle est un âge de vote, par exemple, non ? Et puis bien sûr, selon le pays, cela change. Abstraction tout ça et disons juste, ok, ou l'âge de boire est maintenant de 21 ans. Et on peut le faire et on n'a même pas besoin de révéler son âge en théorie, non ? Donc on peut juste faire quelque chose comme et dire quelque chose comme Ken, personne, boire. Et puis nous pouvons juste dire que le point de rhétorique boo est en âge de boire et ensuite appeler ceci, et cela va maintenant retourner un booléen et B. Nous pouvons accéder à ceci. Alors voyons, bien sûr, avec un 26, la personne ne peut pas boire. Voyons quand on aura la conférence 27, l'accès est ouvert. Frederick Johnson, quelqu'un peut boire, vrai ? Voyons si on change ça. Donc si on change le nom ici, ou plutôt l'âge, disons 20. Ce qui, bien sûr, serait dans notre cas. Moins de 21 ans, alors la sonnerie de la personne Ken devrait se transformer en faux. Voilà, tu y vas. C'est exactement ce que je voulais voir. Et ce qui est génial, c'est qu'on n'a même pas à ouvrir l'âge, non ? Donc c'est vraiment bon. Donc, dans notre cas, nous ne le saurions bien sûr pas. D' accord. Est la personne de plus de 21 ans ou moins, cependant, nous ne connaîtrons pas directement l'âge de la personne. Ceci est partiellement utile dans notre cas car il n'y a pas de cas d'utilisation réel ici. Cela, bien sûr, juste pour l'illustrer. Mais oui, ce sont les trois modificateurs d'accès, publics, protégés et privés. Habituellement, c'est juste quelque chose qui est une très bonne pratique. Tout devrait être privé, sauf s'il y a vraiment une bonne raison de ne pas l'avoir privé ou qu'il doit être accessible de l'extérieur. Cela change un peu quand on parle de travailler spécifiquement dans Unity. Parce que nous avons en fait un avantage supplémentaire. C' est parce que nous pouvons utiliser une façon intéressante de voir ce que les valeurs privées détiennent sans les rendre publiques. Ce que nous allons examiner cela dans, quand nous arrivons réellement à l'unité en ce moment en C sharp, je dirais utiliser des variables privées, ce que vous pouvez alors. Aussi, si nous avons vraiment besoin de les utiliser, nous pouvons les changer en ajoutant une guitare ou une installation. Maintenant, un getter ou une configuration sont fondamentalement des moyens par lesquels nous pouvons toujours accéder aux variables, mais les avoir toujours privées. Donc je crois que si on va ici, on devrait savoir qu'on ne peut pas faire ça. Peut-être qu'on peut le faire avec ça. En fait, on ne peut pas bien, que j'ai pensé qu'on pourrait les générer automatiquement. Je crois qu'il existe un moyen de les générer automatiquement. En fait. Il dit qu'on devrait utiliser une propriété. C' est ce que nous allons utiliser la prochaine fois. Donc, dans ce cas, une installation serait, ou une guitare serait une chaîne publique. Devenez social. Je vais appeler ce numéro pour un instant. Et puis nous allons retourner ce numéro de sécurité sociale. Et puis un cetera signifie simplement définir ceci. Ce serait un vide et sous forme de chaîne Social sec number. Et puis celui-ci ne le renvoie pas, mais celui-ci est précisément celui-ci. Alors faisons-le ça et mets-le ça, ils s'en vont, non ? Donc ce serait une guitare et une installation. Dans notre cas, bien sûr, pas vraiment ce que nous voulons parce que nous ne voulons pas vraiment de n'importe où dans le genre de numéro de sécurité à obtenir ou même à être fixé. Cependant, dans notre cas, à titre d'exemple, cela est parfois utile. Cependant, je vais juste le supprimer à nouveau parce que d'habitude, et nous n'utilisons pas getters et setters dans C-Sharp. Habituellement, en C Sharp, nous utilisons des propriétés. Et c'est exactement ce que nous allons examiner lors de la prochaine conférence. Donc c'était tout pour cette conférence avec, pour les modificateurs d'accès. J' espère que cela vous a été utile. Et je voudrais bien sûr, vraiment apprécier une critique de votre part si vous avez trouvé utile jusqu'à ce que, jusqu'à ce point. Et comme toujours, s'il y a des questions, hésitez pas à poser et je serai sûr de répondre. Et oui. 31. (C) C C : Bon, bienvenue à l'introduction pointue C ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil à un C. propriétés nettes. Nous avons donc vu tout un tas de choses concernant les classes et les objets, certains modificateurs d'accès. Et maintenant, nous allons jeter un oeil aux propriétés. Donc, pour cela, nous avons le script de propriété et un script étudiant. Oui. Et le script des étudiants, encore une fois, c'est juste une classe vide sans aucun des trucs Unity et le script de propriétés dans ce cas a notre méthode de départ. Mais nous allons commencer ici dans le scénario de l'étudiant. Donc, nous pourrions, par exemple, disons qu'un étudiant a un prénom public de chaîne, non ? Ça, ça aurait du sens. Qu' un étudiant a un prénom et nous allons copier ceci et aussi faire un nom de famille à partir de cela. Maintenant, ça marche. Mais d'abord, il dit, Hey, tu sais, peut-être que ce que tu veux faire c'est encapsuler ce champ en utilisant une propriété, et c'est en fait ce qu'on va faire. Donc la première chose que nous allons faire la convention de dénomination ici pour une propriété est une lettre majuscule. Et comme vous pouvez le voir, ce que nous allons commencer par c'est que nous allons avoir ces crochets bouclés. On va enlever le point-virgule à la fin. Et à l'intérieur de ces crochets bouclés, nous allons écrire : Get and Set. Et avec cela, nous avons déjà déclaré un champ. Et vous pouvez voir que nous avons maintenant, au lieu d'avoir la boîte lente ici, nous avons effectivement cette clé et ce registre signifie simplement qu' agit d'un champ ou d'une propriété plutôt. Et faisons ça. Faisons le nom de famille aussi. Ils y vont. Et faisons aussi, et c'est l'une des choses cool que nous pouvons faire. Donc, par exemple, nous avons maintenant ces deux propriétés. Et tout va bien, et c'est comme, Ok, qu'est-ce que ça veut dire ? Qu' est-ce que ça fait ? Eh bien, évidemment, ce que nous pouvons faire maintenant, faisons juste un nouvel étudiant aussi. Allons, ouais, faisons juste de nouveaux étudiants. Alors faisons un étudiant. Appelons-les Oui, certains étudiants, pourquoi ou pourquoi pas ? Et le nouvel étudiant. Ainsi, par exemple, nous pouvons appeler le prénom de point d'étudiant comme vous pouvez le voir, et le nom de famille de point d'étudiant. Et comme vous pouvez le voir ici aussi, nous avons oh, vous y allez. Eh bien, attendez une seconde. Faisons-le encore. Voilà, tu y vas. Donc la dernière nous avons get and set afin que nous puissions voir que nous pouvons soit obtenir cette variable, dans ce cas, cette propriété, ou nous pouvons la définir. Maintenant, ce que nous pouvons aussi faire, c'est que nous pouvons le faire bien, vous savez, donc peut-être que nous pouvons changer notre bouton Prénom. Vous avez le nom de famille qui est fixé dans la pierre. Donc on va en faire un ensemble privé. Et si je vais ensuite, comme vous pouvez le voir, je peux toujours accéder au prénom et au nom de famille, mais il est écrit ensemble privé. Et si je dis maintenant, par exemple, quelque chose comme Arnold Smith, alors cela va dire la propriété ou l'index, notre nom de famille ne peut pas être utilisé dans ce contexte car il est défini X est inaccessible, signifie simplement que nous avons un ensemble. Cependant, un bien public. Et c'est l'une des choses très faciles, ou des moyens faciles que nous pouvons définir la variable à privé ou public. Et ce que nous pourrions aussi faire, par exemple, c'est que nous pouvons définir une nouvelle chaîne appelée FullName. Et en utilisant les propriétés, nous pouvons dire obtenir. Et puis au lieu de simplement mettre un point-virgule normal ici, nous pouvons réellement retourner quelque chose que nous voulons avoir retourné. Ainsi, par exemple, nous pouvons renvoyer ce point FirstName plus, puis un espace, ce nom de famille de point. Et avec cela, nous avons en fait, cela pourrait aussi être une méthode, mais nous pouvons aussi simplement le mettre dans une propriété comme celle-ci. Et il n'y a pas d'ensemble à cela du tout parce que le nom complet n'est jamais dit que ce n'est jamais avoir variable que nous changeons. On ne l'obtient que par le prénom et le nom de famille. Et comme juste ajouter rapidement un public. Maintenant, ajoutons en fait un, un âge aussi. Donc en âge avec un getter public et une installation privée, non ? Et c'est aussi facile que d'ajouter ceci. Cela a aussi le bonus ajouté que, bien sûr, lorsque nous, par exemple, définissons quelque chose, nous pouvons réellement, au lieu de simplement envoyer une variable, nous pouvons faire un appel de méthode ou quelque chose comme ça, non ? Nous pouvons, par exemple, en théorie, avoir une variable privée derrière tout. Donc, nous pouvons avoir une variable privée, l'âge, par exemple, disons, Eh bien, disons rien. Et alors ce que nous pouvons faire, c'est au lieu d'avoir le genre de chose pas visible qui est comme invisible avec ces cordes. Nous pouvons le faire et dire ensuite retourner H ici, et puis celui-ci et l'ensemble privé par exemple, nous pouvons aussi le faire et ce serait alors aij est égal à la valeur. Donc la valeur est tout simplement ce que nous passerions là-bas. Et cela fonctionnerait aussi. Je voulais juste montrer rapidement que nous pouvons fondamentalement avoir un excès de pour cette variable qui est alors privée. Et puis last but not least, faisons juste un constructeur Student rapide ici avec string firstname. Faisons-le correctement. Prénom, l'ego, la chaîne, LastName et un entier h. Et puis nous allons juste dire que FirstName est égal à FirstName, LastName est égal au nom de famille, et l'âge est égal à h. Maintenant, encore une fois, nous pouvons définir cet âge parce que nous sont même si le centre est privé, parce que nous sommes en classe. Et nous pouvons, par exemple, si nous donnons maintenant un nom à cet étudiant. Donc, disons Jordan Smith, 31 ans, quelque chose comme ça. Ensuite, bien sûr, nous pouvons déboguer enregistrer quelques choses intéressantes. Ainsi, par exemple, nous pouvons déboguer lock student dot firstName. On peut verrouiller le nom de famille de l'étudiant. On peut aussi regarder le nom complet, non ? C' était la chose intéressante. Et on peut verrouiller l'âge. Cependant, nous ne pouvons pas changer l'âge car comme vous pouvez le voir, le setter est privé. Tu n'as même pas d'installation. Ici. Le vendeur serait également fier et nous pourrions changer le prénom, mais nous ne choisissons pas d'écrire. Donc nous allons juste voir rapidement la sortie de ce maintenant cela ne devrait pas être trop fou, bien sûr va juste à Jordan, Jordan Smith. Et puis le nom complet et puis l'âge comme nous l'avons dit. Et juste pour mentionner rapidement, pourquoi, pourquoi utiliserons-nous les propriétés C Sharp ? Eh bien, je veux dire un lac, Voyons voir. Vraiment bonnes raisons, c'est que nous pouvons découpler l'obtention et le cadre, l'accessibilité fondamentalement, non ? est donc une chose que nous ne pouvons pas vraiment faire avec les champs normaux et les variables normales à l'intérieur des classes. Ça ne marche pas. Et aussi avec avoir le, ayant ceci, donc avoir le getter et le setter et être capable d'avoir fondamentalement ajouté des fonctionnalités dedans. Cela pourrait effectivement fonctionner pour faire en sorte que tout d'abord, si nous voulons changer quelque chose que nous puissions le faire très facilement. Et deuxièmement, nous pourrions, par exemple, tenir un compte. Combien de fois quelque chose est réglé, combien de fois est obtenir si oui ou non ce pourrait ne pas être le meilleur exemple. Mais nous pouvons fondamentalement ajouter des fonctionnalités à l'obtention dans le réglage d'une variable spécifique qui pourrait être utile. Donc, pour le réglage pourrait être quelque chose comme nous voulons toujours enregistrer le paramètre précédent afin que nous puissions changer en arrière ou quelque chose comme ça. Ensuite, nous pouvons toujours enregistrer cela dans une variable différente qui pourrait ne pas être accessible à l'extérieur ou quoi que ce soit. Donc, il y a beaucoup d'applications, mais la principale à emporter, je pense est assez cool est que l'entrée dans le paramètre peut avoir différents paramètres d'accessibilité fondamentalement, non ? C' était déjà pour les propriétés. C' est un rôle relativement important dans C-Sharp. Mais une fois que vous le voyez, c'est assez évident. Habituellement, à l'intérieur de Unity est un peu difficile de travailler avec propriétés parce que Unity n'est pas vraiment un grand fan de propriétés, toutes choses considérées. Mais nous pouvons nous en sortir si nous avons aussi ces champs uniques dans ce cas. Donc, si nous avons les champs privés, alors nous pouvons essentiellement contourner cela. Mais oui, c'était juste une introduction rapide pour les propriétés ici. Comme toujours, s'il y a des questions, hésitez pas à poser et je serai sûr de répondre. Et oui. 32. (C) Héritage: Bon, bienvenue à l'introduction du C-Sharp ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil sur l'héritage. Donc, continuant avec elle, les classes et les objets que nous allons maintenant examiner fondamentalement les sous-classes et l'héritage. Et pour cela, nous avons pour les cours à l'année prête animal, chat, chien et héritage. Si nous les ouvrons tous, alors nous pouvons voir que l'héritage est juste devrait être vide. Je veux dire, tous les cours devraient être vides ou ils sont remplis selon ce que vous avez choisi de regarder. Cependant, l'important ici est que l'animal, le chien et le chat n'ont rien de fantaisie ici. Donc ils n'ont pas de méthode de départ, ils n'ont pas d'héritage. Ils sont en gros vides. Et au script d'héritage ici a la méthode de départ où nous voulons implémenter des choses. Eh bien, nous allons commencer dans la classe des animaux. Et pensons, je veux dire, qu'un animal a beaucoup de choses différentes, comme les attributs qu'il pourrait avoir et le champ. Ça aurait pu l'être. La seule chose qui nous intéresse vraiment en ce moment est une chaîne protégée. On va appeler ça l'espèce. Et rappelez-vous en arrière, donc les variables protégées uniquement accessibles par les sous-classes. Et c'est juste. Nous nous souvenons que nous avons eu cela dans la conférence sur les modificateurs d'accès où nous avons vu qu'il y avait des espaces publics, protégés, privés et protégés entre eux. Et nous allons voir comment nous pouvons utiliser ça à notre avantage en ce moment en héritage. Donc, nous allons alors créer deux méthodes ici, public void run, qui va simplement déboguer le journal de points ce qui suit. Donc ça va faire que cette espèce de points est en cours d'exécution. Et puis on va juste copier ça. Et on va tenir l'autre méthode, manger. Et puis on va juste dire que cette espèce est en train de manger. Et c'est tout pour l'animal en ce moment. Maintenant, réfléchissons à ça. Quels sont certains animaux maintenant, bien sûr, j'ai déjà le chien et le chat. Cependant, vous pouvez aussi avoir un BVA ou se déplace ou une flèche, grand requin blanc par exemple, il y a beaucoup d'animaux. Et bien sûr, ce qu'ils ont tous en commun, c'est qu'ils sont un animal, mais ils ont aussi des choses différentes qu'ils peuvent faire. Donc peut-être qu'il y aura quelque chose d'intéressant ici. Mais la première chose que nous allons faire est à l'intérieur de la classe de chiens, nous allons le faire pour qu'il hérite de l'animal. Comment on fait ça ? Nous allons après le chien de classe publique, puis nous tapons un côlon, puis la classe dont il dérive, donc dans ce cas, l'animal. Et qu'est-ce que cela apporte aussi maintenant, comme vous pouvez le voir, rien ne s'est passé ici. Ça a l'air de marcher. Rien d'intéressant qui se passe ici. Ce qu'on peut faire, c'est qu'on peut faire un nouveau chien public ? Donc, c'est un nouveau constructeur ici. Et bien, nous savons que c'est un chien, donc nous n'avons pas vraiment besoin de changer le nous n'avons pas besoin de leur donner des paramètres. Qu' en est-il de l' espèce, donc, Ok, eh bien, cette espèce de point. Comment puis-je accéder à l'espèce ? Ce n'est pas, je, je n'ai rien déclaré bien, parce que nous avons tiré cette porte de l'animal. Et à l'intérieur de l'animal, nous avons une espèce d'appel à chaîne protégée. C' est pourquoi nous pouvons le changer ici et nous pouvons, par exemple, dire chien. Et maintenant le, chaque fois que nous créons un chien qui est un objet, aura des espèces, le champ, fondamentalement réglé sur les chiens. Maintenant, faisons aussi une méthode publique appelée écorce. Journal des points de débogage. Pas une flèche, mais normale. Faisons en sorte. Allons aboyer, aboyer. Pourquoi pas ? Ils y vont. Je veux dire, ça pourrait être n'importe quoi, mais faisons-le comme ça. Et puis nous allons aussi dans le catalyseur. En fait, il suffit de copier ça rapidement parce que ça va le rendre un peu plus facile. Et puis aussi faire cet animal. Donc cela hérite de l'animal. C' est un chat. Vous ferez un chat et il va réellement miauler s'il vous plaît. Et celle-là ? Et puis on va miauler une fois parce que c'est génial, non ? Et maintenant, nous avons un chat, un chien, et ce sont tous les deux des animaux. Mais maintenant, la question arrive, eh bien, je veux dire, que pouvons-nous faire maintenant ? Vraiment comme où ? Où est le truc intéressant ici ? Et ce qui est intéressant vient de ça. Disons qu'on a un chien appelé Fluffy. Et c'est un nouveau doc juste pour des raisons d'argumentation. Maintenant moelleux, maintenant. Moelleux. Si je peux l'écrire correctement, l'ego peut aboyer. Il peut manger, et il peut courir. Mais si on regarde en arrière, donc si je dis qu'il va courir, si on pense à cette seconde largeur, c'est un chien. Je veux dire, nous n'avons pas spécifiquement dit qu'un chien peut courir, un animal peut courir, mais nous n'avons pas aimé redéfinir cette méthode à l'intérieur du chien. Cependant, cela fonctionne toujours. Et si nous regardons les définitions ici, donc si je mets en moelleux et que je survole si sélectionné comme vous pouvez le voir, écorce est des chiens. Donc c'était la méthode en sorte de manger du chien est une méthode à l'intérieur de l'animal. La même chose avec la course. Ce sont les deux méthodes qui ont, nous avons créé dans la classe des animaux et la classe des chiens. Et disons juste pour la dernière chose qu'on va faire, une écorce de pois moelleux, non ? Et voyons voir. Donc, ce que nous attendons ici, c'est que nous voudrions voir le chien est en cours d'exécution, puis nous quai ne mangent pas et puis aboient, aboient, je crois que c'est ce que nous voulons voir. Voyons si ça marche. Alors faisons-le celle-là. Oui. Comme vous le voyez, le chien est maintenant en cours d'exécution, journal, est maintenant manger et aboyer, aboyer. Tout fonctionne très bien. On pourrait bien sûr faire la même chose avec la caméra en ce moment. Alors faisons-le juste ça. Le chat entier lui moustache. Bien sûr, c'est un super nom. Moustaches, point run. Juste la même chose. Et les moustaches peuvent aussi manger. Et aussi miauler dans ce cas parce que les moustaches sont chat. Maintenant, une chose intéressante, très intéressante. Parce que les deux, considérons ça un peu, Diego. Parce que ce sont tous les deux des animaux. Peut aussi avoir un animal appelé Henry. Et c'est, par exemple, dans le nouveau chat droit ? Maintenant, ça marche. Précédemment. Nous avons toujours vu que le type de données que nous avons donné une variable doit être le même que, disons le constructeur que nous créons. Cependant, parce que le chat est un animal, nous pouvons également sauver ce nouveau chat à l'intérieur d'un animal. Une variable qui fonctionne. Et quand nous appelons Henry dot-dot eat et Henry dot run, par exemple, changeons cela pour que nous l'ayons partout correctement. Et puis je vais aussi juste mettre dans une petite année divisée pour que nous sachions qui est lequel. Donc, après le diviseur, on devrait voir les moustaches. Alors chien courir chien manger que l'aboiement, cap courir chat manger Meow, puis chat et chat courir à nouveau. Oui, exactement. Donc nous avons l'aboiement de chien, nous avons chat chat, miaou, nous avons continué à courir chat ED. Même si Henry est un animal. Donc le m, c'est un animal. Il peut faire tout ce qu'un animal peut, mais il ne peut pas faire quoi ? Un chat. Alors Henry, Henry.moi. C' est une boîte de voir ne marche pas. Il va lancer une erreur parce que l'animal, il ne contient pas de définition pour miaou parce que nous ne savons pas actuellement que c'est Henry est un animal, un chat. Nous savons que c'est un animal et une raison. Mais Katas comme Mao ne marche pas. Henri que le mâle ne fonctionne pas. Quoi qu'on puisse faire, c'est qu'on peut jeter Henry à un chat. Si nous savons que c'est un chat, nous ne le savons pas nécessairement, mais dans ce cas, c'est un de ces moments où nous pouvons avoir un coût plus complexe, disons. Il y a donc deux façons de le faire. Nous pouvons, par exemple, taper, désolé, nous pouvons taper Henry comme chat, miaou, comme vous pouvez le voir. Ça marche. Donc, c'est le mot clé comme est tout simplement presque le même que le coût. Et nous pouvons aussi faire essentiellement deux parenthèses, mettre chat, comme nous l'avons vu avant, puis faire Henry et ensuite miaou. Donc ce serait deux façons de jeter Henry à un chat. On sait qu'Henry est un chat. C' est pour ça que ça marche. Si, par exemple, nous faisons quelque chose comme ça. Alors chien et puis dire aboyer. Je ne le ferais pas. Je veux dire, voyons ce qui se passe. Tu as raison. Je veux dire, c'est parce que nous pouvons bien sûr le faire aussi et voir ce qui se passe ici. Et vous pouvez voir que nous obtenons une référence nulle parce que cela, bien sûr, ne fonctionne pas parce qu'Henry n'est pas un chat. Henry est un, Henry n'est pas un chien. Henry est un chat. J' ai dit chat et chien tant de fois. Je ne sais même plus où ajouter. Alors voilà, miaou et un autre miaou. Comme toujours. S' il y a des questions, hésitez pas à poser et je serai sûr de répondre. Et oui. 33. (C) Polymorphisme en polymorphisme: Bon, bienvenue à l'introduction pointue C ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil sur le polymorphisme. Maintenant, c'est un mot géant pour un concept aussi facile. Quand on y pense vraiment, c'est ridicule. Jetons donc un coup d'oeil à notre classe d'héritage et à nos clauses sur les animaux, les chiens et les chats. Maintenant, ce que nous avons fait est que nous avons eu la dernière conférence une méthode appelée Eat, qui fondamentalement juste sortir cette espèce de point est en train de manger maintenant. Et ce qu'on va faire, c'est dire que chiens et les chats peuvent manger des choses différentes. Par conséquent, ce qu'on va faire, c'est qu'on va remplacer ces méthodes. Même si ils sont un appel de méthode, une citation par la classe Animal, Nous allons maintenant faire une nouvelle fonctionnalité en eux et nous allons taper en public connu, vide, manger. Donc, le sans les sept, de préférence ils vont. Idée ici étant que le, que toute la signature de la méthode est la même sauf pour cette nouvelle. Et ce nouveau signifie fondamentalement un, ce sera une nouvelle méthode avec le même nom. Et nous allons dire cette espèce de points. Maintenant est maintenant de manger un steak, par exemple, pour le chien. Droit ? Alors mettons-le ça et on va le copier rapidement au chat. Et puis celui-ci boit peut-être du lait. Et ils vont, nous avons maintenant créé pour manger des méthodes à l'intérieur de nos classes héritées. Et ce que nous allons voir, c'est que toutes les instructions, pour ainsi dire, vont se transformer en ce qu'est exactement le chien ou le chat, vous savez, ce qu'ils mangent. Alors faisons ça et voyons ce qui se passe ici. Si nous descendons, comme vous pouvez le voir, chien est maintenant en train de manger du steak, cap, il boit maintenant un peu de lait. Et maintenant, la chose très intéressante, parce que ici, Kant est maintenant en train de manger. Pourquoi est-ce cool, même si c'est un chat ? Rappelons-nous que Henry est en fait un animal. Par conséquent, l'animal qui mange devient froid. Et ici, le chat dot-dot devient froid, ils voient. Donc, c'est aussi l'une des choses intéressantes que vous pouvez avoir plusieurs définitions ou implémentations différentes, dans ce cas, une implémentation différente de la même méthode. Et selon ce qu'est la sous-classe, nous pouvons en avoir différentes implémentations spécifiques. Et même quand nous l'appelons sur l'animal, il peut avoir une implémentation différente, différente de celle sur les classes dérivées. Un autre exemple de cela que j'ai vu plusieurs fois est que vous pouvez avoir une sorte de zone, donc une classe de zone. Et puis cela pourrait avoir getArea comme méthode. Et puis la classe d'algèbre peut être héritée par, par exemple, un carré et un cercle. Et alors que la zone de, vous savez comment obtenir la zone ou la zone est la même dans le sens où c'est, disons par exemple, mètres carrés, c'est toujours la zone. Mais la façon d'arriver à la zone pour un carré est différente d'un cercle. C' est pourquoi vous avez besoin de différentes implémentations pour fondamentalement la même chose que vous voulez finir avec quatre sous-classes différentes à titre d'exemple, n'est-ce pas ? C' est en fait ça. Si pour le polymorphisme, ce n'est pas la plus grosse chose. Et je ne conseillerais pas non plus de m'y attarder trop. C' est un grand mot pour un concept très simple. Et je pense que même dans le yen, une dernière chose est que la surcharge de la méthode que nous avons déjà vu dans la façon Lecture, façon un objectif qui est fondamentalement aussi polymorphisme. Cela signifie simplement que vous avez plusieurs méthodes avec le même nom ou plusieurs implémentations d'une méthode, et elles ont toutes le même nom. Donc, ce serait aussi considéré comme polymorphisme. Je dirais que c'était en fait une chose assez facile à comprendre. Bien plus facile que le nom de polymorphisme suggère. Et oui, c'est fondamentalement tout pour cette conférence. J' espère que vous l'avez trouvé utile s'il y a des questions comme toujours, hésitez pas à poser et je serai sûr de répondre. Et oui. 34. (C) Cours de synts et méthodes abstraites en C#: Bon, bienvenue à l'introduction du C-Sharp ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil à des méthodes abstraites, une classe abstraite. L' idée est que nous allons continuer avec les classes, l' héritage, les choses côté de C Sharp. Et nous avons trois scénarios ici, l'abstrait, l'animal abstrait et le castor. Numéro un, maintenant le castor d'abord, ou nous allons regarder le castor, être vides. La classe Animal abstraite doit être vide. Et puis l'abstrait est une fois de plus celui avec la méthode étoile, mais aussi vide. Et la première chose que nous allons faire est l'animal abstrait va obtenir un nouveau mot-clé ici, et c'est le mot-clé abstrait. Donc, nous allons en faire cette classe abstraite spécifique. Ce que ça veut dire, nous allons voir dans quelques instants. Mais tout d'abord, remplissons cette classe avec des choses familières, telles qu'une chaîne protégée par un prédicteur, espèces, des espèces, puis aussi une méthode d'exécution du vide public. journal de points de débogage avec cette espèce de points est maintenant en cours d'exécution. Maintenant, nous avons vu cela dans l'héritage normal avant que nous avions une méthode run. Et maintenant, nous allons définir une méthode abstraite aussi. Maintenant, la méthode abstraite va être très intéressante. Donc, ce sera un vide abstrait public. Et on va appeler ça la méthode du son animal. Et puis on va fermer ça avec un point-virgule. Et comme vous pouvez le voir, c'est tout parce que, et ce sont les choses intéressantes. Donc, les méthodes abstraites n'ont pas d' implémentation, implémentation à l'intérieur des classes ab Droit ? C' est ce qui est très intéressant. Et ce qui est intéressant, c'est que le dérivé ou les sous-classes, non ? Ils doivent, ils doivent le mettre en œuvre individuellement. C' est aussi très intéressant à voir. Et le mot-clé abstrait pour spécifique, pour des méthodes spécifiques ne peut être utilisé qu'à l'intérieur des classes abstraites. Donc, si nous ne faisons pas cet abstrait, alors assez tôt nous allons voir est abstrait mais contient dans une classe non abstraite qui ne fonctionne pas. Par conséquent, nous devons rendre cette classe abstraite afin que nous puissions utiliser ce mot-clé abstrait pour une méthode spécifique. Maintenant, le castor, au lieu de dériver de l'animal, va être un animal abstrait. L' idée est presque la même. La différence ici est juste que, eh bien, je voulais montrer le mot-clé abstrait avec un exemple similaire avec lequel nous avons montré l'héritage. Et le castor maintenant il a une flèche ici et il dit, ne met pas en œuvre les méthodes abstraites héritées, animal abstrait, son animal. Maintenant, ce que nous pouvons faire est que nous pouvons réellement le réparer avec les multiples façons que nous pouvons soit aller à la, en fait, il est plus facile d'aller ici et dire implémenter la classe abstraite. Et puis il va le faire tout seul. Nous allons donc écraser la méthode des sons animaux. Et puis il va immédiatement être comme lancer une nouvelle exception ici. Nous n'avons pas vraiment besoin de ça parce que nous. Eh bien, je veux dire, je ne sais pas ce que dit le castor, mais disons que ça dit quelque chose comme OK. Et puis nous pouvons aussi faire un Vivre public. Et puis on dira que cette espèce de point est égale à Beaver. Et oui, c'est essentiellement l'idée d'une méthode abstraite. Nous devons donc utiliser le mot-clé override ici afin de remplacer la méthode abstraite et de préciser qu'il s' agit essentiellement de l'implémentation du castor. Nous pouvons aussi penser à, penser au chat et au chien. S' ils devaient avoir l'animal abstrait comme là, la superclasse, alors nous pourrions imaginer que nous ferions exactement la même chose. Et puis l'échantillon animal, fondamentalement le loup et le miaou que nous avons précédemment dans l'animal normal et l'exemple de chat et l'exemple de chien que nous avons mis en œuvre fondamentalement comme un similaire sur notre propre, sur la, sur les sous-classes elles-mêmes. Dans ce cas, cependant, nous l'avons réellement implémenté ici. Dans la classe abstraite, était le, eh bien, fondamentalement l'idée. Et puis l'implémentation est réduite à chacune des classes dérivées. Maintenant ce qu'on peut faire, on va enterrer le castor. Pourquoi pas ? Je suis Barry le castor et la baie. Tout d'abord, fuis parce que c'est ce qu'il pourrait faire. Et puis il saura qu'il ne va pas manger. En fait, il ne peut pas manger maintenant. Mais ce que nous pouvons faire, et c'est la grande chose. Barry peut faire du son animal. Donc très peut faire le son animal. Et puis il y a une autre chose que je voulais vous montrer quand il s'agit des classes abstraites. Animal abstrait, non ? On peut juste dire animal abstrait, comme on l'a fait avec l'animal. Et disons par exemple, nous avons Marie le castor à court et ensuite nous avons un nouveau castor. Mais ça marche. Marie est une bête abstraite. Mais si nous voulons faire ce qui suit, donc nous voulions faire l'animal abstrait Larry, parce que nous allons avec elle est un nouvel animal abstrait. Ce que nous allons voir, c'est que cela ne fonctionne pas parce que nous ne pouvons pas créer une instance de la classe abstraite ou de l'animal abstrait de l'interface. Donc, l'idée ici est que nous ne pouvons pas créer des instances d'une classe abstraite. C' est ce qui est vraiment important ici. Donc une classe abstraite, c'est pourquoi c'est abstrait. Il ne peut pas avoir, vous ne pouvez pas avoir un animal abstrait dans ce cas. Maintenant, quand on y pense vraiment, il est logique que certaines choses. Donc, par exemple, même dans le cas d'un animal, on pourrait imaginer, eh bien , je veux dire, avoir juste un nouvel animal n'a pas vraiment de sens quand on y pense vraiment. Nous avons besoin d'une sorte de chose plus précise. Donc même un castor qui est comme beaucoup plus spécifique qu'un animal. Donc on pourrait imaginer, eh bien, faire un animal égal à un nouvel animal n'est pas, ça n'a pas vraiment de sens. Donc, dans ce cas, c'est encore, donc nous ne pouvons pas vraiment créer de nouvelles instances de classes abstraites. Et cependant, ils ont l'avantage supplémentaire d'avoir le son animal ici. Et puis aussi, si nous avons Marie, par exemple, nous pouvons encore dire Mary dot son animal. Et Marie va toujours dire : Ah, alors voyons. Nous aurions d'abord castor est maintenant en cours d'exécution et puis, puis sur. Le premier bien sûr, est d'enterrer le castor, puis le marié le castor a fait au second. Et nous pouvons bien sûr appeler cela parce que rappelez-vous quand nous n'avons pas cela implémenté, nous avons effectivement eu une erreur dans la classe viva parce que ces méthodes abstraites doivent être implémentées, non ? Donc, comme vous pouvez le voir, j'ai choisi le mot doit année. Ils doivent être mis en œuvre. n'y a pas d'autre moyen. Et oui, c'est l'introduction de base à la classe abstraite et à la méthode abstraite. Aussi dans tout cet écosystème de programmation orientée objet, incroyablement utile et incroyablement intéressant. Mais pour l'instant, je crois qu'on va laisser ça. Comme toujours. S' il y a des questions, assurez-vous de poser et je serai sûr de répondre. Et oui. 35. Méthode virtuelle (C): Bon, bienvenue à l'introduction du C-Sharp ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil aux méthodes virtuelles. Maintenant, les méthodes virtuelles, un peu comme l'abstrait, les homologues abstraits, elles sont très similaires. Ils peuvent être quelque chose qui a à voir une fois de plus avec l'implémentation dans les sous-classes et non. Alors jetons un coup d'oeil à l'animal abstrait à nouveau. Et ajoutons notre bon vieux favori, le public éviter manger méthode. Et ajoutons également le journal de débogage. Disons que cette espèce est en train de manger. C' est quelque chose que nous avons bien sûr vu de nombreuses fois, Pas tout à fait, mais nous l'avons vu avant. Et maintenant, au lieu d'avoir simplement cela une méthode normale, nous allons en faire une méthode virtuelle. Maintenant, à première vue, rien n'a changé parce que l'idée de cette méthode virtuelle est qu'un, c'est fondamentalement un membre qui peut être remplacé par le dérivé ou la sous-classe. Donc, dans le cas du castor, nous pouvons choisir de le remplacer ou non. Maintenant, dans notre cas, nous allons l'écraser. Et ce que nous faisons c'est que nous faisons simplement la même chose que nous avons fait avec la méthode abstraite juste parce que ce n'est tout simplement pas un, ce n'est pas un must. Donc, nous n'avons pas besoin de le faire écraser. Et puis comme vous pouvez le voir, il est en fait déjà présenté ici. Et dans ce cas, si nous appelons la base dot-dot, c'est ce qui se passe. Il refroidit en fait la méthode virtuelle ici. Mais dans notre cas, on ne veut pas appeler ça. Parfois, il se peut que nous sachions que nous voulons appeler cela. Mais le plus souvent, j'ai trouvé que tu ne voulais pas vraiment appeler ça aussi. Et puis faisons ça. espèces de points mangent maintenant du bois. Par exemple, parce que bien sûr, nous avons affaire à des castors. Et maintenant, nous pouvons, si nous revenons dans le script abstrait, par exemple, fois Barry dot-dot et aussi Mary dot-dot. On sera heureux. Donc, comme vous pouvez le voir maintenant, il est également très important est une fois de plus, parce que Marie est un animal abstrait ici. Barry obtient un point de castor, Marie obtient, obtient un animal abstrait, un point à point. C' est fondamentalement la même chose que nous avons vu avec le polymorphisme. Cependant, dans ce cas, parce que nous avons une méthode remplacée, les deux charbons sont pour la chose que la BVA a faite. Même si Marie est un animal abstrait. C' est aussi un castor. Et c'est pourquoi à la mise en œuvre du castor est appelée, dans ce cas, pour la méthode virtuelle, non ? C' est en fait ça. Pour les méthodes virtuelles, il n'y a rien de fantaisie à ce sujet. Comme vous pouvez le voir, il y a beaucoup de chevauchement dans beaucoup de ces choses. Cependant, il y a des différences assez subtiles. Comme je l'ai dit, une méthode abstraite doit être implémentée par une sous-classe ou une classe Dr. Une méthode virtuelle peut être écrasée, très importante. Aussi très important. Une méthode virtuelle peut exister dans n'importe quelle classe. Une méthode abstraite ne peut exister que dans les classes abstraites avec, et c'était tout pour cette conférence. J' espère que vous avez trouvé utile s'il ya des questions comme toujours se sentir libre de poser maintenant assurez-vous de répondre. Et oui. 36. (C) Interface C C Interface pour C: Bon, bienvenue à l'introduction du C-Sharp ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil aux interfaces. Donc, les interfaces sont quelque chose qui est très similaire aux classes abstraites, mais d'une manière ou d'une autre encore un peu différent. Comme vous pouvez le voir, nous avons ici les interfaces d'un avion et d'un script oiseau. Et nous allons aussi créer un nouveau script. Et il va y avoir un nouveau code de script C-Sharp que je peux voler. Et nous allons ignorer celui-ci et l'erreur ici, ou plutôt l'avertissement. Et nous allons simplement double-cliquer sur l'IA Flyable. Débarrassez-vous de tout ce qui est à l'intérieur d'ici, aussi ceci, et au lieu d'une classe publique, ce sera une interface publique. Il, maintenant le nom va tourner une sorte de couleur jaune. Et à l'intérieur, nous allons définir fondamentalement une, une méthode abstraite. Mais cela ne va pas être abstrait, il va juste être fondamentalement le type de retour, puis le nom de la méthode, parenthèses, et c'était tout. C' est littéralement tout ce que nous devons faire pour mettre dans l'interface dans ce cas. Ainsi, l'interface ième étiquette peut être implémentée par une certaine classe qui devrait bien avoir la capacité de voler. Bien sûr, l'avion et l'oiseau des deux ont la capacité de voler. Par conséquent, les deux vont implémenter l'interface Flyable AI. C' est la même idée que nous avons mise dans le côlon ici. Et puis nous pouvons voir, hé, n'implémente pas les membres de l'interface. Donc on va dire, ok, faisons-les. Et puis nous devons simplement implémenter la méthode fly afin que cela puisse être appelé. Dans notre cas, ce que nous allons faire pour l'avion, c'est qu'il va simplement démarrer les moteurs à réaction. Les moteurs, ils vont. Et dans l'oiseau, on va avoir quelque chose de très, très intéressant ici. On va dire que c'est un animal. Vous pouvez aussi, nous pourrions aussi dire que c'est un animal abstrait. On va juste dire animal. Et il est aussi si deux virgule i flyable. Et puis nous devons également implémenter l'interface. Et ici, nous allons faire ce qui suit. Nous allons dire déboguer le journal des points, battre. Faisons des battements. Ses ailes. Ils y vont. Et comme vous pouvez le voir, l'oiseau est maintenant un animal et un œil volable. Et ce n'est vraiment pas le cas. Ils ne devraient pas être comme mutuellement exclusifs. Pourquoi ? Droit ? Parce que bien sûr, si vous êtes un animal, vous pouvez voler que, qui a du sens dans un avion, peut également voler. Ce qui est important, c'est qu'une classe ne peut toujours hériter qu'd'une autre classe. Cependant, il peut avoir plusieurs interfaces implémentées. Et voyons juste à quoi cela ressemblerait à l'intérieur de notre méthode de démarrage d'interfaces ici. Donc, on va avoir une liste de je peux voler. Et on va appeler ça des choses qui peuvent voler. Parce que c'est littéralement ce que l'interface Flyable AI essaie essentiellement de nous montrer. Et nous allons dire des choses qui peuvent voler point ajouter. Et puis on va le dire, nouvel oiseau. Et on va copier ça et dire un nouvel avion. Et puis ajoutons quelques uns. Rendons ça un peu aléatoire. oiseau ici, un avion ici, et l'oiseau ici et peut-être un avion à la fin aussi. Ils y vont. Et puis nous allons juste avoir une pour chaque boucle à la fin ici. Et maintenant, la chose intéressante est au lieu d'avoir ce soit oiseau ou avion, nous pouvons avoir ce que je volable, appeler ce flyable, puis regarder dans les choses de collection qui peuvent voler. Et puis appelez la mouche à point volable. Et maintenant pourquoi est-ce une chose si intéressante et folle ? Oh, désolé, voilà. Désolé, voilà. Pourquoi c'est une chose aussi folle et intéressante ? Eh bien, nous avons défini ou mis en œuvre spécifiquement moteur à réaction ou les ailes dans chacune des classes qui ont mis en œuvre l'interface de flyable oeil. Mais nous appelons toujours la méthode fly sur l'interface flyable. Alors que va-t-il se passer ? Eh bien, nous aimerions voir est exactement ceci. Eh bien, c'est en ce moment effondré. Alors faisons qu'il ne s'effondre pas. Et puis comme vous pouvez le voir, battant ses ailes et puis démarrer les moteurs à réaction, moteur Stirling battant ses ailes, battant ses ailes, démarrant les moteurs plats tournant, basculant et les moteurs à réaction. Donc, même si nous avons tout froid sur l'interface ici, sur l'interface en tant que type de données, nous avons toujours obtenu les méthodes implémentées réelles. Et c'est exactement la grande chose à propos de l'interface. Parce que tant qu'on sait, accord, quelque chose est un œil qui peut voler. On peut toujours appeler fly dessus. Et ça va toujours marcher. Et puis le grand chose est que nous pouvons aussi le convertir en une sorte d'interface Flyable IA. Et ça marchera encore que nous puissions dire, ok, faisons la méthode de la mouche sur ce sujet. La, une autre chose intéressante que j'ai eu avec cela qui sont en fait était comme un vrai cas d'utilisation que j'avais dans Like peu comme un jeu de loisirs que je programmais était que j'avais. Donc c'était essentiellement imaginer comme un RPG 2D, disons, comme Zelda. Et comme le vieux Zelda, disons. Et vous avez pu parler à des choses précises. Donc, vous êtes capable de parler à certaines personnes, bien sûr, à droite, PNJ. Mais alors vous pouvez aussi appuyer sur la touche supérieure, par exemple, pour une console spécifique ou s'il y avait un poêle, alors vous pouvez dire, hey, qu'est-ce que ce poids ? Et vous pouvez cliquer et en sorte de parler à elle dans plus ou moins. Et j'ai mis en place une interface bulle I talk. Et que je parle de l'interface alors m'a donné la possibilité de fondamentalement quoi que ce soit la chose, de parler, avoir fondamentalement la méthode de conversation, parler vide ou même parler de printemps, quelque chose comme ça. Et j'ai ensuite pu, une fois la mise en œuvre dans, par exemple, un PNJ ou autre, j'ai été en mesure de faire la mise en œuvre là. Qui que soit la chose principale qui a été recherchée, c'est que je parle, je parle oui. Alors parle-moi. Et oui, c'est que l'interface peut être utilisée dans de nombreuses choses différentes et je suis sûr que nous allons voir quelques exemples de cela dans la programmation réelle quand nous arriverons à l'unité. En ce moment, c'est, oui, ce serait pour l'interface. J' espère que vous l'avez trouvé utile comme toujours. S' il y a des questions, n'hésitez pas à poser et je serai sûr de répondre. Et oui. 37. (C) Enums: D' accord, continuons avec l'introduction au C pointu ici pour le cours de l'unité. Dans cette conférence, nous allons jeter un coup d'œil aux énumérations. énumérations sont fondamentalement une sorte de dernier type de Big Data que nous allons examiner. Ils ont la capacité où on peut en quelque sorte, c'est une sorte de liste prédéfinie. Jetons un coup d'oeil. Nous avons donc deux scripts, le script de difficulté du jeu et au script enum. Ouvrons d'abord la boucle interne. Et passons immédiatement au script de difficulté du jeu. L' idée est qu'il y a deux façons ou une sorte de deux endroits où nous ne pouvions pas définir une énumération. Nous pouvons soit définir une énumération dans son propre script ou nous pouvons définir en quelque sorte d'un autre script ou, en regardant une classe. Personnellement, je pense qu'il vaut mieux les mettre dans leur propre script. Cependant, il peut être parfois plus facile de les mettre simplement fondamentalement à côté du script où ils appartiennent. Donc, nous avons la difficulté de jeu enum et nous allons définir facile, moyen et dur. Et comme vous pouvez le voir, c'est ainsi qu'une sorte d'énumération fonctionne. Nous avons énumération publique et le nom de l'énumération. Et puis le genre individuel de choses prédéfinies que cela peut être pour nous. Pour la difficulté de jeu, il peut être facile, moyen ou difficile. Ce sont donc les trois seules choses que cela peut être. C' est pourquoi, par exemple, une instruction switch avec une énumération est vraiment utile car vous n' avez que des choses prédéfinies qu'il peut être. Par conséquent, c'est une application où cela peut être vraiment utile. Maintenant, nous pouvons aussi faire, c'est que nous pouvons en théorie. Donc, disons, par exemple, énumérer le langage et définir la langue. Ainsi, par exemple, l'allemand, anglais, le français, ou quelque chose comme ça. Et puis nous avons créé une énumération à l'intérieur de cette classe enums. Comme je l'ai dit, parfois peut être utile, parfois pas parce que c'était, vous voulez accéder à cela en dehors de la classe. Ensuite, bien sûr, vous devez le rendre public et aussi vous devrez alors appeler enums dot language. Donc ça peut être un peu bizarre parfois. Mais de toute façon, créons une nouvelle difficulté de jeu de deck, par exemple, appelez ça difficulté de jeu égale difficulté de jeu point facile. C' est ainsi que cela est écrit. Donc, cela crée une nouvelle variable de type difficulté de jeu, puis le définit à la valeur facile. Nous pouvons également faire la même chose avec la langue, langue et faire de la langue point anglais, parce que c'est ce que c'est. Et si nous devions alors déboguer dot log ceci, donc par exemple, difficulté du jeu, et copions ceci et déboguer le langage de verrouillage de débogage. Alors. Voyons ce qu'on peut en tirer. Certains intéressant, bien, facile et anglais. C' est donc exactement ce que nous avons écrit ici. Donc c'est aussi un peu sympa que nous pouvons simplement sortir. Et cela obtient la sortie. Pourquoi utiliserions-nous des énumérations au lieu d'une ANOVA, par exemple, comme une chaîne ou quelque chose comme ça. Eh bien, dans une corde on peut toujours faire une flèche. On peut mal taper quelque chose ou quelque chose comme ça dans une énumération. Nous l'appelons toujours en appelant le nom de l'enum , puis dot, puis quelles que soient les valeurs prédéfinies pour cela. Par conséquent, nous ne pouvons pas vraiment mal taper quoi que ce soit. Ouais, et c'est fondamentalement déjà pour les énumérations peuvent être vraiment, vraiment utile pour certaines choses. La meilleure chose est encore une fois d'essayer un peu avec elle, voir ce que vous pouvez voir. Et puis je crois que dans les conférences à venir, surtout quand nous regardons plus que nous allons voir quelques exemples de ceux-ci aussi. Donc oui, c'était tout pour cette conférence. J' espère que vous l'avez trouvé utile. S' il y a des questions comme toujours, hésitez pas à poser et je serai sûr de répondre. Et oui. 38. (C) Exceptions et tentatives de and la déclaration: Bon, bienvenue à l'introduction du C-Sharp ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil aux exceptions. Alors, quelles sont les exceptions ? Nous en avons déjà vu quelques-uns quand il y a une erreur. Fondamentalement, c'est ce que nous pourrions appeler une exception. Mais ouvrons juste le script d'exception ici et voyons ce que nous pouvons voir. Donc, tout d'abord, nous allons faire un nouveau tableau entier ici avec deux entiers. Et puis nous allons dire le journal des points de débogage. Et puis on va dire les numéros trois. Je veux dire, d'ailleurs, nous pouvons aussi faire les numéros deux, et cela va essentiellement jeter une exception. Maintenant, qu'est-ce qu'une exception ? Eh bien, pensons-y comme ça. Disons juste, faisons-le bonjour. Je suis aussi ici est une autre sortie que nous allons faire après avoir appelé les numéros deux, qui bien sûr n'existe pas parce que les nombres ne vont que de 0 à un, parce que 0 est le premier index et ensuite le second index est un. Alors appelons ça une fin. Comme nous pouvons le voir, nous allons avoir l'index hors de gamme exception. Index était en dehors des limites du tableau, et puis tout après il n'a pas été mis en attente. Maintenant, pourquoi est cette exception ? Pourquoi avons-nous besoin de pourquoi cela se produit-il ? Que se passe-t-il ici ? Bien sûr, nous avons fait une erreur ici. L' erreur dans ce cas était que nous essayons d'accéder à un numéro ou quelque chose qui n'existe pas, et donc cela va lancer une exception. Maintenant, on peut faire quelque chose à ce sujet. Et ce que nous pouvons faire à ce sujet, c'est que nous pouvons essentiellement nous assurer que nous ne le faisons pas même si une exception se produit, tout continue. Donc, j'ai essentiellement commenté ceci et nous allons créer une nouvelle méthode pour cela. Juste pour le montrer, nous allons appeler ça la méthode de division. Nous allons juste diviser le flotteur a et le flotteur b. Donc nous allons retourner a divisé par b. Et fameusement, vous ne pouvez pas diviser par 0. Donc si d est égal à 0, ce qu'on va faire, c'est qu'on va lancer une nouvelle exception, froide ou un message à l'intérieur. Vous ne pouvez pas diviser par 0. Alors faisons-le juste ça. Donc, faisons déboguer le journal de points. Divisons quelque chose comme dix divisé par cinq. Et puis une seconde. On va faire 22 divisés par 0. Appelons ça comme ça. Et voyons ce qui se passe. Commençons. Et comme nous pouvons le voir, nous allons avoir une exception ici levée. Vous ne pouvez pas diviser par 0 exactement le message que nous avons mis ici. Ce que nous pouvons aussi faire est de simplement mettre dans un 22 divisé par 0 aussi bien. Mettons-le comme ça. Et comme vous pouvez le voir, cela ne fonctionne pas parce que 0 est une constante. Donc, nous aurions besoin de faire quelque chose comme float z et je ne suis même pas sûr, ok, celui-ci fonctionne parce que le, c'est une variable et il ne vérifie pas les variables. Si on fait ça, on va entrer, on va devenir infini. Très intéressant. Donc l'infini, qui bien sûr. Vous pourriez dire, Eh bien, je veux dire, c'est plutôt bon, n'est-ce pas ? C' est bon. Je devrais deviner que cela va casser beaucoup plus de choses que d'avoir l'exception levée dans ce cas. Alors pourquoi ? Pourquoi avons-nous besoin de ça ? Que pouvons-nous faire ? Eh bien, nous pouvons faire ce qui suit, et c'est une bonne chose. Ce qu'on peut faire, c'est faire quelque chose qu'on appelle essayer et attraper. Donc, nous allons mettre dans le mot-clé try. Et puis on va mettre le mot clé qui a des parenthèses après. Et puis à l'intérieur d'ici, nous allons faire exception e. et puis mettons juste le débogage à l'intérieur de ceci. Et disons aussi avoir un débogage ici. Et on va déboguer le journal. Voyons voir avertir l'exception. Et nous allons, oui, faisons-le juste ça. Et nous allons aussi, par exemple, en mettre un autre. Donc un 120 par six ou quelque chose comme ça. C' est l'exception de ceci est la normale et ce n'est qu'un après. Voyons ce qui se passe maintenant. Appelons ça. Et comme vous pouvez le voir, deux et puis nous obtenons l', l'exception système. Vous ne pouvez pas diviser par 0. Maintenant, ce n'est plus une erreur parce que ce que nous avons fait est que nous avons cité l'exception avec ce catch. Et ce qui a fait. Et ce qui est possible ici, c'est que nous pouvons ensuite continuer. Donc, si je devais le faire et que je dis, après avoir essayé et attrapé, alors ce que nous pouvons voir est le suivant, que le code continuera et reprendra après cet essai et attraper, et il ne s'arrêtera pas. C' est pourquoi essayer et attraper, vous savez, une sorte de chose est vraiment bonne. Il y a aussi quelque chose qui s'appelle Enfin, que nous pouvons utiliser. Et ça finit par faire froid dans tout ce qui se passe ici. Donc nous essayons d'abord ça et nous allons attraper ça, et ensuite nous allons enfin le faire. Quoi qu'il arrive fondamentalement, que nous attrapions ou non un, une exception ou non. Ça devient enfin froid. Et à la fin, l'idée est que, eh bien, ok, des exceptions, je comprends un peu, mais pourquoi avons-nous besoin d'elles ? L' idée est que nous lançons une exception au lieu du plantage du programme. C' est l'une des grandes choses. Donc, une exception est levée quand généralement cela appellerait en fait comme conduire à un crash. Mais nous pouvons alors essayer cela avec certaines choses. Nous ne savons pas toujours où des exceptions peuvent être lancées. Cependant, parfois nous savons et puis nous pouvons fondamentalement les attraper avec cette déclaration essayer et attraper ici. Et les idées sont, une fois de plus que nous pouvons alors espérer soit avec la capture, quelque chose à ce sujet ou faire de sorte que nous puissions corriger une erreur qui pourrait se produire plus tard dans la ligne. Donc, bien sûr, ce ne serait peut-être pas la meilleure idée de le faire. Nous pourrions aussi le faire un peu différemment en particulier au sein de l'Unité elle-même, nous pouvons aussi lancer une erreur. Donc, l'ère du journal de débogage fonctionnerait également. Cependant, dans ce cas, je pense en fait qu'avoir ce lancer une exception est vraiment très bien, non ? C' est tout pour les exceptions. C' est juste un bref aperçu. Encore une fois, ce n'est rien à, disons excitant ou ce n'est rien de trop important en fait. Mais il est toujours bon d'avoir vu cela une fois auparavant, juste pour que vous sachiez, ce que cela signifie essayer et attraper et quelle est une exception. Donc, si c'était tout pour cette conférence, j'espère que vous l'avez trouvée utile. S' il y a des questions, n'hésitez pas à poser et je serai sûr de répondre. Et oui. 39. (C) Les bases de la génériques en C : C #): Bon, bienvenue à l'introduction abrupte pour le cours de l'unité. Et dans cette conférence, nous allons jeter un coup d'oeil à un générique. Bon, alors ouvrons le script générique ici. Et nous avons aussi un script de paire déjà prêt. Et nous allons créer un script générique. Donc, nous avons déjà vu quelque chose sur les génériques qui était, par exemple, une liste. Et vous pouvez voir que c'est la liste, puis t à l'intérieur de ces crochets angulaires. Et puis nous avons été en mesure de simplement mettre en gros n'importe quel type de variable là-dedans. Donc, n'importe quel type de données que nous avons pu mettre à l'intérieur des crochets angulaires et cela a juste fonctionné. Et c'est essentiellement ce que nous voulons créer en ce moment. Nous voulons donc créer une classe qui est une classe générique où nous serions en mesure de mettre n'importe quel type de variable ou de type de données. Et je vais le montrer avec une classe que j'utilise pour moi-même sur une base semi-régulière, je dirais qu'il y a quelque chose qui est très similaire appelé un tuple. Je crois que c'est sous système, System.Out tuple, non ? Et vous pouvez fondamentalement, comme vous pouvez le voir, vous pouvez faire 12 ou autre chose. Le problème avec un tuple est que même si vous pouvez fondamentalement mettre plusieurs types de données différents, vous ne pouvez jamais les changer. Donc, vous avez un set une fois et ensuite c'est fait. Et c'est pourquoi j'ai essentiellement cette classe de paires que nous allons créer en ce moment. Donc, c'est assez facile. Nous mettons en fait les crochets angulaires et ensuite nous allons mettre en x et y. Ceux-ci sont généralement signifiés par un, une majuscule et un caractère singulier. Mais en théorie, vous pouvez aussi l'appeler x2 ou quoi que ce soit. Mais x et y vont bien se passer. Ensuite, nous allons avoir un nouveau, un nouveau champ ici, qui sera x en premier. Et puis cela va en fait être une propriété se définit. Et puis nous allons avoir un public pourquoi second, qui aussi getter et setter. Et puis on aura un public. Oh, désolé, faisons un de plus. Voilà, tu y vas. Paire publique x premier, y seconde. Et puis ce sera ce premier SQL à d'abord. Et c'est égal à la seconde. Et c'est déjà pour la classe de paires. C' est comme ça que ça peut être facile. Nous aurons d'abord besoin de vraiment envelopper votre tête autour de cela. Qu' est-ce que cela veut dire ? Comment cela fonctionne-t-il ? Eh bien, si je mets une chaîne, chaîne, par exemple, alors ce serait simplement une chaîne publique. Si je mets un animal entier, alors ce serait un entier et ce serait un animal. Vous pouvez vraiment l'utiliser pour ce que vous voulez. Et le x et le y sont simplement remplacés par n'importe quel type de données que vous mettez lorsque vous déclarez la variable. Donc, par exemple, nous pouvons mettre une paire appelée chaîne int. Et appelons simplement cet exemple un. Non, wow, OK, appelons ça la paire un, y néant, qui est une nouvelle paire de cordes int. Et puis à l'intérieur d'ici, nous avons mis en 2005 et par exemple, un oui. Et la grande chose est que nous pouvons ensuite dire par la suite paire un point d'abord est par exemple, égal à, pour parler à 200. Donc, on peut vraiment changer ça. Et si nous, par exemple, disons paire avec animal et chaîne, alors nous pouvons appeler ceci p R2. Et c'est une nouvelle paire d'animal et de ficelle avec par exemple, un nouvel oiseau. Et un nouvel oiseau et une ficelle. Bien sûr. Parce que, pourquoi pas ? Et puis nous pouvons, par exemple, aussi appeler d'abord, qui est un point de point animal. Donc, c'est une chose assez cool parce que d'abord est un animal, nous pouvons alors simplement appeler la méthode de manger sur cela et cela fonctionnera simplement. Donc l'idée des génériques, c'est comme un très peu, comme un exemple très basique, non ? Comme pas trop compliqué. Parce qu'en théorie, au moins dans mon expérience personnelle, j'ai trouvé qu'il est très rare que nous ayons besoin comme un nouveau générique très compliqué pour quoi que ce soit. Toute autre chose est généralement aussi faisable assez facilement. Il y a des moments où elles pourraient être applicables. C' est pourquoi je montre cela comme un exemple. Mais d'habitude, je dois être honnête, c'est très rare qu'ils viennent vraiment. Si jamais ils remontent. Nous l'avons vu et nous pourrons bien sûr approfondir cette question. Mais pour l'instant, c'est là que je vais le laisser. Comme je l'ai dit, un aperçu très basique des génériques. Cependant, comme toujours, s'il y a des questions, hésitez pas à poser et je serai sûr de répondre. Et oui. 40. (C) Les bases de LINQ en C : C : Bon, bienvenue à l'introduction C-Sharp ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un coup d'œil sur un lien. Alors, qu'est-ce qui est lié ? Ouvrons le lien en script et voyons ce que nous pouvons voir. Donc, ce sera un regard très basique sur le lien, ou aussi connu sous le nom de requête intégrée dans la langue. Et nous allons avoir deux exemples maintenant je vais vous montrer comment vous pouvez filtrer une liste. Et puis je peux, je vais aussi vous montrer comment commander une liste par un certain paramètre, disons. Donc, la première chose, nous pouvons obtenir une nouvelle liste qui ne contient que les mâles yahoo.com dans cet exemple, par exemple, où ce ne sera pas comme, je veux tous ceux qui ont le mail yahoo.com. Je les veux. Eh bien, nous pouvons réellement obtenir cela en, tout d' abord, en ayant cela en utilisant le lien System.Out. Très important. Nous devons donc utiliser cet espace de noms et ensuite nous avons accès à de nouvelles méthodes sur notre liste. Donc, comme vous pouvez le voir, tout comme la moyenne interrogeable parallèle, nous avons la méthode concat, nous avons quelques méthodes ici. Et la méthode que nous allons utiliser est où. Donc, c'est fondamentalement une méthode qui nous permet de filtrer. Et maintenant, nous allons avoir une, une chose intéressante que nous allons examiner, qui va être une expression lambda. Et ça va ressembler à ça. Donc on va avoir un mâle, alors on peut avoir cette flèche en gros, non ? Ceci est fondamentalement un, un signe égal et puis intérêt plus grand que. Et puis ici, nous allons écrire mail dot contient yahoo.com, et puis c'est tout. Et cela filtre fondamentalement cela. Maintenant, cela retourne un nouveau, dans ce cas, il retourne un nouveau fer innombrable. Si nous faisons pour lister, non, pas pour chaîne mais pour lister. Ensuite, cela va retourner une nouvelle liste à laquelle est probablement ce que nous voulons. Mais quelle est cette année, non ? Donc ça peut sembler un peu bizarre. Je ne comprends pas ça. Nous n'avons jamais vu la flèche avant l'expression lambda. Qu'est-ce que c'est ? Eh bien, l'idée est qu'à l'usure prend un funk, comme vous pouvez le voir, system.out.print. Et qu'est-ce qu'un funk ? Eh bien, un champignon, essentiellement un type variable ou un type de données qui stocke une méthode ou une fonction. Maintenant champignon défini comme ayant une chaîne, dans ce cas comme l'entrée et un bool comme la sortie. Donc, c'est ce que signifie la chaîne bool. Le courrier. Donc, chaque élément est toujours l'entrée dans ce cas, non ? Donc, chacun des éléments est l'entrée. Et puis nous voudrions le booléen comme sortie. Ok, est-ce à l'intérieur de notre nouvelle liste ou pas ? Et puis je vais dire, eh bien, si elle contient yahoo.com, alors elle fera partie d'une liste. Si ce n'est pas le cas, ça ne fera pas partie d'une liste. Et c'est en fait aussi facile que cela de filtrer cela pour les personnes qui ont vu des choses comme qui ont travaillé avec SQL par exemple, c'est similaire à cela de beaucoup de façons. Et pour le deuxième exemple, je vais rapidement copier quelque chose. Donc, je vais copier une liste d'entiers appelés scores élevés. Ils sont fondamentalement aléatoires, mais ils sont juste aléatoires. Et ce qu'on va faire, c'est qu'on peut faire des scores élevés. C' est l'ordre par la méthode. Et nous pouvons alors dire score et ensuite juste dire score par exemple. Donc, cela ordonnerait maintenant les scores les plus élevés. Eh bien, par le, par le score réel. Comme vous pouvez le voir, le funk il y a un entier, puis il a un autre entier. C' est donc ce qui est comparé. Et c'est fondamentalement une fois de plus, le fait ceci, mais c'est ce qu'il est comparé. L' idée est que nous pourrions, par exemple, au lieu d'avoir une liste d'entiers, nous pourrions avoir une liste de chaînes. Et puis nous pourrions commander par, par exemple, la longueur de chacune des chaînes, ce qui fonctionnerait également. C' est essentiellement l'entier qui est donné ici. Donc, nous retournons simplement l'entier lui-même, donc, en ordonnant par lui. C' est vraiment juste un coup d'oeil très rapide à cela, un regard très basique. Il y a beaucoup plus de choses ici. Mais encore une fois, comme beaucoup d'entre eux, disons des exemples plus tard ici ou des sujets ultérieurs. Ils ne sont vraiment pas si propices à. En regardant Unity elle-même. Je voulais juste le mentionner une fois de plus, et aussi quelque chose que vous pouvez, bien sûr, faire des recherches par vous-même. Et si peut-être assez de gens s'intéressent à cela, je pourrais juste faire une conférence supplémentaire. Ainsi, les expressions lambda, par exemple, pourraient être au moins un peu intéressantes. Bien qu'il existe également d'autres types de données que nous utilisons ou d'autres façons, nous pouvons utiliser des choses similaires à l'intérieur d'Unity. Eh bien, oui, c'était fondamentalement le regard très basique sur le lien. Comme je l'ai dit, s'il y a assez d'intérêt, je pourrais faire un peu plus profond ici. Pour l'Unité elle-même, ce n'est vraiment pas nécessaire. Ces méthodes que je vous ai montrées, l'usure sur la commande par ceux-ci sont vraiment sympa et peut-être d'autres qui pourraient être utiles. Mais à ce stade, je crois que ce sont les deux principaux et tout ce que vous pouvez certainement regarder. Et s'il y a des intérêts, comme je l'ai dit, juste pour demander s'il y a quelque chose qui n'est pas clair ici, bien sûr, n'hésitez pas à demander et je serai sûr de répondre. Et oui. 41. (C) Évènements et délégués: Bon, bienvenue à l'introduction pointue C ici pour le cours d'unité. Dans cette conférence, nous allons jeter un oeil sur les événements et les délégués. Ceci est un, un autre sujet plus avancé. Et on va juste y jeter un coup d'œil et voir ce qu'on peut voir. Alors le script délicat, ouvrons ça. Nous avons déjà une minuterie flottante et un temps de cible flottant. Maintenant, comme vous pouvez le voir, cela est déclaré à l'intérieur de la classe au lieu de la méthode start. Et c'est une chose très importante parce que nous allons en fait utiliser une autre méthode d'Unity cette fois juste pour montrer cet exemple. Et ce sera la méthode de mise à jour. La méthode de mise à jour est simplement quelque chose qui est appelé une fois par image. Donc, vous avez peut-être entendu les jeux courir à 60 images par seconde. Et puis cette méthode serait appelée 60 fois par seconde. Maintenant, ce que nous voulons faire est que nous voulons créer quelque chose où nous appelons fondamentalement une certaine méthode toutes les 10 secondes ou toutes les secondes, nous définissons ce temps cible à, par exemple. Et nous allons le faire avec le système des délégués et des événements. Cher ici est que nous allons juste en fait, faisons d'abord une méthode que nous voulons appeler. Ainsi, par exemple, message de test vide privé. Et nous allons mettre dans le journal des points de débogage, pas une erreur, mais un journal normal, juste sortir un, sortir un message, quelque chose comme ça. Et nous voulons appeler cette méthode particulière chaque fois que quelque chose se passe. Et nous pouvons le faire en faisant ce qui suit. Donc on va faire un délégué d'abord. C' est donc un délégué public vide. Et puis nous allons appeler ça, disons sur dix secondes passées, juste comme un exemple. Et au délégué, comme vous pouvez le voir, doit avoir la même signature que la méthode que nous allons l'appeler. Donc, c'est vide, donc c'est fondamentalement le type de retour et puis aussi aucun paramètre à l'intérieur d'ici. Donc fondamentalement même signature que oui, méthode, nous voulons l'appeler. Et puis ce que nous pouvons faire est alors que c'est le délégué, nous avons ensuite un événement et puis les objets peuvent fondamentalement s'abonner à cet événement. Donc on va avoir un événement public. Et c'est de type sur dix secondes passées, où c'est essentiellement le type de l'événement. Et puis on va lui donner un nom, par exemple, la saisie semi-automatique. Et c'est ainsi que fonctionnent essentiellement l'initialisation de l'événement et des délégués. Ainsi, les objets, les objets peuvent s'abonner à des événements. Droit ? Ce qu'on va faire maintenant, c'est qu'on va ajouter la méthode du message test. Pour l'événement, et chaque fois que cet événement est refroidi, cette méthode est appelée. Donc, disons par exemple, onComplete. Et puis on va faire un message de test plus égal. Et l'important est sans les parenthèses, donc nous allons seulement prendre le nom de la méthode ici. Et ce que cela va faire est fondamentalement cela va ajouter cette méthode à une liste sur cet événement. Que lorsque cet événement devient froid, alors nous allons nous assurer que ce programme de message de test aussi bien. Alors ajoutons juste une façon d'appeler ceci. C' est pour ça que j'ai ces minuteurs ici. Il y a un moyen assez facile d'ajouter le minuteur. Maintenant, ce sera une chose juste, assez facile. Je vais expliquer ce temps cible et ensuite nous allons dire des minuteurs égaux à 0. Et puis nous allons dire surComplete et appeler ceci et c'est égal. Et que se passe-t-il ici ? Eh bien, à chaque image, nous allons fondamentalement ajouter un peu de temps à cette variable de minuterie qui est 0. Et puis on va vérifier, hé, la minuterie est plus grande ou égale au temps des toilettes ? Si c'est le cas, nous allons réinitialiser la minuterie et le charbon surComplete. Cela devrait se produire environ toutes les 10 secondes, comme vous pouvez le voir, car le temps cible est exactement 10. Réduisons cela à quelque chose comme quatre, sorte que cela va se produire un peu plus tôt. Et puis tous les quatre ans, toutes les quatre secondes, nous allons faire sortir ce message. Voyons donc si cela fonctionne réellement. Bien sûr, s'assurer que nous sommes à la conférence 38 événements. ce moment, rien ne se passe. Cependant, après quatre secondes se sont écoulées, nous devrions les voir aller, puis après quatre secondes supplémentaires, nous devrions voir un autre message. Comme vous pouvez le voir, Réduisons cela afin que nous puissions voir chaque message de méthode. Et comme vous pouvez le voir toutes les quatre secondes, nous allons maintenant obtenir ce message qui est en cours de sortie. Maintenant, pourquoi est-ce une si grande chose ? Pourquoi, Pourquoi ne pas appeler la méthode du message test ici ? Eh bien, nous pouvons voir que cette méthode de message de test de désordre est en fait privée. Et peut-être que ce que nous voulons, c'est que nous voulons réellement que cela se produise à moments très particuliers et que nous ne voulons pas faire en sorte que chaque chose, chaque partie de notre programme connaisse toutes les autres parties. Donc, par exemple, peut-être que nous avons un système HP pour un ennemi ou nous-mêmes. Et nous avons ensuite une interface utilisateur à l'intérieur de notre jeu qui affiche combien de HP, soit l'ennemi ou nous-mêmes comme disons le joueur, alors ce que nous pourrions faire, l'interface utilisateur pourrait savoir, ok, c'est la santé du joueur et ils pourraient vérifier toutes les images de mise à jour, n'est-ce pas ? Donc chaque cadre, d'accord. Que diriez-vous de vous, C'est le joueur ont combien ? Constamment mis à jour, mais nous n'avons pas besoin de le mettre à jour constamment. En fait, nous n'avons besoin de le mettre à jour que lorsque le HP change. Et puis nous pourrons faire ces événements. Donc, une sorte de délégué sur le changement HP. Et puis nous avons un événement qui appelle ensuite fondamentalement la méthode de l'interface utilisateur et dit huit, le Royaume-Uni, le changement HP. C' est donc l'idée de s'abonner à ces événements. Nous pouvons séparer notre code très soigneusement. Et, et il n'y a pas non plus d'inconvénient réel à avoir ces événements. Donc, vous pouvez fondamentalement faire comme un 100 ou 200 événements, un feu. Et si leurs abonnés grand. Et si tu ne le fais pas, tu ne perds rien parce que sur ça, dans ce cas, on appelle ça, ça ne le serait pas, non ? Donc, ce sont essentiellement les événements maintenant dans l'ensemble, c'est aussi juste une vue très courte et regarder dans eux. Quand, une fois que nous commençons à utiliser réellement la programmation d'un vrai jeu, nous allons jouer ou un tas d'unité de jeu. Alors on va l'utiliser à nouveau. Et je crois que dans cet exemple réel, ça va devenir beaucoup plus clair. ce moment. Je voulais juste vous montrer qu'il existe quelque chose appelé événements et délégués. Et encore une fois, les maîtriser est vraiment difficile. Et oui, c'est juste quelque chose qui est très bien d'en avoir vu. Et nous allons examiner ça plus tard à nouveau. Je voulais juste vous montrer rapidement cela et comment cela peut être vraiment utile. Nous allons voir dans une prochaine conférence. Mais néanmoins, si vous avez des questions, n'hésitez pas et n'hésitez pas à poser et je serai sûr de répondre. Et oui. 42. (C) Filtre I/O: Bon, bienvenue à C forte introduction ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil à l'entrée et la sortie du fichier. J' ai donc préparé un fichier texte très cool, comme vous pouvez le voir clairement ici dans notre dossier ressources d'actifs. Et ouvrons-le et voyons à quoi ça ressemble. C' est un texte super cool. N' est-ce pas génial ? Et nous allons maintenant apprendre comment nous pouvons lire ceci dans. Et puis nous allons aussi apprendre à écrire un nouveau fichier. Allons juste dans notre fichier I O script ici. Et j'ai déjà préparé essentiellement le chemin de lecture et le chemin d'écriture que vous allez être dans les actifs, les ressources. Et puis le fichier texte cool est celui que nous allons lire. Et puis nous allons écrire à un super cool textes que nous avons fait avec du code. Et comme je l'ai dit ici, t dot TXT, c'est juste un fichier texte normal. Alors, de quoi avons-nous besoin pour, pour nous de fondamentalement entrer et sortir des choses ? Eh bien, pour écrire quelque chose dans un fichier. Tout d'abord, c'est un processus très lent. Maintenant, lentement en termes de comparaison de deux choses que nous pouvons faire dans le code. C' est toujours incroyablement rapide, mais généralement écrire quelque chose dans un fichier est un processus lent. Je voulais juste le mentionner. Et nous devrons utiliser l'espace de noms system.console ici. Et puis nous allons voir, donc tout d'abord, nous allons vérifier si le fichier existe même ou non. Donc, le point de fichier existe. Et puis à l'intérieur, nous allons mettre le chemin rouge premier parce que nous allons voir si oui ou non la lecture d'un chemin a un fichier qui existe là. Parce que si ce n'est pas le cas, on ne peut pas vraiment ouvrir ça. Et maintenant, ce que nous allons utiliser, c'est que nous allons utiliser un lecteur de flux. Donc le lecteur de flux SR fichier point texte ouvert, et ensuite nous allons lui donner le chemin. Maintenant, la grande chose à propos du lecteur de flux est que c'est un i jetable, je crois que c'est le terme correct pour cela. Et j'espère que vous le faites il est que nous pouvons utiliser le mot-clé using. Maintenant, vous ne l'avez pas vu avant. Nous pouvons réellement prendre le mot-clé using et nous pouvons prendre tout cela, mettre à l'intérieur d'ici. Et puis une fois que nous en avons fini, il va fermer le lecteur de flux pour nous parce que nous devons probablement fermer le fichier à nouveau. Et cela est fondamentalement tout géré par le mot-clé using. Et à l'intérieur d'ici, nous allons avoir une corde, cool S. On pourrait aussi appeler ça une habitude, un peu meilleur nom. Je pense que AS suffira pour l'instant. Et je vais avoir une boucle de temps à l'intérieur d'ici, ce que nous allons dire, eh bien, S est égal à SR dot readline. Donc, la ligne rouge est simplement une chaîne et nous allons définir S à cette chaîne. Et tant que cela N'EST PAS nul. Donc, alors que ce n'est pas nul, nous allons juste sortir fondamentalement S. Donc, nous allons lire chacune de ces lignes qui sont ici. Il n'y a qu'une seule ligne ici. On va le sortir. Et une fois que nous avons fini, nous avons fini d'utiliser ceci. Le lecteur de flux sera essentiellement éliminé. Et tout le monde est heureux à nouveau. C' est tout ce dont nous avons vraiment besoin pour lire un fichier. Voyons si ça marche. S' assurer que nous sommes sur le dossier E/S. Ne nous inquiétons pas de cet avertissement. C' est simplement parce que nous avons la bonne variable de chemin déclarée mais non utilisée. Et voyons, à supercool, textes seront exactement ce que nous avons écrit dans le fichier obtient réellement la sortie. Donc c'est plutôt cool. Et maintenant, voyons ce que nous pouvons faire pour écrire quelque chose. Donc, si on veut écrire quelque chose, on va utiliser le stream writer. Donc, nous allons dire une fois de plus utiliser et ensuite stream writer. Cela va être alors SW est égal au texte de point de fichier, dans ce cas sur le bon chemin. Et nous allons ensuite avoir ce qu'on appelle le SW. Donc, le bon auteur de flux, la ligne d'écriture dot-dot-dot. Et puis nous pouvons dire, par exemple, bonjour, et puis copions ceci quelques fois. C' est une autre ligne. Plutôt cool. Comment ça marche. Alors essayons ceci et voyons si cela fonctionne. Donc, en ce moment, nous n'avons pas de nouveau fichier à l'intérieur de notre dossier de ressources. Et une fois que nous commençons ça, ce que nous pouvons voir, mettons fin à ça. Et en fait, je crois, nous devons recharger ça parce que ce n'est pas correct, nous devons rafraîchir. Alors contrôlez R. Et puis comme vous pouvez voir comment ils vont. Et comme vous pouvez le voir, textes super cool que nous avons faits avec du code sont ici. Et puis Bonjour, c'est un alignement. Plutôt cool comment ça marche. Tout ce que nous avons mis ici, exactement comment nous l'avons fait. Et maintenant, résumons ce changement quelques unes de ces lignes. Par exemple, disons, Bien sûr, comment voulez-vous, Pourquoi pas ? C' est encore une autre ligne et puis assez cool comment cela fonctionne. Et puis changeons ça pour peut-être l'un d' entre eux et voyons ce qui se passe si on recommence. Alors mettons-le ça. Et encore une fois, nous avons fait ça sans erreurs, c'est un peu sympa. Ouvrons à nouveau ce fichier. Et comme vous pouvez le voir, ils aiment que le programme a juste changé tout ce qui a été écrit ici à nouveau, donc il va remplacer ce que nous avons déjà. Ainsi, l'ONU, le fichier texte sur le bon chemin dans ce cas sera simplement remplacé par le nouveau truc. Ouais, c'est les bases vraiment hors entrée et sortie de fichier. Il y a aussi des choses plus avancées. Et pendant la partie de programmation de l'unité de ce cours, nous allons examiner en particulier comment lire et écrire des choses avec fichiers JSON parce qu'ils sont formatés de manière à pouvoir les utiliser assez facilement. Mais dans l'ensemble, ce n'était qu'un petit aperçu rapide, une fois de plus, de l'entrée et de la sortie du fichier. Comme toujours, j'espère que vous avez trouvé utile s'il y a des questions, comme toujours se sentir libre de demander maintenant assurez-vous de répondre. Et oui. 43. (C) C C Conventions de C C: Bon, bienvenue à l'introduction du C-Sharp ici pour le cours d'unité. Dans cette conférence, nous allons jeter un oeil à ces conventions C-Sharp. Donc c'est potentiellement la dernière des conférences « C Sharp » ici. Et nous allons juste jeter un coup d'oeil à quelques conventions que vous devriez suivre si possible. Alors ouvrons le script des conventions et voyons ce que nous pouvons voir. J' ai préparé quelques choses ici et je vais expliquer de haut en bas quelques-unes de ces conventions et pourquoi elles pourraient être utiles et pourquoi vous devriez probablement les suivre. Toutes les choses considérées et ont également acheté quelques-unes de ces choses sont. Alors les premières choses, les noms de première classe, non ? Donc, ce serait, par exemple, conventions et ce que nous avons vu animal abstrait, animal ou personne, devrait être le cas Pascal. Qu' est-ce que l'affaire Pascal ? Pascal cas signifie simplement que la façon dont nous écrivons certains mots, dans ce cas, comme vous pouvez le voir, animal abstrait. Alors que ce n'est qu'un seul mot, l'abstrait est un mot et l'animal est un mot. Et ils sont tous les deux capitalisés. Donc, c'est ce que Pascal a affaire. Nous capitalisons le premier, le premier personnage. Et puis chaque fois que nous arrivons à un nouveau mot, nous capitalisons aussi ce mot. C' est très important. C' est l'affaire Pascal. Lorsque nous examinons les variables locales, les noms de champs et aussi les paramètres, ceux-ci devraient être CamelCase. Camelcase signifie simplement que le premier caractère est minuscule. Et puis chacun, chaque mot qui vient après lui sera majuscule. Lorsque nous regardons les constantes, nous n'avons pas vraiment vu le mot-clé const. L' idée ici est simplement que c'est une variable qui ne peut pas être modifiée. Donc ça ne va pas être si compliqué. L' idée est que ceux-ci devraient aussi être dans le cas Pascal et non dans les casquettes criantes. C' est quelque chose que je fais personnellement parfois. Je pense que c'est une de ces choses, comme avec toutes ces conventions qui ne sont pas vraiment des règles, sont que des directives qui pourraient aider. Et c'est probablement un personnellement que je voudrais. Donc personnellement, je l'ignore probablement la plupart du temps simplement parce que j'ai parfois l'impression que c'est plus facile à voir, ok, c'est une constante. Même si vous devriez être en mesure de voir cela par le symbole qu'il a juste ici. Cependant, je fais généralement tout cela dans des casquettes criantes, mais c'est toujours une convention que l'on pourrait vouloir suivre. Nous utilisons donc toujours des noms significatifs pour les variables. Je l'ai mentionné tout au long de quelques fois déjà. Mais il est très bon d'avoir un nom propre pour les variables. On l'a utilisé la plupart du temps. Je pense qu'une ou deux fois je ne l'ai pas fait, mais habituellement vous devriez éviter les lettres uniques. Donc, par exemple, l'entier t et nous verrons, ok, eh bien, qu'est-ce que cela signifie ? Eh bien, c'est beaucoup plus facile à lire si je C'est dans la minuterie et le temps plein ou terminé. Et aussi, n'ayez pas peur des noms vraiment longs pour les variables. Si c'est un nom expressif et que c'est un nom significatif, alors vous ne devriez pas avoir peur de cela. Parce que plus vous pouvez expliquer quelque chose, plus il est facile de comprendre. C' est pourquoi nous devrions toujours utiliser des noms significatifs pour les variables. Personnellement, je me trompe parfois aussi, mais quand vous y pensez, quand vous, quand vous programmez rapidement, vous appelez simplement ce S ou simplement cela dans l'IA. Mais qu'est-ce que l'IA ? Quel est son but ? Et cela peut aussi parfois vous amener à penser un peu mieux à votre code et à penser comme, eh bien, en fait, je n'ai pas vraiment besoin de cet entier, cette variable ici. Donc oui, n'utilisez pas d'abréviations dans vos noms de variables. Donc des choses comme ID et XML et quelque chose comme ça. C' est bon, mais ne pas mettre en personne et ensuite faire PRS n pour ça. Ça va juste mener à la confusion. Et je dois être honnête. Ces deux-là, ces deux personnages que tu gardes là, ça ne va pas faire d'erreur du tout. Il y a une chose que nous n'utilisons pas vraiment les traits de soulignement en C-Sharp. C' est juste la convention. Surtout dans, eh bien, en fait dans n'importe quoi sauf dans les champs privés. Et nous avons vu cela dans la conférence des propriétés C Sharp où j'ai fait un, je crois que c'était un booléen ou un type de variable qui était privé. Et j'ai commencé avec ça avec un trait de soulignement. C'est très bien. Les noms d'une classe doivent toujours être des noms. Donc animal, personne, ce sont des noms, n'est-ce pas ? Et ils devraient aussi être singuliers si je ne me trompe pas. Donc c'est aussi quelque chose qui ne devrait pas être des animaux ou des personnes parce que c'est toujours une classe. C' est un nom singulier qui décrit une classe. Alors écoutons les interfaces de préfixe avec la lettre I. Donc, je flyable. C' était une interface que nous avons fait où nous pourrions appeler la méthode fly. Et on dit que nous devrions commencer par la lettre majuscule I. Maintenant, certaines personnes n'aiment vraiment pas ça parce qu'elles sont comme, je sais si c'est un, c'est une interface. Personnellement, je pense que c'est une bonne convention. Cependant, il y a des gens qui ont des opinions très, très fortes sur ou nous n'avons pas besoin de ça, quoi que ce soit, suivez ou ne le suivez pas, peu importe, juste rester cohérent. C' est comme l'une des choses les plus importantes. Si vous modifiez vos conventions à mi-chemin de votre projet, vous devrez revenir en arrière et réécrire le reste du code afin qu'il respecte vos conventions. Comme si tu avais des conventions et que tu t'en tiens à eux, mais ne deviens pas fou. Et aussi que quelque chose d'autre. C' est souvent que nous finissons aux interfaces avec Able. Pour que c'est une sorte de, tu sais, je peux voler, je parle bulle. Parce que ce genre de signifie aussi, ok, qu'est-ce qu'ils peuvent faire ? Donc c'est aussi quelque chose à emporter avec vous. Ensuite, nous devrions toujours avoir des noms singuliers pour les énumérations. Donc difficulté de jeu, par exemple, pas de difficultés de jeu. Et nous ne devrions jamais utiliser le nom à l'intérieur, comme enum à l'intérieur du nom. Donc on ne devrait pas avoir de difficulté à jouer. Enum ou enum de couleur, toujours juste la chose singulière qu'il est une énumération jamais utilisée. Maintenant, d'où est-ce que j'ai ça ? J' ai ceci à partir d'un dépôt GitHub de conventions de nommage. Ceci est bien sûr lié ainsi qu'une ressource. Je ne peux que vous conseiller de jeter un oeil à cela aussi parce qu'il y a encore quelques choses. Alors j'ai mis ici. J' ai ce sont les plus importantes que j'ai vues. Et je peux juste vous conseiller de jeter un oeil au lien. Ils le sont. Parce que ce sont de bonnes conventions de dénomination que vous devriez suivre. Au moins la plupart d'entre eux pour rendre votre code aussi standardisé et facile à lire que possible. Mais dans l'ensemble, c'était tout avec le C forte introduction ici pour le cours. Et oui, c'était ça. J' espère que cela vous a été utile et maintenant il est parti pour apprendre fondamentalement l'Unité proprement dite. Donc, vous pouvez, bien sûr, tout d' abord vous féliciter d'avoir atteint cela et d'entrer ici parce que c'était l'introduction tout à fait approfondie. Et il y avait quelques choses que vous devez probablement apprendre en fonction de votre niveau de connaissances précédent. Mais oui, c'est fait et j'espère que vous l'avez trouvé utile. Et à la fin ici, comme toujours, s'il y a des questions, hésitez pas à poser et je serai sûr de répondre. Et oui. 44. (Les bases de l'unité) Mise en page de l'unité et Editor en position de Unity expliqués: Bon, Bienvenue à l'introduction de base de l'unité ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil à fondamentalement la disposition de l'unité, les choses spécifiques comme éditer et bien, juste quelques cœurs et quelques parties des fenêtres fondamentalement, juste expliquer rapidement comme peu d'aperçu donné de sorte que vous savoir ce que tout cela signifie et que vous pouvez trouver votre chemin essentiellement à l'intérieur de l'interface utilisateur Unity ici que vous voyez, il y a beaucoup de pièces mobiles, beaucoup de boutons sur lesquels vous pouvez cliquer et pas seulement eux. Juste une petite introduction pour ça. Donc, nous allons commencer essentiellement en haut à gauche. C' est ici essentiellement la fenêtre de la scène. Et c'est l'une des choses les plus importantes dans Unity parce que c'est fondamentalement ce qui vous donne votre vue sur votre monde de jeu, n'est-ce pas ? Donc, actuellement, cela est essentiellement mis en mode 2D. Vous pouvez voir lorsque vous basculez sur la scène en tant que vue 2D, lorsqu'elle est basculée hors de la scène comme dans la vue 3D. Idée ici étant que, bien sûr, c'est un cours en 2D. Donc on va tout faire en 2D. Nous pouvons examiner la troisième dimension en cliquant sur ce bouton. Et puis comme vous pouvez le voir, Nous obtenons essentiellement une vue 3D. Mais comme nous ne voulons pas ça, nous allons rester avec la 2D et ensuite trouver comment nous pouvons nous déplacer à l'intérieur d'ici. Donc, si nous appuyons sur le bouton droit de la souris vers le bas, nous voyons une petite main apparaître et ensuite nous pouvons déplacer le, fondamentalement le monde du jeu. La vue se déplace alors et on peut se déplacer, non ? Donc c'est un assez utile. Nous pouvons zoomer avec eux avec le bouton du milieu de la souris, bien sûr, nous pouvons également nous déplacer si nous maintenons le bouton du milieu de la souris vers le bas. Et puis aussi nous pouvons essentiellement nous déplacer. Si nous maintenons le bouton gauche de la souris enfoncé, nous pouvons sélectionner des choses. Actuellement dans notre scène. Nous pouvons voir ce que nous avons ici, ici dans la Hiérarchie. Nous allons regarder ça un peu plus tard aussi. Mais en ce moment, nous n'avons que la caméra principale ici. Et nous pouvons, par exemple, sélectionner ceci. Et puis comme vous pouvez le voir, tout d'abord, la caméra principale apparaît ici. Donc c'est ce que nous verrions à l'intérieur du jeu. Et puis du côté droit ici, tout un tas de choses apparaissent, que nous allons aussi regarder dans un peu de temps. Alors quoi d'autre est donc la vue de la scène ? Bien qu'il y ait un tas de boutons ici, vous pouvez activer et désactiver l'audio. Vous pouvez utiliser l'éclairage de scène. Il y a des choses pour les boîtes à ciel ouvert. Vous pouvez voir combien d'objets il y a et également basculer sur la grille. Donc, par exemple, en ce moment, nous n'avons pas de grille, et ensuite nous avons une grille. Donc, la grille peut être vraiment utile. Et aussi parfois, il se peut que les gadgets soient désactivés. Donc, les gadgets, ou fondamentalement, si je clique sur ce petit bouton ici, vous pouvez voir qu'il ya certaines icônes que vous verrez qui simplement vous a aidé à trouver certaines choses à l'intérieur de la vue de la scène. Par exemple, la caméra, n'est-ce pas ? Ça n'a presque pas d'importance si je fais un zoom arrière, puis les caméras sont toujours là. Et si je zoome beaucoup plus que les caméras encore plus grandes, mais cela vous montre juste d'accord, il y a la caméra principale ou il y a une caméra et si on l'éteint, alors on ne voit rien et on ne sait même pas où se trouve l'appareil photo dans ce cas . Donc, les gadgets sont essentiellement pour nous aider à voir certaines choses qui sont des aides visuelles. Grand que vous ne pouvez voir qu'à l'intérieur de la vue de la scène, n'est-ce pas ? Et puis il y a aussi juste une sorte de boîte à outils ici. Je l'utilise rarement. Ensuite, vous pouvez également modifier les paramètres de l'appareil photo ici. Ce sont donc les paramètres de la caméra de vue de scène. Dans ce cas. Je dirais aussi que je ne l'utilise pas habituellement. Vous pouvez également rechercher quelque chose ici. Mais il y a beaucoup de barres de recherche, en fait, il y en a une ici, il y en a une ici. Donc, nous pouvons chercher de nombreuses façons. Donc c'est la fenêtre de la scène. En gros. Vous pouvez également avoir différents modes en haut à gauche ici. Et ils ne feront rien en ce moment si nous avons des choses ici. Donc, c'est aussi plus sur, je dirais, la perspective 3D. Donc ombré signifie simplement que si nous avons, si nous avons un cube ici, je peux juste ajouter un vrai rapide pour que nous puissions juste voir ceci comme un exemple. Donc maintenant, nous avons un cube noir ici comme vous pouvez le voir. Et puis si je fais un filaire, voyez ceci comme un filaire. Et puis un filaire ombré signifie simplement que nous voyons tous les deux le filaire sous le mode ombré. Nous avons aussi différentes choses que nous pouvons faire rendre les chemins. Nous pouvons avoir le canal alpha overdraw carte MIP. Donc, ce sont tout simplement comme des idées de rendu différentes, pour ainsi dire. Par exemple, utilisez habituellement je le garde à l'ombre. C' est celui qui a le plus de sens. Et en 2D, les différences ne sont pas si importantes de toute façon. Donc, au sommet, nous avons aussi quelques outils que nous pouvons utiliser. Donc, je l'ai dit un clic droit ou un clic du milieu de la souris, nous pouvons bouger. Nous pouvons également simplement sélectionner cet outil à main, puis déplacer avec le bouton gauche de la souris en un clic. Cela fonctionne aussi. Nous avons l'outil Déplacer. L' outil de déplacement est fondamentalement si j'ai un certains objets de jeu sélectionnés, par exemple, la caméra, alors ces flèches apparaîtront et avec ces Eigen essentiellement déplacer la caméra autour. Et puis sur le côté droit ici, vous pouvez voir que la position de la caméra change réellement. Comme je l'ai dit, dans ce cas, parce que nous sommes en 2D, nous allons être seulement besoin la direction x dans cette direction et la direction y et cette direction. Et oui, le, ouais, c'est fondamentalement ça. Ensuite, nous avons la rotation. C' est donc l'outil de rotation. On peut tourner autour de cet angle, non ? Donc nous pouvons tourner autour de la, ce serait l'axe z, non ? Parce que l'axe z est celui qui va dans le, dans l'ordinateur lui-même. Et puis nous pouvons également fondamentalement incliné dans cette direction. Mais généralement l'axe z est la seule rotation dont nous avons besoin en deux dimensions, trois dimensions, nous pourrions, bien sûr, nous pourrions tourner autour de chaque axe. Nous avons également l'outil de mise à l'échelle. Donc, cela ne fera rien pour la caméra dans ce cas, parce que la caméra, l'échelle de l'image de la caméra est contrôlée différemment de l'échelle de l'objet lui-même. Donc, cela ne s'applique vraiment qu'à différents objets, mais dans ce cas, nous pouvons mettre à l'échelle cela avec cet outil. Et puis c'est mon outil essentiellement préféré, outil direct. Parce que lorsque nous avons, en particulier en deux dimensions, nous pouvons fondamentalement avoir la capacité de dimensionner quelque chose vers le haut ou vers le bas avec les côtés. C' est très similaire à quelque chose que vous verriez si vous activez le mode transfert dans Photoshop pour l'un d'entre vous qui, comme qui comprend ce que c'est. C' est quelque chose, mais nous le verrons plus tard aussi. Et déplacez, faites pivoter et mettez à l'échelle des objets. Donc, cela les met simplement tous les trois ensemble en un seul. Personnellement, je ne préfère pas ce point de vue. Certaines personnes aiment vraiment ça parce qu'elles peuvent faire ce qu'elles veulent. Nous avons aussi l'outil d'éditeur. Cependant, nous n'avons pas d'outils personnalisés ici. Donc ça ne fait vraiment rien pour nous. Personnellement, je garde mon unité presque exclusivement dans naufragé dans l'outil rect et je me déplace comme je l'ai dit, avec le bouton droit ou le bouton central de la souris, généralement le bouton droit de la souris et zoom avant et arrière comme ça. Ouais, c'est essentiellement l'essentiel de tout ça. Vous pouvez également aller à ces boutons par une personne Q, W, E, R, T, et puis le z été ah, c'est en fait le y été. Oui, exactement. Donc q0, QWERTY est fondamentalement ces boutons qui fonctionnent aussi, mais oui, c'est aussi suffisant si vous cliquez simplement sur eux. Alors passons les onglets ici et regardons la vue du jeu. Actuellement, comme vous pouvez le voir, il n'y a pratiquement rien ici parce que nous n'avons rien à l'intérieur du jeu en ce moment. C' est tout simplement ce que vous verrez quand vous jouez au jeu. Et c'est aussi ce qui commence. Donc, si nous appuyons sur le bouton de démarrage ici, le bouton Play, c'est aussi ce que nous voyons, donc il passe automatiquement à la vue du jeu une fois que nous avons commencé le jeu. Et la vue du jeu, comme je l'ai dit, est ce que vous aimeriez certainement. Fondamentalement un exemple de ce que vous verrez à l'intérieur du jeu une fois que vous le commencerez, il y a certaines choses que nous pouvons faire. On peut avoir des affichages différents ici. Maintenant. En ce moment, nous n'en avons qu'un. Nous pouvons définir la résolution actuellement, comme vous pouvez le voir. Deux, pour k, nous pouvons aussi juste dire, bien en fait, mettons-le en Full HD. Ça va se passer. On peut l'augmenter. Donc, cela fait simplement un zoom sur l'image sans faire de fantaisie comme les techniques Zoom ou quelqu'un comme ça. Il est littéralement juste zoomer. Si nous frappons maximiser sur le jeu, une fois que nous jouons, la fenêtre est maximisée ici, cela peut être vraiment utile si vous voulez voir, vous savez, comme presque tous les détails parce que c'est presque plein écran. Et puis il y a l'audio muet devrait être explicatif. La Muse l'audio. Nous pouvons regarder les statistiques qui sont en cours d'exécution et nous pouvons également activer les gadgets ici. Et ce sont essentiellement les mêmes gadgets que nous avons, la vue de la scène. Mais c'est la vue du jeu. En fait, il n'y a pas grand-chose à ça. Oui, continuons avec la hiérarchie. Revenons également à la vue de la scène. La hiérarchie est fondamentalement toutes les choses qui se trouvent dans la scène actuelle. Actuellement, nous sommes dans la scène de l'échantillon. C' est une scène qui est créée lorsque nous lançons un nouveau projet Unity. Et comme vous pouvez le voir, nous n'avons que la caméra principale ici en tant que composant. Nous pouvons ajouter de nouveaux composants en allant sur ce petit bouton plus, par exemple. Donc, nous pouvons avoir des choses prédéfinies que nous pouvons créer ou nous pouvons faire un clic droit dans l'année et aussi avoir la même chose. Des choses que nous pourrions vouloir créer. Ainsi, par exemple, nous pouvons créer un objet vide. Et cet objet vide n'a littéralement pas, Il a seulement une position, rotation et échelle. Et il n'a pas, disons, de marquage visuel de quelque sorte que ce soit. Donc on ne sait même pas où c'est quand on pourrait ajouter ça. Et puis, par exemple, changer les choses. Mais pour l'instant, nous n'allons pas ajouter ça et nous allons juste le garder comme ça. Au fait, nous, si la scène change, non ? Donc si nous changeons la scène, donc si nous bougeons ça, alors vous verrez une petite histoire ici et un petit magasin en haut. Et le magasin peut, oh garçon, vous pouvez fondamentalement enregistrer les changements en utilisant simplement Control S ou en allant dans Fichier et puis Enregistrer ici. Et, euh, je vais probablement l'utiliser plusieurs fois tout au long. Et comme avec presque n'importe quel autre programme, nous pouvons aller annuler ou refaire des choses avec Control Z. C'est tout simplement annuler les choses, puis Control Y revient fondamentalement et les réduit. Donc c'est, devrait être presque explicite, non ? Ensuite, la hiérarchie, si nous sélectionnons quelque chose ici, elle est également sélectionnée dans la vue de la scène et elle apparaît également quelque chose dans l'inspecteur. L' inspecteur est l'une des grandes choses que nous allons examiner, comme même plus en détail quand nous regardons scripts parce que c'est là que ça devient très intéressant. Cependant, ce qu'il faut dire à propos de l'inspecteur, c'est que, fondamentalement, pour chacun de nos GameObjects qui existe à l'intérieur de notre scène, nous obtenons des informations supplémentaires que nous pouvons également manipuler. Donc, par exemple, pour la position, je peux fondamentalement changer cela. Et comme vous pouvez le voir à gauche, il change en fait aussi dans la scène. Donc, c'est très important et ce sont en quelque sorte, ceux-ci sont regroupés dans leur fonctionnalité. Donc, par exemple, cette caméra a évidemment une sorte de composant de caméra qui lui est associé où nous pouvons changer différentes choses qui sont associées à la caméra. Et la transformation signifie simplement que c'est le positionnement et l'échelle de rotation. Donc, c'est ce genre de, disons la manifestation physique de cet objet. Et chaque objet a toujours un composant de transformation. Ce sont donc les composants individuels. On ne va pas parler d'Ajouter un composant en ce moment. C' est quelque chose que nous verrons plus tard. Cependant, nous pouvons, bien sûr, ajouter des composants à nos objets individuels. Regardons rapidement la console aussi. Donc, la console a deux parties principales. Ici. Nous avons déjà vu si vous avez regardé l'introduction C forte, alors vous aurez vu cela plusieurs fois. Il y a essentiellement des sorties. Si nous faisons déboguer le journal de points ou le débogage, déboguer l'avertissement de journal de points, alors ceux-ci sont affichés ici. Si nous les sélectionnons, alors nous pouvons voir une sorte de trace ici. Et cela peut également être étendu ou déplacé vers le bas. Nous avons quelques boutons, cela efface la console. Nous pouvons l'effondrer, nous pouvons nous arrêter sur les erreurs, et ensuite nous avons aussi quelques choses que nous pouvons faire. Comme vous pouvez le voir, la sélection de la cible. Je n'utilise pas vraiment ça. C' est pour, si nous devions vraiment fou avec notre débogage, pas vraiment nécessaire. Nous pouvons également filtrer pour sur fondamentalement normal, juste les journaux, les avertissements et les erreurs. Et c'est essentiellement la console entière. Ce n'est pas si fou. Et comme avec presque toutes les autres choses, nous allons examiner ceux comme encore Plus tard, la vue du projet est fondamentalement les dossiers et répertoires que nous avons pour notre projet. Actuellement, à l'intérieur de notre dossier d'actifs, nous avons un dossier de scènes, et à l'intérieur, nous avons la scène d'exemple. C' est la scène qui est créée au début de la fin lorsque nous créons un nouveau projet ici, c'est simplement la scène qui est créée. Et c'est tout ce que nous avons ici. Je vais pour. À l'avenir, nous allons créer quelques dossiers supplémentaires. Et je vais également vous montrer fondamentalement ma structure de dossiers personnels que j'utilise. C' est bien sûr quelque chose qui revient entièrement à vous de décider. Vous pouvez le suivre ou ne le suivez pas. C' est juste une suggestion. Même avec la mise en page de base de la, de l'ensemble de l'écran ici. C' est quelque chose que vous voudrez peut-être suivre ou non. Parlons rapidement aussi des bons boutons ici, juste pour l'achèvement, c'est collaborer. Cela signifie simplement que si vous voulez collaborer avec plusieurs personnes avec Unity collaborer, vous pouvez le faire avec cela. Je ne m'inquiéterais pas pour ça maintenant parce que nous allons d'abord faire les bases. Allons rouler avec le concept d'unité et oméga1 parler essentiellement de collaboration. Les services gérés signifient simplement qu'il y a des services. Donc, si je clique dessus, la fenêtre de service apparaît et ce sont des services spécifiques que je pourrais essentiellement activer ici pour ce jeu particulier. Comme la collaboration pas nécessaire, je peux essentiellement fermer cette fenêtre de services en cliquant sur le milieu de la souris et puis il disparaît. Je peux également cliquer avec le bouton droit de la souris et je crois que je peux fermer l'onglet aussi. Le compte est simplement le compte sur lequel je suis connecté. Ainsi, les couches de votre compte Unity sont les couches qui existent. C' est quelque chose dont nous allons parler plus tard aussi. Et dans la mise en page simplement comme la mise en page de mon Unité. Donc, je peux, par exemple, le changer. Je pourrais changer une croyance qui se fait alors recharger. Donc, je ne veux pas vraiment faire ça, mais j'ai ma propre mise en page KJ ici. Comme je l'ai dit, j'ai ceci et je crois que je peux aussi le rendre disponible. Donc, je peux réellement enregistrer ceci dans un fichier et j'aurai la mise en page disponible. Tu devrais avoir ça maintenant. Il aurait dû être téléchargeable au début du cours. Donc oui, ouais, c'est fondamentalement tout. Je veux dire, les seules autres choses sont le début, l'arrêt, et le bouton pas. Le bouton étape met tout simplement ce que nous avons obtenu ici. Donc, si on met ça et qu'on s'arrête par exemple. Donc, ce bouton de pause en fait, et puis nous pouvons marcher comme image par image à travers une scène particulière avec ce bouton. Bien sûr, en ce moment, ça ne fait rien parce que, eh bien, il n'y a rien ici. Donc il n'y a rien à voir, ce sont ces trois boutons. Et puis si l'une de ces choses particulières n'est pas ici, vous pouvez toujours aller à Fenêtre et regarder toutes ces différentes fenêtres qui sont là. Donc la scène, vous savez, le jeu, l'inspecteur que nous avons vu, la hiérarchie, la console de projet, sont essentiellement les plus importants qui devraient être là presque toujours. Et puis tout le reste est quelque chose que nous allons examiner dans le détail et d'autres pas dans les détails. Et donc nous allons regarder comme très bien. Et certaines des autres choses sont beaucoup plus avancées que nous n'avons pas vraiment besoin de faire, disons des jeux simples ou même des jeux un peu plus complexes. Mais oui, c'est fondamentalement tout ce que je voulais vous dire pour la mise en page de l'unité, c'est un peu plus complet. Mais, et il y a bien sûr, plus à apprendre et les applications de cela. Mais je voulais juste, que tu sois au moins un peu à l'aise à l'intérieur de cette disposition donc tu sais, ok, j'aime savoir vaguement où il est. Ok, la hiérarchie me montre tous les objets de la scène , puis le projet a fondamentalement la structure des dossiers et ainsi de suite et ainsi de suite. Donc, oui, c'est fondamentalement la disposition de l'unité. Et l'éditeur a expliqué, j'espère que vous avez trouvé cela utile comme toujours. S' il y a des questions, hésitez pas à poser et je serai sûr de répondre. Et oui. 45. (Les bases de l'unité) Structure de dossiers de l'unité: Bon, bienvenue à l'introduction de base de l'unité ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil à la structure de base des dossiers. Fondamentalement que j'utilise personnellement. C' est que je pense, je ne sais pas, ça a évolué au fil des ans. Ce n'est pas vraiment si compliqué ou fou à expliquer, et cela devrait être assez simple aussi. Donc, à l'intérieur de notre vue de projet juste ici, nous avons le dossier assets. Et ce dossier d'actifs. C' est essentiellement là que nous aurons tout ce que notre jeu a ou des scripts. Nous aurons nos scènes là-dedans, nous aurons nos photos, images et sprites. Tout va aller à l'intérieur de ce dossier assets, le dossier Packages ici. On peut ignorer cela pour l'instant. Nous n'utiliserons aucun paquet dans un avenir prévisible. Cependant, le dossier assets, C'est là que nous allons créer nos propres dossiers à l'intérieur de celui-ci. Et nous allons fondamentalement faire notre structure de dossier ici. Et c'est simplement un clic droit sur le dossier Assets, créer, puis Dossier. Et le premier dossier que nous allons créer va être appelé. Donc, à l'intérieur de ceux-ci, bien sûr, tous les scripts iront dans le futur. Et puis nous allons créer un dossier appelé sprites. Donc, au lieu de là, tous les sprites iront. Et puis deux autres photos qui sont assez importantes que nous pouvons également créer déjà est le dossier Ressources. Maintenant, il est très important que cela soit réellement écrit correctement parce que c'est l'un des autres dossiers qui est quelque sorte où nous serons en mesure d'entrer et de sortir des choses, disons. C' est donc un dossier très facile à lire à partir de l'unité. Gardons-le à ça pour l'instant. Nous allons regarder ça plus tard aussi. Et puis une chose que nous allons aussi créer est le dossier Prefabs. Nous allons parler de ce que sont les préfabs dans une conférence future en ce moment, nous sommes en train de construire une sorte de fondation. Et puis nous allons ajouter à ces followers individuels continuellement en bas de la ligne. Surtout bien sûr, le dossier des scripts va être celui où nous allons essentiellement créer tout un tas de scripts qui sont, vous savez, deca ont une pléthore de fonctionnalités et montreront essentiellement chacun de l'individu, les fonctionnalités individuelles que nous allons examiner dans cette introduction de base sur l'unité. Donc, ce sont essentiellement tous les dossiers qui sont intéressants. Une chose à mentionner pour les scripts est que si j'ai, par exemple, espaces de noms différents, j'ai déjà expliqué cela dans la partie forte de C à C. J' ai des espaces de noms différents et je suis fondamentalement miroir les espaces de noms dans ce dossier de scripts. Et ce que nous pouvons faire est fondamentalement, nous pouvons entrer ici et au lieu des paramètres du projet sous la durée du projet Sea shore, créer un espace de noms racine. Maintenant, à l'intérieur de notre introduction de base de l'unité, nous ne le ferons pas, cependant, quand nous créerons notre propre jeu. Donc, quand on fera le premier match là-bas, on va certainement le faire. Parce que alors le dossier de scripts va réellement refléter cela. Dans ce cas, le dossier des scripts est un peu mieux servi en ayant le séparé parce que les conférences qui vont venir sont fondamentalement indépendantes les unes des autres. Ainsi, vous pourriez, par exemple, sauter de la conférence à la conférence 5 sans rien manquer. Si la conférence pour est quelque chose que vous avez déjà vu ou que vous connaissez. Ouais, donc c'est la structure de base du projet, rien de trop fantaisiste ou trop fou à ce sujet. Il y a quelques autres, bien fondamentalement des dossiers qui pourraient se joindre plus tard sur la ligne. Probablement lorsque nous regardons des concepts plus intermédiaires et avancés, alors plus de dossiers se joindront. Cependant, ce sont essentiellement les photos dont nous avons besoin pour l'introduction de base et pour le premier jeu que nous allons créer. Donc oui, rien de trop excitant. Mais maintenant enfin, nous pouvons commencer essentiellement, et dans la prochaine conférence, nous allons enfin commencer à lire un script et voir un peu ce qui peut, ce que l'unité peut offrir fondamentalement. Donc, une fois de plus, j'espère que vous l'avez trouvé utile s'il y a des questions, n' hésitez pas à poser et je serai sûr de répondre. Et oui. 46. (Les bases de l'unité) Scripts et l'inspecteur: Bon, bienvenue à l'introduction de base de l'unité ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil à l' endroit où l'inspecteur et les scripts en général. Donc nous allons jeter un oeil si vous êtes un script et comment ça se manifeste. Et puis nous allons aussi voir à quoi ça ressemble à l'intérieur de l'inspecteur. Pour cela, nous allons créer notre premier script ici. Et nous sommes une fois de plus un clic droit sur le dossier des scripts, créer, puis C-Sharp script. Nous pouvons ensuite renommer ceci. On va nommer cette santé. Donc c'est le, nous allons essentiellement faire un cours de santé dans ce cas. Et nous allons aussi créer une nouvelle scène pour ça. Donc, je veux fondamentalement que chacune des différentes conférences ait une scène associée à elle. Donc, nous allons faire un clic droit sur les scènes une fois de plus créer, puis ici pour scène. Et ça va être trois. Donc L3, ce serait des scripts. Vous pouvez bien sûr nommer ce que vous voulez. Vous n'avez pas à suivre les scripts même comme les scènes individuelles individuelles comme ça. Tu peux faire ce que tu veux. Je pense juste que c'est le plus strict. Et cela se traduira ensuite également dans le contenu téléchargé de l'application. Ainsi, vous pouvez bien sûr également télécharger l'ensemble de l'introduction de l'unité de base en tant que paquet, l' importer, et ensuite vous aurez presque la même structure que cela. Donc la première chose que nous allons faire est de créer un nouvel objet vide ici. Créez donc un clic droit à l'intérieur de la Hiérarchie. Créer vide. Il s'agit maintenant d'un objet de jeu vide. On va juste appeler ça santé. Juste pour des raisons d'argumentation. Personnellement, je fais une autre chose. Je positionne toujours mes GameObjects vides à la position 0, 0, 0. y a littéralement aucune raison de le faire. Je déteste voir comme ces chiffres vraiment tordus dans cette position. C' est pour ça que je fais ça. Et tu n'as pas à le faire, mais je le fais. Alors, oui. Et maintenant que cela est créé et positionné, nous pouvons essentiellement prendre le script clic gauche et puis le faire glisser ici. Et comme vous pouvez le voir, je peux obtenir un indicateur ici. Et si je lâche, et nous pouvons voir le script de santé est maintenant fondamentalement un composant de ce GameObject. Et la grande chose, c'est qu'après avoir sauvé ici, la grande chose est que nous pouvons maintenant manipuler ce script. Et ça va maintenant courir à l'intérieur de notre porte. Donc, nous pouvons soit double-cliquer ici ou double-cliquer ici. Cliquez ici. Et puis pour moi, un studio visuel s'ouvrira. Il s'ouvrira sur un écran différent. Donc je vais juste le faire, ils s'en vont. Et c'est un nouveau script essentiellement formé. Et c'est à ça que ça ressemble. Nous obtenons une méthode de démarrage et nous obtenons une méthode de mise à jour. Donc, ce sont deux des choses qui sont pré-générées. Et nous pouvons également voir que ce script de santé, cette aide classe de santé. Hérite du comportement mono. comportement mono, comme vous pouvez le voir, est la classe de base à partir de laquelle tous les scripts Unity dérivent. Donc, si vous voulez un script de test unitaire partout où la méthode de démarrage fonctionne et que la méthode de mise à jour fonctionne, alors cela doit fondamentalement hériter du comportement moral. Et ce qui est également important si je regarde rapidement ce comportement mono aussi, la chose dont vous avez besoin pour mettre fondamentalement un script sur un GameObject ici. Donc sinon cela ne marchera pas. Donc, si j'ai un script où je n'ai pas ce comportement mono, l'héritage, je ne peux pas vraiment attacher à quoi que ce soit. Donc, ce que nous allons faire, c'est que nous allons créer quelques nouveaux champs et variables ici. Donc pas à l'intérieur de notre méthode, mais au-dessus. Donc, fondamentalement, dans le cadre de cette classe, nous allons cliquer sur Créer une santé publique. Et nous allons le mettre égal à 100, puis une manière publique égale à 100. Donc, c'est quelque chose qu'une classe de santé pourrait gérer avec une santé, une variable de santé et une variable de manière. Et nous allons aussi faire un entier de variable privée pourrait éprouver. Et ça va aussi être un 100 juste pour des raisons d'argumentation en ce moment. Maintenant, nous allons garder ça comme il est et regarder en arrière dans Unity. Donc nous allons avoir un peu de rechargement ici. Maintenant. Nous le ferons. C' est un avertissement qui ne nous concerne pas vraiment en ce moment. Il dit simplement, Hey, nous avons créé comme un champ, une variable que nous n'avons jamais utilisée. Donc c'est comme quelque chose qui est inutile essentiellement, parce que nous ne l'utilisons pas. Je dirais vraiment qu'il s'agit d'un avertissement qui peut presque toujours être ignoré, surtout au début. Nous faisons juste que nous essayons quelques choses et oui, donc la plupart du temps, cela peut être ignoré si vous travaillez vraiment sur un projet et que vous obtenez cela comme avec presque tout ce que vous créez, alors cela simplement signifie un, peut-être qu'il y a des choses que certains champs ou certaines variables qui pourraient être supprimés. Mais dans ce cas en ce moment, ça ne nous concerne pas qui nous pouvons réellement effacer la console. Si nous regardons maintenant notre objet de jeu de santé ici et demi script, vous pouvez voir quelque chose est apparu, une variable de santé ici et un homme de variable ici. Il y a donc deux champs qui sont apparus avec leurs valeurs de base que nous avons mis ici. Et je veux dire, c'est plutôt cool, non ? Donc c'est quelque chose qui vient de se passer sans que nous fassions quoi que ce soit. Mais si je déclare et initialise ces variables, c'est plutôt cool. Mais si nous voyons la variable fallacieuse n'est en fait pas là. Et la raison en est que nous l'avons rendu privé. Donc, les modificateurs d'accès dans ce cas ont vraiment de l'importance pour notre visibilité à l'intérieur de l'inspecteur. Mais pour cela, nous pouvons faire ce qui suit. Nous pouvons mettre les crochets fondamentalement ici et taper dans le champ sérialisé dans ce champ essentiellement sérialiser ce champ. Maintenant, nous n'obtiendrons plus fondamentalement l'ère ou l'avertissement, Hey, ce n'est pas utilisé parce que maintenant il est utilisé et il est utilisé par l'inspecteur. Et comme vous pouvez le voir, maintenant l'expérience en place, ne vous inquiétez pas à ce sujet. Maintenant, la variable d'expérience apparaît ici aussi. C' est donc une façon de rendre les variables privées visibles spécifiquement pour l'inspecteur. Oui, et c'est les bases ici. Nous pouvons aussi, si nous commençons maintenant, rien ne se passera parce que nous n'avons rien d'excitant ici. Mais ce que nous pouvons faire, par exemple, nous pouvons faire la santé moins égale à 20, par exemple. Et puis juste pour des raisons d'argument, si je peux comprendre comment taper 0 dans la méthode de mise à jour. Nous pourrions mettre en expérimenté plus égal à un, par exemple, juste pour que nous ayons quelque chose à montrer. Et regardons juste ça. Et puis on peut voir ce changement ici. Et commençons. Et comme vous pouvez le voir, maintenant l'expérience, comme vous pouvez le voir, ça va vraiment, vraiment rapide parce que actuellement sont FBS, est-ce comme un millier ou quelque part autour de ça ? Nous arrêtons rapidement ou notre pause le jeu. Alors ce que nous pouvons faire, c'est que nous pouvons réellement aller image par image. Et puis comme vous pouvez le voir, cela n'est en fait augmenté que d'une par image, comme il est censé le faire. Et il se réinitialise une fois que nous avons arrêté le jeu. Parce que ce n'est fondamentalement pas persistant, les données ici reviennent à ce que nous avons, placer à l'intérieur de notre script fondamentalement. Donc oui, c'est un aperçu de base du script et de l'inspecteur. Nous avons dans l'introduction C forte vu que la méthode de départ fondamentalement quelque chose qui se passe juste au début, c'est exactement vrai. Donc, une fois que nous commençons la scène, tout à l'intérieur d'ici est exécuté. Et puis après cela est fait, la méthode de mise à jour est appelée chaque image. Donc, cela dépend du cadre. Et puis nous ajouterons quelque chose ici. Dans le futur, nous verrons également différentes façons de faire les choses dépendantes du temps. Donc on peut dire, Hey, on va attendre une minute pour ça ou, ou une seconde ou quelqu'un comme ça. Et oui, c'est l'aperçu de base de tout ça. J' espère que vous l'avez trouvé utile comme toujours, s'il y a des questions, hésitez pas à poser et je serai sûr de répondre. Et oui. 47. (Les bases de l'unité) Actifs Kenny et The Store de biens pour nos jeux de l'argent.: Bon, bienvenue à l'introduction de base de Unity ici pour le cours UD. Et cette conférence, nous nous trouvons en dehors de l'unité. Je sais que c'est fou. Et c'est essentiellement quelque chose que je voulais vous montrer pour des actifs que vous pourriez vouloir utiliser. Et pour un exemple d'actifs que nous allons utiliser. Donc les actifs de Kenny sont en gros un tas d'actifs et ils sont tous libres d'utiliser, non ? Il y a donc plus de neuf côtés, comme vous pouvez le voir avec un tas de trucs. Comme vous pouvez le voir, il y a différents éléments 2D et aussi 3D ici aussi quelques ressources audio. Et si nous, par exemple, allons juste à la page suivante, comme vous pouvez le voir, il y a une variété de choses et elles sont toutes folles cool. Ils ont l'air vraiment sympa. Et comme je l'ai dit, ils peuvent être utilisés. Ils sont sous une licence universelle, sorte qu'ils sont vous pouvez les utiliser à des fins commerciales ou n'importe quel but que vous voulez. Et pour notre introduction de base ici, donc pour les bases de l'unité, nous allons utiliser les cartes à jouer ici. Ils sont en fait ils nous offrent tout ce dont nous avons vraiment besoin. Et je veux juste une image particulière que nous pouvons utiliser pour faire des choses avec qui semble un peu plus agréable que juste, je ne sais pas, comme un écran noir ou blanc. Et comme vous pouvez le voir ici, c'est un cc, votre inverse, eh bien, vous êtes libre de l'utiliser dans le jeu dans n'importe quel projet, personnel ou commercial. n'y a pas besoin de demander la permission. Donner attribution n'est pas nécessaire par grandement apprécié. Bien sûr, c'est pourquoi je vous montre ce numéro 1 parce que c'est une excellente ressource. Et aussi parce que c'est, je veux dire, c'est incroyable, non ? Ça n'a jamais été aussi facile. Et il y a des atouts vraiment sympa ici avec lesquels vous pouvez faire des choses incroyables. Et aussi, je vais, bien sûr, les cartes à jouer, Je vais avoir ceux inclus comme un téléchargement et aussi le lien vers les actifs ici est également comme une ressource disponible. Et puis il y a encore une chose, c' est l'Unity Asset Store. Vous avez probablement déjà vu ça avant. Mais c'est essentiellement un puits où les actifs sont vendus ou peuvent également être téléchargés gratuitement. Il y a donc des actifs qui sont vendus, et il y a aussi des actifs qui sont gratuits. Donc, si nous filtrons par les trois premiers, comme vous pouvez le voir, il y a un tas de choses ici qui sont libres d'utiliser et que vous pouvez également utiliser dans votre jeu. Nous allons nous concentrer sur les acides de Kenny, donc nous allons utiliser les actifs de Kenny à l'avenir. Cependant, comme je l'ai dit, l'Unity Asset Store peut également être un grand moment où vous pouvez également obtenir de nouveaux actifs. Et oui, ce serait fondamentalement tout. Je voulais juste vous dire que nous allons utiliser les acides Kenny et qu'il y a, il y a encore plus d'endroits où vous pouvez aller en ligne. Je pense que les artistes de jeux ouverts, un autre endroit. Il y a donc beaucoup d'endroits. Rubber, on va le garder aux actifs de Kenny. Et c'était juste quelque chose que je voulais mentionner. Comme je l'ai dit, tout comme une ressource disponible. Et oui, c'était déjà tout pour cette conférence. Je voulais juste te montrer ça rapidement. J' espère que vous avez trouvé utile s'il y a des questions comme toujours se sentir libre de poser et je serai sûr de répondre. Et oui. 48. (Les bases de l'unité) Scènes et construisez des paramètres de l'unité.: Bon, bienvenue à l'introduction de base de l'unité ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil rapide sur les paramètres de construction et faire une construction. Alors qu'est-ce qu'une construction et qu'est-ce que cela signifie faire ? Pour consulter les paramètres de construction ? Eh bien, l'idée est qu'un projet de loi est fondamentalement un exécutable que vous pouvez, de votre jeu, que vous pouvez exécuter. Et il y a tout dedans. C' est essentiellement la sortie de votre jeu, presque comme vous le voudriez. Et il y a quelques paramètres que nous devons faire pour que cela fonctionne réellement. Donc, il y a beaucoup de paramètres en fait, et nous allons jeter un oeil plus tard dans la ligne aussi. Mais l'une des choses qui est très important sont les paramètres de construction. Donc, allez dans le fichier, puis construire les paramètres. Et si je déplace rapidement cela ici, comme vous pouvez le voir, ce sont les paramètres de construction. Il y a quelques choses que vous verrez immédiatement. Donc, nous pouvons essentiellement regarder quelle plate-forme nous voulons publier cette application. Habituellement PC, Mac et autonome est une sorte de, je dirais, la valeur par défaut. Et puis vous pouvez, si vous l' avez, vous pouvez choisir différentes plates-formes cibles et même changer l'architecture ici. Habituellement, au début, vous voulez mettre dans cela comme un développement construit parce que c'est un développement construit. Et puis aussi très important est comme vous pouvez le voir, il y a des scènes que vous voulez réellement construire. Donc, lorsque vous créez de nouvelles scènes, vous voulez vraiment garder à l'esprit que vous devrez les ajouter ici lorsque vous construisez. Donc, comme vous pouvez le voir en ce moment, j'ai vu une scène d'échantillon slash qui, celui-là est là, mais le L3 qui n'est pas là-dedans. Donc, je peux simplement le faire glisser et l'avoir ici. Et ces 01 est fondamentalement l'indice. Donc, il y a en fait une vague dans laquelle nous pouvons accéder à cela. Donc, si nous devions regarder quelque chose comme ça, il y a donc un moyen que nous puissions accéder à cela par script fondamentalement. Et oui, alors jetons un coup d'oeil à ça pour qu'on puisse le construire. Je ne vais pas le faire, parce qu'en ce moment il y a vraiment, en fait, tu sais quoi ? Faisons-le. Fondamentalement, ok, où voulons-nous construire ça ? Habituellement, je dirais qu'à l'intérieur de votre dossier Unity, vous créez un dossier appelé builds. Et puis toi, tu choisis celui-là. Et la construction va en fait prendre un peu de temps en fonction de combien il y a dedans. Maintenant, bien sûr, je n'ai pratiquement rien ici. n'y a pas, pas de vrais sprites. n'y a pas d'atouts réels. Il n'y a presque rien ici. Et juste une seconde, je vais vous montrer où cela est apparu. Donc, le fondamentalement ici, vous y allez. Donc, nous obtenons une année EXE où nous pourrions commencer un exécutable. Maintenant, ça va commencer sur le mauvais écran, donc je ne vais pas le faire maintenant. Mais dans l'ensemble, comme vous pouvez le voir, il y a tout ici. niveau 01 est essentiellement les données de chacune de ces scènes. Et puis nous avons aussi un dossier de ressources. C' est celui que j'ai mentionné qui devait être le bon nom. Et puis il y a aussi un dossier géré avec tout un tas de DLL fondamentalement. Globalement. C' est aussi ce que vous prendriez fondamentalement. Donc, l'EXE et le dossier de données, et ces deux-là seraient ceux que vous auriez à expédier essentiellement aux gens pour qu'ils puissent jouer à votre jeu. Ce sont également des paramètres du joueur. Je vais juste cliquer vite sur ça et te montrer, euh, on va les examiner dans un moment plus tard aussi. Ce sont tout simplement des choses comme le nom du produit, quelle société vous avez, quelle version, quelques icônes et ainsi de suite et ainsi de suite. Il y a beaucoup ici et nous allons couvrir quelques-uns des paramètres du projet plus tard. Comme je l'ai dit, pour l'instant, nous n'allons pas vraiment examiner cela parce qu'ils ne sont pas aussi importants que cela pourrait l'être, n'est-ce pas ? Donc, c'était le créé, le Build, créé une build. Et nous allons juste, pour des raisons d'argumentation, créer une nouvelle scène ici. Ce serait des scènes de L5, non ? Parce qu'on parle de scènes. Ouvrons ceci et puis créons également un nouveau script. Donc, ce n'est que le test. Appelons simplement cela les scripts de scènes si importants que ce sont des scènes et non vus. Parce que je crois que si nous devions nommer ça, que nous les voyions, nous pourrions entrer en conflit avec quelque chose. Et à l'intérieur d'ici, nous pouvons utiliser quelque chose. Nous devons donc utiliser un nouvel espace de noms. C' est le moteur Unity. Non, ce n'est pas juste. Vous connaissez le moteur que la haute direction. Et avec ça, nous pouvons faire toutes sortes de choses amusantes. Donc, par exemple, nous avons le directeur de scène. Et le directeur de scène peut faire tout ce que nous voulions faire. On peut même créer de nouvelles scènes. On peut avoir toutes les scènes. Nous pouvons être vus à un index particulier, qui est exactement l'index au lieu des paramètres de construction. Nous pouvons aussi l'obtenir, obtenir les scènes par nom. On peut charger une nouvelle scène. C' est là que nous pouvons changer d'une scène à l'autre. Il y a aussi deux événements auxquels vous êtes même possible de vous abonner. Et oui, c'est ce sont en quelque sorte quelques-unes des autres. Faisons juste ce qui suit. Faisons en sorte que immédiatement après le démarrage, il charge une scène différente. Donc, il va charger vu avec l'index un. Est-ce exact ? Vérifions juste rapidement à nouveau. Donc c'est une des choses où c'est un peu ouais, L3. C' est exactement exact. Alors, c'est bien. Oui. Donc l'idée ici est que nous devons bien sûr attacher cela à un objet. Donc ça va être des objets d'une scène, 000 000. C' est juste une fois de plus pour moi, parce que je veux vraiment que ce soit à la position 0 000 scènes. Donc, le script est maintenant attaché à cet objet. Si je sauve et commence maintenant, cette scène changera en vu L3. Comme vous pouvez le voir maintenant, nous sommes en L3. Nous devrons peut-être élargir cela pour voir. Et puis nous avons notre script santé de retour. Et c'est en cours d'exécution parce que nous avons commencé ce C maintenant. Et si on en ferme, on est de retour à notre L5 SI d'origine. Donc, c'est une petite chose sur les scènes et les paramètres de construction fondamentalement et comment construire votre jeu. Nous allons voir cela plus tard dans la ligne avec un peu plus de détails et un peu plus de ce qui y va. Mais dans l'ensemble, les scènes elles-mêmes sont assez importantes. Et oui, c'était en gros tout pour cette conférence. J' espère que vous l'avez trouvé utile s'il y a des questions comme toujours, hésitez pas à poser et je serai sûr de répondre. Et oui. 49. (Les bases de l'unité) MonoBehavior in Unity Basics: Bon, bienvenue à l'introduction de l'unité de base pour le cours UD. Et dans cette conférence, nous allons jeter un oeil au script des comportements mono. Nous avons donc vu dans la première conférence de cette introduction de base que nous devions avoir un script ou une classe hériter du comportement mono de classe de base pour qu'il soit un composant à l'intérieur de l'inspecteur sur nos objets. Et maintenant, nous allons examiner ce que ce comportement de modèle nous permet essentiellement de faire quelques exemples et ignames, essentiellement quelques exemples de ce que c'est et ce qu'il fait. Alors créons une nouvelle scène. Et ce serait six, et c'est le mono comportemental. Et ouvrons également cette scène, bien sûr, créez un nouvel objet GameObject vide. Appelons simplement ceci E. Appelons simplement cet exemple dans ce cas, parce que je ne veux pas qu'il soit appelé comportement mono nécessairement. Je pense que tu peux. Je crois que les noms ici ne sont pas si importants pour les cas car le comportement mono est un mot-clé. Et je ne crois pas que les noms ici soient un vieil associé. Mais juste pour être en sécurité, et nous appellerons celui-ci l'exemple de comportement mono. Pour qu'on ne confond rien. Et ouvrons ça. Et comme vous pouvez le voir, encore une fois, le comportement du modèle de cette année est exactement la classe de base. Et comme toujours, deux de ces méthodes sont créées, la méthode start et la méthode update. Et il y a déjà des commentaires ici. Donc, la méthode de démarrage est exactement ce qu'elle dit. Il est appelé avant la première image. Donc, l'idée est que cela arrive, tout à l'intérieur de votre arrive au tout début. Et la méthode de mise à jour est simplement quelque chose qui s'appelle chaque image. Pour cela, le script doit être activé. C' est quelque chose que nous pouvons activer et désactiver dans l'Inspecteur. On va voir ça sous peu. Et puis nous avons quelques autres méthodes de base que nous pouvons appeler, par exemple, la méthode éveillée. Donc, nous pouvons simplement taper éveillé, puis appuyer sur la touche Tab pour le compléter automatiquement. La méthode wait nous permet essentiellement d'avoir quelque chose appelé avant la méthode start. Donc, la méthode awake est réellement appelée lorsque le script est chargé. Donc, ce script particulier dans ce cas, est en cours de chargement. Et cela arrive d'ailleurs, lorsque la scène commence ou quand un objet de jeu inactif est essentiellement réactivé, pour ainsi dire. Donc, parce que nous pouvons activer et désactiver un objet de jeu spécifique. Et cette méthode de réveil est appelée soit, comme je l'ai dit, lorsque l'objet de jeu inactif est à nouveau actif, où la scène est chargée pour la première fois. Nous avons également différentes méthodes de mise à jour. Nous avons deux méthodes de mise à jour différentes. Nous avons la mise à jour fixe ici, et nous avons également la mise à jour tardive. Donc, le réparé. Il s'agit essentiellement d'une méthode de mise à jour qui est indépendante de la fréquence d'images. Et l'idée étant ici que généralement la physique devrait être calculée à l'intérieur de la méthode de mise à jour fixe. Parce que comme vous pouvez le voir ici, cette fonction est appelée chaque image de fréquence d'images fixe si le comportement moral est activé. Donc, si cela est activé, ce script, alors cela est appelé dans une fréquence d'images fixe. Par conséquent, la fréquence d'images est indépendante Pourquoi est-il important que, que la physique soit au lieu de cela, lieu de la méthode de mise à jour ? Eh bien, l'idée étant que si vous avez un bon ordinateur ou un meilleur ordinateur, disons, alors peut-être qu'un jeu fonctionnera pour vous pour 60 images par seconde. Et par conséquent, la méthode de mise à jour va être froide 60 fois par seconde. Et peut-être que quelqu'un qui a un pire ordinateur ne reçoit que 30 images par seconde. Et cela signifie simplement que cela n'est appelé que 30 fois. Et si la physique dépend de la fréquence d'images, alors tout se déplacerait plus vite pour la personne qui a le meilleur ordinateur et plus lentement pour la personne qui a le pire ordinateur. Par conséquent, la physique va dans la mise à jour fixe, peut effectivement ajouter un commentaire ici aussi bien. Physique, physique à l'intérieur d'ici. Donc c'est un peu important. C' est ce qui est fixé à lui. Et la mise à jour tardive est appelée aussi chaque image. Nous pouvons effectivement voir ce début à cette cour chaque image, mais il est appelé après que la méthode de mise à jour a été appelé un fait après tout une méthode de mise à jour ha, ont été appelés. Donc, c'est la chose qui fonctionne la dernière à la fin du cadre et peut être utilisée essentiellement si nous avons deux choses, si nous sommes comme, ok, la méthode de mise à jour va aller et puis la mise à jour fixe pourrait aller. Et puis nous voulons quelque chose qui à la toute fin, puis la mise à jour tardive peut aller un personnellement, je ne l'ai pas utilisé beaucoup de fois, mais je voulais aussi le montrer parce qu'il peut être très important. Et puis il y a une autre chose que je voulais montrer et c'est la méthode destroy, la méthode onDestroy. Voyons s'il y a quelque chose. Cela est appelé quand le comportement moral sera détruit. Donc, l'idée est que nous pouvons essentiellement appeler une destruction une méthode qui détruit ensuite ce particulier, soit ce comportement de modèle particulier et fondamentalement le supprime d'un objet de jeu. Ou nous pouvons aussi détruire un objet entier et cela devient froid. Donc, cette méthode est exactement ce qui s'appelle quand nous sommes sur le point de détruire quelque chose. Cela peut, par exemple, enregistrer certaines données ou générer un message, ou il peut avoir un autre appel d'événement que nous voulons relayer, par exemple, vers l'interface utilisateur. Donc peut-être que vous avez 10 ennemis et nous montrons réellement ce nombre en haut de l'écran et dans l'interface utilisateur. Et puis à chaque fois qu'OnDestroy devient froid, peut-être que nous voulons voir qu'un ennemi a été détruit. Donc, nous mettons à jour l'interface utilisateur avec cela. Ce serait un exemple. Donc, laissez-nous ajouter, si vous les journaux ici, donc débogué avec la méthode awake dans ce cas. Et puis nous allons juste copier ce vers le haut expliqué. Je peux essentiellement marquer quelque chose ici pour que je puisse le sélectionner. J' appuie sur Ctrl C, puis je vais ici et appuyez sur Ctrl V pour le coller. Et c'est la méthode de départ. Nous avons également la mise à jour. Alors mettons ça ici. Mettons la mise à jour fixe ici parce que c'est en quelque sorte, vous savez, ce n'est pas vraiment avant la mise à jour normale, mais c'est que je pense que cela a plus de sens. Et puis la couche qui est à la fin. C' est donc la méthode de mise à jour. Et nous allons également copier ceci pour la mise à jour tardive. Et puis dernier mais pas le moindre, le onDestroy nous ajouterons. On peut vraiment voir ça. Nous allons voir ça, donc fondamentalement détruit. Et nous allons en fait jeter un oeil à cela d'abord et ensuite nous verrons quelque chose d'autre aussi. Aussi, n'oubliez pas d'ajouter ceci à notre objet de jeu ici. C' est l'une des choses qui va probablement arriver à certains où vous allez commencer et rien ne se passe. C' est parce que vous n'avez pas ajouté à la chose à votre objet, n'est-ce pas ? Et comme vous pouvez le voir clairement, la mise à jour dans la mise à jour tardive sont appelés chaque image, non ? Et la mise à jour fixe, comme vous pouvez le voir, est appelée peser moins parce que peu importe la fréquence d'images est ici. Cela est appelé partout de la même façon. Donc, en théorie, ce nombre devrait fondamentalement augmenter exactement en même temps que votre nombre. Et ces deux-là pourraient être complètement différents pour certains, pour certains d'entre vous qui ont un meilleur ordinateur, ça va être beaucoup plus rapide. Et pour certains d'entre vous qui pourraient avoir un ordinateur pas si bon, cela pourrait être beaucoup moins rouge et comme vous pouvez le voir, éveillé, puis la mise à jour stockée se déclenche, puis la mise à jour fixe, puis la mise à jour et enfin, la fin mise à jour. Et nous pouvons aussi aller image par image. Et comme vous pouvez le voir, que nous sommes en train d'en obtenir de nouveaux. Et comme vous pouvez le voir, maintenant c'est la même chose en ce moment, parce qu'en ce moment nous allons en fait image par image. Et le FPS est, signifiera essentiellement qu'il est 0. Et puis je vais image par image. Par conséquent, ils sont tous synchronisés. Droit ? L'autre chose que je voulais vous montrer, parce que ce que nous n'avons pas encore vu, c'est celui que nous n'avons pas encore vu, c'est le destroyer. Et la méthode de destruction qu'on peut appeler. On va le faire ou on va détruire cet objet. Ce qu'on va faire, c'est qu'on va avoir un nouveau vide privé. Et nous allons juste appeler ça juste la méthode de test. Parce que pourquoi pas ? Et cette méthode de test va en fait faire deux choses. Une chose, ça va sortir quelque chose. Ça va juste dire, Hey, c'est plutôt cool. Et la deuxième chose qu'il fera est qu'il détruira cet objet. Donc, comme vous pouvez le voir, détruire est une méthode que nous pouvons appeler. Et cette méthode de destruction prend un objet. Donc, nous pouvons littéralement mettre n'importe quoi à l'intérieur de ça. Et il suggère déjà que soit voulez que la transformation d'objet de jeu détruise l'objet de jeu à détruire. Donc cela détruit alors exactement celui-ci. Donc, cela détruit à cet exemple ici. Et nous le verrons bientôt. Mais ce que nous ferons, c'est que nous ne voulons pas que cela se produise immédiatement. Ce que nous voulons, c'est que nous voulons que cela se produise après un temps fixe. Et pour cela, nous pouvons utiliser la méthode invoke. Et la méthode invoke est une méthode de comportement mono qui, comme vous pouvez le voir, appelle la méthode, le nom de la méthode en quelques secondes. Donc, si nous appelons et ensuite nous appelons le nom de la méthode est la méthode de test. Donc, copions cela parce que le nom doit correspondre exactement très important. Et disons juste quatre secondes. Donc, après quatre secondes, avec cet appel, la méthode de test est appelée, qui va imprimer, hey, c'est assez cool, puis détruire l'objet du jeu. Par conséquent, la sortie de cette méthode OnDestroy, ainsi que l'arrêt de toutes les méthodes de mise à jour car elles sont associées à cet objet particulier. Donc c'est beaucoup une fois, Voyons juste ce qui va se passer ici. Donc, si nous l'avons stocké une fois de plus, ce que nous avons vu avant, laissez-moi, laissez-moi faire un peu plus gros. Et comme vous pouvez le voir, c'est plutôt cool. Fondamentalement détruit et puis le compte a cessé, ainsi que l'objet n'étant plus là. Il a donc été détruit ici. Et si nous arrêtons maintenant fondamentalement cela, l'objet est de retour. Parce que c'est exactement comme on l'a vu avant. Les données se réinitialisent essentiellement pour le quand nous l'arrêtons. Et oui, c'est l'idée d'en avoir quelques, donc quelques trucs de comportement mono pour ainsi dire. Nous pouvons aussi nous pencher sur un autre. Donc si on met ces points, alors on peut voir qu'il y a tout un tas de trucs qu'on peut appeler. Et si vous avez quelques méthodes ici ainsi que bien sûr, quelques types différents de propriétés. Et oui, ce sont essentiellement des choses que nous pouvons faire. Nous pouvons bien sûr, aussi regarder dans le comportement mono lui-même. Je crois que si on appuie sur Contrôle. Donc, si vous maintenez Contrôle, puis cliquez sur le comportement moral, nous pouvons réellement voir les métadonnées ici. Donc, ce sont essentiellement les différents types de méthodes qui sont capables d'être froides. Et oui, mais pour l'instant, ce n'est pas trop intéressant. moment, je pense que nous avons déjà vu beaucoup de choses. Fondamentalement détruire un objet et quelques autres choses associées à ce comportement mono. Et oui, ce serait en fait pour cette méthode, comportement mono est une partie très cruciale de ce cadre d'unité. Donc il y a certainement un, c'est une chose importante. Donc, comprendre cela est vraiment important. Donc comme toujours, mais dans ce cas, surtout s'il y a des questions comme toujours se sentir libre de poser et je serai sûr de répondre. Et oui. 50. (Les bases de l'unité) Maths : petits mathématiques : vecteurs: C' est juste un petit addendum j'ai fait pour expliquer les vecteurs et les maths derrière eux. Ceci est vraiment utile pour réellement comprendre. Et même si nous n'allons pas entrer dans les moindres détails, nous allons examiner quelques choses pour que vous puissiez saisir le concept de base des vecteurs. Donc d'abord, on va commencer par quelque chose. Tout le monde devrait être familier avec la ligne numérique. Maintenant, comme vous pouvez le voir, la ligne va de 0 à 5, et bien sûr au-delà aussi. Mais pour nos besoins, c'est tout ce dont nous avons besoin. Vous pourriez vous imaginer être quelque part sur cette ligne pour connaître votre position. Vous n'auriez besoin de connaître qu'un seul numéro, le numéro que vous envoyez, non ? Donc, ce serait une ligne unidimensionnelle dans ce cas, parce qu'un seul nombre avait besoin de savoir où vous êtes. Ajoutons aussi les nombres négatifs. Est-ce toujours unidimensionnel ? Oui, c'est parce qu'il suffit de spécifier un seul numéro pour savoir où nous sommes. Il peut être négatif ou positif, mais était encore un seul chiffre. Qu' est-ce que cela a à voir avec les vecteurs ? Vous pourriez demander, eh bien, nous pouvons représenter ce nombre comme un vecteur. Ainsi, les deux deviennent alors une flèche de 0 à 20 dans ce cas, et souvent d'autres cas est appelé l'origine. On peut avoir différents vecteurs. Voyons quelques exemples ici. Nous avons un vecteur avec valeur2, valeur3 et valeur négative trois. Si je te demandais d'ajouter les chiffres 23 ensemble, tu dirais que c'est cinq. Voyons ce qui se passe quand on ajoute les vecteurs ensemble. Ici, nous avons un vecteur avec valeur2 et ici avec la valeur trois. Comment pouvons-nous les additionner ensemble ? On pourrait imaginer le vecteur avec la valeur3 qui descend le premier vecteur. Et après qu'il ait fait regarder ce journal ce qu'on finit à cinq ans. Donc deux plus trois équivaut à cinq. La même chose peut être faite avec la soustraction ou plutôt des nombres négatifs et des vecteurs. Donc 5 plus moins trois est égal à deux. Cela peut vous sembler complètement évident car c'est ainsi que vous ajoutez et soustrayez des nombres tous les jours. Mais que se passe-t-il si nous allons une dimension plus haut dans la seconde dimension ? Maintenant, nous avons deux lignes numériques. Celui-ci est traditionnellement appelé l'axe y, points vers le haut et verticaux. L' autre est appelé l'axe des x, et il pointe vers la droite et est horizontal. En regardant le même exemple que nous avions auparavant, les deux seraient maintenant écrits comme 2 0, parce que maintenant nous avons besoin de deux nombres pour identifier où nous sommes sur cette grille. Nous allons deux pas dans la direction x et 0 pas dans la direction y. Mais disons qu'on veut finir ici. On doit faire cinq pas dans la direction X. En trois étapes dans la direction y, nous allons appeler ce vecteur a égal 5, 3 avec la valeur 53. Et nous pourrions vouloir ajouter un autre vecteur sur cela, peut-être égal moins 2 et 2. Nous pouvons faire exactement le même voyage avant que je glisse simplement b le long du vecteur a, nous pouvons arriver à notre destination C égale 3 cinq. Et comme vous pouvez le voir maintenant, l'addition et la soustraction est simplement un ajout pour chaque nombre du vecteur indépendant l'un de l'autre. Donc, si vous prenez la valeur x et les ajoutez ou soustrayez. Et si nous prenons les valeurs y et additionnons, soustrayez les, quoi que ce soit, la somme, Ce sont les nouvelles valeurs du nouveau vecteur. La multiplication est juste étirer le vecteur. Donc, si nous avons 2, 3 ans et nous le multiplions par deux, et nous étirons juste le vecteur pour qu'il devienne 46. Et la division rend juste un peu plus court. Maintenant, pour nos besoins, nous utilisons en fait des vecteurs en trois dimensions, mais c'est aussi facile que dans les deux dimensions. Merci d'avoir écouté cette conférence sur les vecteurs. Je crois que c'est une partie importante des mathématiques à comprendre, surtout lorsque vous essayez de développer un jeu, quel que soit le moteur ou le système que vous utilisez. Et s'il y a des questions, bien sûr, hésitez pas à poser et je serai sûr de répondre. Et oui. 51. (Les bases de l'unité) Transformes et vecteurs: D' accord, continuons l'introduction de base de l'unité ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil aux transformations. Donc nous avons vu quelques choses, le comportement mono, et maintenant nous allons jeter un oeil à certaines des parties constitutives, ainsi que si nous cliquons sur l'un de nos GameObjects ici, nous pouvons voir que nous avons cette transformation quand nous avions la position, la rotation sur l'échelle. Et nous allons y jeter un coup d'oeil un peu plus en détail. Alors créons une nouvelle scène ici. Donc cette scène va être L pour les transformations. Et ouvrons-le et hors écran. C' est tout simplement appelé des transformations aussi. Transformes, très important qu'il soit avec le S. Donc nous avons transformé. Sinon, nous allons probablement avoir un problème avec le script de transformation réel. Donc ou une partie. Donc, nous allons nous répandre à partir de zéros transformés 0000 dans les scripts de transformation ici. Et puis nous pouvons simplement double-cliquer pour le démarrer. Et puis on peut penser à ça. Nous l'avons déjà vu. Donc, nous allons déboguer le journal de points exactement ceci, cette transformation de points. C' est donc la transformation attachée à cet objet de jeu. Donc, retournera simplement le composant de transformation réel. Donc celle-là. Voyons donc à quoi cela ressemble, comment cela sort réellement. Et comme vous pouvez le voir, ça ne fait rien. Donc, nous devons aller un peu mieux que ça. Donc, cela dit simplement, c' est comme une classe de transformateur. Maintenant, ça ne nous mène nulle part. Cette transformation, cependant, comporte quelques composants, ce qui est la position. Donc c'est un vecteur de trois. Il a la rotation, qui est un quaternio. Je vais dire ce que c'est dans un petit peu. Et puis il y a aussi l'échelle, qui est divisée dans l'échelle locale et les pertes. Et c'est aussi un vecteur trois. Alors faisons quelque chose comme ça. Peut-être. Oui, échelle locale et perdue. Et donc tout d'abord, les vecteurs, nous l'avons vu dans la dernière conférence. Quel vecteur est dans ce cas, sont des vecteurs tridimensionnels. Cependant, les vecteurs bidimensionnels fonctionnent fondamentalement de la même manière, juste avec le dernier axe n'étant pas important. Ce qu'est un quaternion, c' est en fait un quadridimensionnel, c'est une construction quadridimensionnelle pour représenter des rotations dans l'espace tridimensionnel. Maintenant, cela semble incroyablement compliqué à la première pensée. Et cela peut être assez compliqué. Mais la bonne chose est que la rotation peut également être convertie en un vecteur trois, essentiellement, parce que la plupart de la rotation peut être faite dans les angles d'Euler, c'est simplement une façon mathématique d'exprimer les rotations aussi bien. Tu l'as fait, peut-être en avoir entendu parler quand tu as peut-être un avion, il y a le lacet et et le tangage. Et c'est quelque chose qui peut aussi être décrit avec cela. Et une rotation comme ça fonctionne alors. Vous prenez essentiellement un axe particulier. Donc, par exemple, vous dites que nous allons essentiellement prendre un point et le coller à travers l'axe des x, puis tourner autour de cela. Et c'est ainsi que cette rotation fonctionne aussi fondamentalement. Cependant, dans notre cas, la rotation, nous allons examiner cela peut-être un peu plus en détail aussi. Mais en ce moment, l'important est qu'en 2D, seule la rotation Z compte pour nous. Parce que la rotation Y serait dans ce plan, qui ou plutôt dans ce plan aurait juste un sens. Et l'attente serait dans cet avion qui n'a aucun sens. Seulement faire le tour comme ça a vraiment du sens pour nous. Tout autre chose en 2D n'a pas vraiment d'importance. Donc, revenons en fait ici et déboguer chaque chose. Donc, cette transformation de point, la position de point. Et nous pouvons copier ceci avec Control C et le coller Control V, obtenir la rotation ici et obtenir l'échelle locale dans ce cas. Et nous allons, pourquoi ne pas avoir aussi l'autre échelle ? Donc si nous mettons à l'échelle, comme vous pouvez le voir, il y en a deux. Il y a l'échelle locale et l'échelle des pertes. Il y a en fait des commentaires joliment là-bas. Donc, nous pouvons réellement voir la position spatiale mondiale de la transformation. Nous avons un quaternion qui remue les magasins la rotation de la transformation dans l'espace du monde. Nous avons également l'échelle de la transformation par rapport aux objets du jeu. Parents, j'expliquerai ce que ça veut dire dans un peu de temps. Et c'est l'échelle globale de l'objet. Donc, quand nous regardons ceci, sortie, ceci et voir ce que nous allons réellement obtenir. Et la première chose est la suivante, quoi ressemblent les vecteurs, non ? Donc, c'est trois composants, comme ici. Donc la position va être de 000 000 000, la position de rotation est de 000. Et puis un, comme je l'ai dit, un quaternion est fondamentalement un vecteur quadridimensionnel qui exprime les rotations pour nous en ce moment. N' y réfléchissons pas trop profondément. Réfléchissons-y. Ok, nous avons quatre chiffres qui représentent une rotation. Mais nous pouvons aussi le faire avec ces trois chiffres. Et puis cela pourrait changer en conséquence. L' échelle, à la fois locale et perdue est la même en ce moment, parce que c'est simplement un, un objet de jeu qui est à la racine. Donc, ce que nous pouvons faire fondamentalement, c'est si je mets un nouveau vide, donc j'ai cette sélection, cliquez avec le bouton droit de la souris, dites Créer vide qu'il va. Il va créer cet objet de jeu comme un, tant que, fondamentalement un enfant pour cet objet de jeu. Donc, c'est l'objet de l'enfant pour ainsi dire. Et c'est maintenant, il a essentiellement deux échelles. Parce que si nous devions mettre à l'échelle ce parent, alors l'enfant serait à l'échelle avec lui. Et si nous devions mettre à l'échelle juste l'enfant. Juste l'enfant est mis à l'échelle. Donc si je devais mettre dans l'échelle à 22. Et puis comme nous le verrons, si je commence ça et tout d'abord, nous allons avoir 22 et les deux, parce que le, le parent, c'est bon. Cependant, si nous désactivons le script de transformation sur celui-ci, allez dans le script enfant et mettez le même script de transformation sur celui-ci. Même si l'échelle ici est de 1, 1, 1. On commence ça. Vous verrez que l'échelle locale est 111 parce que c'est l'échelle elle-même. Cependant, l'échelle perdue en ce qui concerne la façon dont le monde regarde cela est de deux à deux. Parce que le ça devient fondamentalement oui. Ajouté. Je crois que c'est multiplicatif, c'est vrai. Donc c'est ouais. Donc c'est multiplicatif. Donc, si cela est trois fois plus grand dans n'importe quelle direction, et c'est aussi trois fois plus grand, bien sûr. C'est logique. C' est essentiellement l'idée d'échelle locale et d'échelle avec perte. Et il y a aussi une dernière chose qui serait la position locale. Il y a aussi la rotation locale. Et encore une fois, cela est relatif à la transformation du parent et la position locale est relative à la transformation des parents. Jetons un coup d'oeil à ça. Et nous allons en fait comme ajouter rapidement ce parce que sinon nous allons juste avoir des chiffres fous là-bas et nous ne le faisons pas, nous ne allons même pas savoir ce que ceux-ci sont. Donc c'est la position, c'est la rotation. Et juste pour l'enfer va ajouter la rotation locale aussi. Parce que, pourquoi pas ? Si nous sommes là, alors nous pourrons rapidement regarder ça. C' est donc la rotation locale que nous voulons. Et puis ce sera l'échelle locale. Nous allons rapidement retourner ça. Donc nous allons mettre ça ici parce que nous avons toujours le local, le bas. Alors faisons de ça une habitude. Voilà, tu y vas. Bon, donc on a la position, puis on va mettre la position locale, puis la rotation que la rotation locale, l'échelle et l'échelle locale. Jetons donc rapidement un coup d'oeil à cela. Commençons et voyons ce que nous verrons. Donc, la position est 000, 000 zéros de position locale. C' est logique parce que tant la transformation que l'enfant ont des dépôts zéros, par conséquent, rien n'a changé la rotation. Est-ce la même chose parce que c'est exactement ce que nous avions. Et puis les pertes, les pertes s'échelonnent. Donc l'échelle par rapport au monde est de trois. L' échelle locale de lui-même en est un. Donc, par exemple, tournons ce 90 degrés dans la direction z et puis l'enfant, nous pourrions, par exemple, effectivement, nous allons alors aussi déplacer ce cinq vers le haut. En fait, passons seulement vers le haut. Alors ce que nous allons voir, c'est que l'échelle locale sur la position locale ne changera pas, comme vous pouvez le voir, parce que localement cet enfant est toujours ici. Donc local est fondamentalement l'axe de ceci. Et puis en termes de position mondiale, donc la position normale est maintenant de 0 à 0, parce que cet enfant, si nous regardons celui-ci, est situé juste ici. Donc, même si localement, donc si ce serait la racine. Celui-ci est à 000, 000 parce qu'il est exactement la même position que cette transformation dans les temps du monde, Il est déplacé. Et la même chose avec la rotation. Comme vous pouvez le voir, c'est maintenant un peu différent ici. Comme je l'ai dit, le quaternion. Vous n'avez pas besoin de les comprendre maintenant. Il suffit de noter que c'est différent de cette rotation Fondamentalement. Ouais, et c'est une sorte de toute l'idée ici. C' est un peu, ça ne peut pas devenir un peu fou. D' habitude. Tout simplement ce que vous devez réaliser est que si vous avez des objets enfants et des enfants, alors ils peuvent travailler un peu différemment des objets normaux. Mais d'habitude, il est, que nous pouvons aussi voir ici. Nous pouvons définir réellement déplacer la rotation et la rotation locale, comme avec la position locale et la position normale. La seule chose que nous ne pouvons pas définir, c'est l'échelle des pertes. On ne peut se fixer qu'à l'échelle locale. Maintenant, pour les objets qui le sont, qui n'ont pas de parents où le parent est fondamentalement la racine. Ça n'a pas d'importance. Vous voulez toujours définir l'échelle locale de toute façon. Et juste pour que nous ayons fait ici, ce que nous allons faire, c'est que nous allons faire rapidement un mouvement très facile que nous pouvons faire. Et cela va être cette transformation de points points-points. C' est donc une méthode que nous pouvons faire appel à cette transformation. Et comme vous pouvez le voir, nous avons en fait beaucoup de méthodes que nous pouvons appeler. Donc il y a beaucoup de choses. Alors, voilà. Donc, comme vous pouvez le voir, il y a beaucoup de choses sur cette transformation que nous pourrions appeler. Et maintenant, nous allons regarder traduire. Et ce que cela fait, comme vous pouvez le voir, déplace la transformation dans la direction et la distance de la traduction. Donc on va bouger ça. Si nous pouvons regarder cela, cela a besoin d'une traduction vectorielle trois et peut également prendre un espace par rapport à. Cela signifie simplement qu'il se déplacera le long d'un certain vecteur. On va lui donner un vecteur deux points, non ? Donc, c'est simplement le vecteur 0, donc un dans la direction X et 0 dans la direction Y. Et nous allons à des fois ça par une fois par fois.Deltatime. Et ce temps delta est essentiellement le temps d'achèvement en secondes depuis la dernière image. Idée étant que nous voulons que ce ne soit pas, de ne pas bouger cela à une vitesse incroyable. Mais nous voulons que cela soit un peu atténué. En gros. Voyons ce que ça va faire. Nous allons en fait, pour les besoins de cela, nous allons désactiver l'objet enfant et le script ici. Je vais l'allumer pour ces transformations. Parce que c'est plus intéressant en ce moment. Et oui, voyons juste, donc ça devrait changer la position. Et ça devrait changer cette exposition. En fait, désactivons également la rotation ici parce que sinon cela deviendra un peu funky. Donc, si nous regardons cela, comme vous pouvez le voir, il se déplace maintenant dans la direction X. Et si nous allons dans la vue de la scène, nous pouvons voir qu'elle se déplace lentement mais sûrement loin. Et oui, c'est, comme je l'ai dit, un mouvement très, très simple et simple que nous pouvons faire. Bien sûr, en théorie, ce que vous pouvez faire est que vous pouvez également prendre vos propres vecteurs ici pour que vous puissiez créer un nouveau vecteur parce que la distance qu'ils sont est importante. Alors, quelle est la taille du vecteur ? Mais oui, dans l'ensemble, c'est une vue d'ensemble de base du composant de transformation, disons. C' est donc le plus basique des composants que chaque objet de jeu a toujours. Donc, cela est toujours présent dans n'importe quel script qui a le comportement mono en tant que classe de base, vous devriez être capable de faire cette transformation de point et changer le positionnement ou l'échelle ou quelque chose comme ça. Et comme vous pouvez le voir, il y a d'autres choses, le nombre d' enfants, vous pouvez avoir des enfants. Il y a un moyen d'obtenir des composants et il y a aussi un moyen de faire tourner cet objet. Donc, il y a quelques choses comme vous, comme d'habitude, je suggère probablement de jeter un coup d'oeil à certaines de ces choses, mais bien sûr, beaucoup d'entre elles nous allons aussi jeter un coup d'oeil dans les prochaines conférences. Et puis une vraie application que nous verrons une fois que nous commencerons à faire un moment, fondamentalement un vrai jeu, non ? Un vrai jeu comme un jeu où nous pouvons placer. C' est un peu excitant, mais nous construisons les choses très importantes. C' est donc une autre de ces choses qui est en fait très important, transforme une partie cruciale, signifiant essentiellement où se trouve un objet particulier dans le monde. Donc encore une fois, s'il y a des questions, hésitez pas à poser et je serai sûr de répondre. main. Oui. 52. (Les bases de l'unité) GameObjects in Unity Basics: Bon, bienvenue à l'introduction de base de l'unité ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil à un objet de jeu. Donc nous en avons parlé ou j'en ai parlé depuis un moment maintenant, j'ai toujours appelé les éléments constitutifs des objets de jeu de scène. Et c'est exactement ce que ceux-là sont. Et nous allons les examiner plus en détail maintenant. Alors créons une nouvelle scène appelée El Nine GameObjects. Et puis, bien sûr, nous allons également créer un nouveau script et nous appellerons ce jeu objets aussi. Un important encore avec le S à la fin, parce que sinon nous pourrions rencontrer quelques problèmes avec le nom. Donc, un nouvel objet GameObject vide est nécessaire. Aussi, appelons ce jeu objets et 000 000 000. Encore une fois, c'est juste pour moi parce que j'ai vraiment besoin que ça soit 0. Je ne sais pas pourquoi, mais je veux que mon objet de jeu vide soit à la position 0. Maintenant, avant d'entrer dans le script, nous aurons besoin d'une chose de plus. Et c'est quelque chose pour visualiser notre très beau objet de jeu. Donc, nous allons réellement y ajouter quelque chose pour que nous puissions voir cela. Alors faisons ceci comme suit. Je vais avoir rapidement, j'ai un dossier sur le différent sur, sur un autre écran et je vais juste glisser dans pour entendre un PNG. Donc, ce sera un fichier PNG au lieu des sprites. Mais cela, bien sûr, est disponible en tant que ressource. Et cette chose particulière est, comme vous pouvez le voir dans l'inspecteur, nous avons maintenant cette texture 2D au lieu d'ici. Il a déjà vu cela comme un sprite. Et il n'y a vraiment rien à changer ici pour pouvoir le garder comme ça. Nous allons dans une future conférence aller dans le sprite, essentiellement un éditeur de sprite et comment cela fonctionne dans une conférence et voir ce que nous pouvons voir là-bas. Mais en ce moment, nous allons faire est que nous allons en fait ajouter ceci comme un objet de jeu. Donc, nous pouvons simplement prendre ça et le faire glisser dans notre scène. Et juste comme ça, il crée un nouvel objet GameObject comme vous pouvez le voir. Et c'est un puits alors simplement situé ici. Ce que nous allons faire, c'est parce que c'est un peu petit. On va juste augmenter l'échelle ici à environ cinq fois cinq. Et ce qui sera, vous verrez aussi, c'est qu'il est un peu floue. Nous pouvons corriger cela en changeant ce mode de filtre pour pointer, puis en cliquant sur Appliquer, puis il n'est plus flou. Je vais expliquer ces choses comme je l'ai dit un peu plus tard. Au lieu d'un sprite, en ce moment, nous n'avons pas besoin de nous en préoccuper, mais maintenant nous avons quelque chose. Donc, nous allons aussi centroïdes à 000 et ensuite le déplacer un peu comme probablement comme trois. Oui, c'est bien. Donc maintenant, il est en haut de l'écran. Et si nous passons à notre vue de jeu, c'est maintenant ce que nous verrions à l'intérieur du jeu. Donc, nous verrions cet as de cœur flottant ici en haut. Et nous serons en mesure de faire quelques choses cool avec cela. Nous allons renommer ceci en panier parce que c'est une carte. Et on va voir ce qu'on peut voir. Donc, en ce moment, il s'agit d'un objet avec un composant de transformation, le composant de rendu sprite. Tout comme avec la propagation de sels, nous allons jeter un oeil au moteur de rendu dans un peu de temps. ce moment. Nous avons juste besoin de savoir que, ok, c'est fondamentalement qu'ils sont pour que nous ayons un visuel pour cet objet. Ceci étant bien sûr un objet vide, nous n'avons pas cela, cependant, nous avons le script ici. Et ce que nous allons faire, c'est que nous allons double-cliquer dessus et commencer à programmer quelque chose dès maintenant. Donc la première chose que nous voulons, c'est que nous voulons un nouveau champ ici, et ce sera un objet de jeu privé appelé carte. Et c'est la chose cool parce que comme je l'ai dit, au lieu de la hiérarchie, les choses individuelles sont des objets de jeu là-dedans. Et nous pouvons les référencer en utilisant simplement une nouvelle variable du type d'objets de jeu. Donc, c'est simplement une volonté de classe, parce que c'est un monde privé, faire un champ sérialisé afin que nous puissions réellement voir cela à l'intérieur du spectre. Et puis au lieu de la méthode de démarrage, la question devient vraiment, eh bien, où est-ce appelé en ce moment va juste être affecté à elle. Eh bien, jetons un coup d'oeil. Donc, comme vous pouvez le voir en ce moment, il n'y a pas d'objet de jeu ici. Et si je devais faire quelque chose avec cette carte, alors ce qui arriverait est que cela ne fonctionnerait tout simplement pas parce que c'est nul. Donc, le, il n'a pas été attribué parce que c'est, comme vous pouvez le voir, num signifie qu'il n'y a pas d'objet de jeu ici. Maintenant ce que je peux faire, et c'est la chose vraiment cool à propos de l'inspecteur. Je pourrais faire glisser ça ici. Et comme vous pouvez le voir, il voit en fait que, Oh, c'est un objet de jeu. Et si je le mets ici, je peux voir que ce tribunal est maintenant référencé à l'intérieur de cette variable particulière. Cependant, nous ne voulons généralement pas cela parce que pas toujours, est pas toujours une bonne idée d'assigner des choses par l'intermédiaire de l'inspecteur. Parfois, ça peut être bien, mais je voulais aussi vous montrer comment vous pouviez faire ça en soi. Il y a plusieurs façons différentes et l'un d'eux est fondamentalement l'un des plus faciles. Donc, ce que nous pouvons faire est que nous pouvons juste dire que le cordon est égal à l'objet de jeu. Donc, le nom du point de classe trouve plutôt. Et puis à l'intérieur de cet appel de méthode, nous pouvons appeler, nous pouvons mettre un nom. Dans ce cas, cela serait appelé car c'est le nom de l'objet. On peut juste vérifier ça à nouveau. Oui, c'est le nom de l'objet est appelé carte, et c'est ce qui doit entrer là-dedans. Il s'agit donc d'une méthode statique de GameObject qui renvoie un GameObject, comme vous pouvez le voir, trouve un GameObject par son nom et le renvoie. Donc, cela va regarder à travers toute la scène que nous avons Open actuellement. Recherchez l'objet avec le nom donné ici et retournez-le. S' il le trouve. S' il ne le trouve pas, bien sûr, il sera toujours nul. Donc, voyons juste s'il trouve réellement cela en faisant quelque chose comme la position de point de transformation de point de carte. Donc, nous allons simplement obtenir la position de l'accord que nous venons de voir là-bas. Et oui, voyons si ça marche ou si ça ne marche pas. Parce qu'en ce moment, bien sûr la cour, la cour n'a aucun script associé. Nous obtenons maintenant ceci, cet objet de jeu via ce script ici et en jetant un coup d'oeil, alors stockons ceci et voyons ce qui se passe. Donc, la première chose que nous pouvons voir est que cette variable de carte a effectivement rempli. Donc, il a trouvé la carte avec GameObject point trouver. Et nous voyons aussi que 0, 3, 0 a été sorti et c'est exactement la position du panier. Donc tout a fonctionné exactement comme nous le voulions. Ce qui est plutôt cool. Donc c'est une façon de chercher des objets de jeu et ensuite oui, même, même les manipuler, non ? On a vu les transformations la dernière fois. Comment on peut les manipuler, changer la position. Et bien sûr, nous pourrions, par exemple, le faire aussi dans ce domaine. Mais je voulais montrer quelque chose d'autre parce qu'il y a quelque chose d'autre qui est vraiment intéressant et qui engendre un nouvel objet de jeu. Donc, c'est une sorte de partie d'objets de jeu. Et ce que nous pouvons faire, c'est que nous pouvons fondamentalement faire une nouvelle variable d'objet de jeu ici. Donc objet de jeu et définissez cela égal à instancier. Instantiate est l'une des méthodes d'objet en fait. Et puis nous lui donnons simplement un, un objet original, qui est cet accord. Donc ça peut être un peu bizarre. Qu' est-ce qu'on fait ici ? Eh bien, cette méthode instanciée crée simplement un nouvel objet GameObject basé sur un objet de jeu donné que nous lui donnons une sorte de modèle. Cela peut également être appelé un préfabriqué. Et nous allons regarder les préfabriqués dans un peu, un peu comme une semaine plus tard. Maintenant, je voulais juste vous montrer rapidement que nous pouvons générer de nouveaux GameObjects. Et ce nouveau GameObject est maintenant bien sûr enregistré dans cette variable d'objet de jeu. Et ils sont, nous pouvons définir la position, par exemple, sur le nouveau vecteur 3 et ensuite quelque chose comme 0, moins trois. Et moins trois, f se termine par 0, quelque chose comme ça. Et oui, faisons ça et voyons si ça marche. Donc, au début, nous devrions voir une nouvelle carte apparaître avec un clone de carte nom. Exactement. Et c'est à la position 0 moins 3 0. Nous allons jeter un oeil à l'instanciate une méthode dans un certain temps plus en détail plus tard sur la ligne également. Je voulais juste le mentionner rapidement parce que c'est aussi une très grande partie des objets du jeu. Et dans l'ensemble, ce sera les GameObjects. C' est la principale chose dont nous allons parler. Donc, il va toujours être fait GameObjects. Ce sera toujours des composants et ce sera toujours des scripts. Et oui, ce sont des éléments de construction. L' idée est que nous avons différents types de composants et GameObjects peut essentiellement prendre presque n'importe quel type de composant sur eux. Scripts ou un composant particulier se transforme. Et comme si on avait vu le moteur de rendu de sprite, non ? Cela a la capacité de nous montrer quelque chose comme une image. Et il y a tellement d'autres en quelque sorte de ces composants ici, non ? Donc, ce sont tous les différents groupes. Et puis pour chacun d'entre eux, il y en a beaucoup. Donc on va aller morceau par morceau, vous savez, petit à petit. Nous allons apprendre de plus en plus. Et j'espère qu'à un moment donné, nous serons en mesure de faire un petit jeu. Voyons voir. Ce serait une excellente idée si cela fonctionnait réellement. C' est donc l'essentiel des objets de jeu. Cela peut être un peu intimidant au début parce qu'il y en a un peu pour eux. Maintenant, bien sûr seulement montré quelques choses. Si nous mettons dans le point GameObject, nous n'avons pas de gros, beaucoup de méthodes différentes que nous pouvons appeler. Il y a donc des méthodes comme ici. Mais ce qui est intéressant, c'est que le, ce taux d'appel est exactement un GameObject. Donc, cela renvoie un objet de jeu. Si on jette un coup d'oeil à ça. Alors le, allons-y pour la transformation. Voilà, tu y vas. Et donc la transformation de distorsion est exactement quelque chose pour un composant dans ce cas. Mais le, cela se réfère exactement à l'objet de jeu. Donc, nous pouvons aussi dire ce point GameObject, et ensuite nous pouvons obtenir exactement le GameObject auquel ce script particulier est attaché. Donc, ce serait le script, puis ce point GameObject renvoie l'objet de jeu réel. Comme vous pouvez le voir que ce composant est attaché à. Et oui, il y a beaucoup d'autres choses et je suis presque sûr que beaucoup d'entre elles vous allez les ramasser au fur et à mesure. Parce que nous pourrions faire une conférence d'une heure sur GameObjects. Mais cela ne nous mène pas vraiment nulle part parce qu'il y a tellement de choses dont vous avez besoin comme une sorte de condition préalable pour comprendre d'autres choses. Parfois, cela peut être un peu nerveux, mais je pense que dans l'ensemble, nous allons avoir une bonne ligne pour comprendre chaque partie particulière. Mais de toute façon, Assez dit que c'était la conférence sur un objet de jeu. J' espère que vous l'avez trouvé utile. Et bien sûr, j' apprécierais vraiment une critique de votre part. Sinon, si vous avez des questions comme toujours, hésitez pas à poser et je serai sûr de répondre. Et oui. 53. (Les méthodes de saisie de l'unité en matière d'entrées) en unité: D' accord, continuons avec l'introduction de base de l'unité ici pour le cours de l'unité. Et dans cette conférence, nous allons jeter un oeil aux entrées. Donc, les entrées, fondamentalement si vous appuyez sur une touche et puis une certaine chose arrive. Comment pouvons-nous faire cela dans Unity ? Eh bien, voyons ça. Créons une nouvelle scène, L dix, appelée entrées et ouverture, comme toujours créer un objet de jeu vide ici, appelant également ces entrées. Et laisse. Après avoir centré cela à 000 000, nous allons également créer un nouveau script des entrées de nom. On aurait pu deviner, mais voilà. Maintenant, nous n'aurons pas besoin de la méthode de démarrage ici. Nous avons seulement besoin de la méthode de mise à jour pour celui-ci. Parce que la méthode de mise à jour exécutera essentiellement toutes les images. Et si on appuie sur une touche, alors quelque chose se passera. Alors, comment peut-on faire ça ? Eh bien, nous mettons une instruction if et ensuite nous allons appeler le point de classe d'entrée, obtenir la clé vers le bas. Donc, c'est la méthode que nous voulons, donc retourne true pendant le cadre, l'utilisateur commence à appuyer sur une touche, et cette clé est accessible en utilisant le point de code clé. Donc le code clé est une énumération. Et à l'intérieur d'ici, comme vous pouvez le voir, ils sont tous fondamentalement un tas de codes clés différents. Et prenons juste pour cela f. Donc appuyez sur F pour déboguer le journal des points. Reste FQ. J'aime ça. Donc, en théorie, si tout fonctionne, cela devrait être vrai une fois que j'appuie sur la touche F. Donc, j'appuie dessus et cela obtiendra une sortie une fois, car dans ce cas, il n'obtient que des vrais. Voyons si ça marche vraiment. En outre, assurez-vous que le script d'entrée est activé ici. Très important. En ce moment, rien, puis la clé F, et voilà. Maintenant, ce que je peux faire est si je maintiens la touche Maj, comme vous pouvez le voir, elle n'augmente pas. Je tiens toujours la clé enfoncée. Vous devez simplement me faire confiance pour celle-là. Mais en effet, cela n'augmente pas. Et si je laisse tomber, je l'ai fait exprès. Alors peut-être que vous l'avez entendu. Alors voyons. Il y a bien sûr d'autres choses que nous pouvons faire. Et c'est exactement exact. Donc, il y a une clé de point d'entrée et ils obtiennent C0 prend simplement aussi un code de clé. Donnons-leur aussi F ici. Copiez simplement cela et disons en appuyant sur la touche F. Et puis juste pour la fin, je vais juste à l'autre. C' est se lever. Et cela est appelé, qui est ensuite arrêté d'appuyer sur la grille de touche F. Donc, la touche est vraie une fois que je commence, une fois que j'appuie sur la touche. Pour seulement ceux obtenir la clé, comme vous pouvez le voir, renvoie true tandis que l'utilisateur maintenez enfoncée la clé identifiée par la clé, clé appelée paramètre enum. Et ils obtiennent les clés vraies pendant le cadre que l'utilisateur libère sur la clé. Nous avons donc la possibilité de vérifier si une touche a été pressée une fois. Ou plutôt. Genre. Voyons ce qui se passe ici. Donc j'appuie sur F et je le maintiens enfoncé. Comme vous pouvez le voir, en appuyant sur la touche F, il seulement, il s'arrête réellement si le focus n'est plus sur le jeu. Parce que si vous regardez, pour qu'on puisse voir si je fais ça et ensuite j'arrête de presser parce qu'ils arrêtent de presser ici. Mais vous pouvez voir que cela est maintenant mis au point à cause de cette ligne légèrement bleue ici. Et si je me déplace ici à un moment donné, peut-être parce que je clique dessus, alors le focus se déplace et alors bien sûr, cela ne fonctionne plus. Donc, c'est très probablement ce qui s'est passé ici. Que pour une raison quelconque, c'est ouais, voilà. Maintenant, la mise au point a changé et alors cela s'arrêtera bien sûr. C' est donc une chose qui est très importante à réaliser aussi. Mais néanmoins, cela fonctionne toujours très bien. Et comme vous pouvez le voir, si j'aime vraiment, essayez d'aimer juste cliquer une fois et toujours comme 40, 7, 2, 4, 7, 1. Donc même ils le sont parce que, bien sûr, notre taux d'images est si élevé. On presse ça beaucoup de fois, même si je le presse comme à peine une seconde, on devient toujours absolument fou. Alors, oui. Oui, mais c'est une entrée de base. C' est tout ce qu'il y a pour eux. C' est juste comme si des déclarations très simples. C' est tout ce qu'il y a vraiment. Et ceux qui retournent simplement booléens. Donc, bien sûr, vous pouvez aussi les enchaîner ensemble, n'est-ce pas ? Donc entrée obtenir la clé vers le bas avec kicker f. Et puis, si , par exemple, vous pouvez utiliser certains des opérateurs booléens, certains des opérateurs logiques, la fin, puis les mettre ensemble avec un autre code clé. Donc oui, c'est les entrées très basiques. Et cela vous permet déjà de faire des trucs vraiment cool. Et ce que nous allons voir fondamentalement la prochaine pré-conférence est de faire un script de mouvement très simple. Maintenant, il y a quelque chose que vous pouvez aussi penser si vous pensez à nos transformations, nous avons eu un mouvement très, très simple là-bas. Et si vous appliquez maintenant les entrées et fondamentalement ce que nous avions dans la conférence de transformation, peut-être que vous pouvez déjà comprendre avant de regarder la prochaine conférence, comment nous pourrions être en mesure de créer un script de mouvements très, très simple. Oui, mais avec ça, je vais vous laisser et moi pour l'instant, pour cette conférence d'entrée, c'était bien sûr, une des choses les plus importantes pour un jeu. Je sais que, comme je le dis toujours, c' est l'une des choses les plus importantes, mais ce n'est peut-être pas important comment ça marche exactement. Mais les entrées elles-mêmes est important pour un jeu. Donc, les entrées auraient probablement pu les comprendre de leur propre chef. Mais néanmoins, c'est la conférence des entrées. Et à l'avenir, il y a un peu plus de nuance. Ça pourrait aussi bien vous montrer rapidement. Donc, la classe d'entrée a déjà, comme vous pouvez le voir, beaucoup plus de choses aussi. Donc ce n'est pas la seule façon d'obtenir l'entrée. Il y a pas mal de choses que vous pouvez faire. Mais pour l'instant, c'est l'apport que j'ai été. Je pense que c'est logique de te le montrer. Et puis plus loin, si jamais nous avons besoin de quelque chose d'autre, nous allons voir ça aussi. Oui, mais pour ça, c'est la fin de la conférence. J' espère que vous l'avez trouvé utile et comme toujours, s'il y a des questions, n'hésitez pas à poser et je serai sûr de répondre. Main. Oui. 54. (Les bases de l'unité) Créer un script de mouvement très simple de mouvement: D' accord, continuons avec l'introduction de base de l'unité ici pour le cours de l'unité. Et dans cette conférence, nous allons créer un script de mouvement très simple mais efficace. Et pour cela, bien sûr, nous allons, tout d' abord créer une nouvelle scène. Ce serait le mouvement L 11, un mouvement. Et commençons immédiatement. Et cette fois, nous n'allons pas créer un objet GameObject vide, mais nous allons encore une fois prendre le cœur et le mettre ici et le dimensionner. Nous allons le dimensionner jusqu'à environ quatre fois sa taille normale. Et a commencé au niveau y deux. Et puis nous allons aussi faire un nouveau script. Ça va être un script appelé où est-il ? Non, je l'ai raté. Apparemment, tu y vas. Mouvement. Mouvement. Oui. Et ouvrons ce script et voyons ce qu'on peut voir. Donc, tout d'abord, nous allons avoir quelques choses ici. La première chose va être un champ sérialisé, va être un flotteur privé appelé vitesse. Et on va régler ça à trois. Pour le moment. Bien sûr, on pourra changer ça plus tard. Parce qu'avec le champ sérialisé, c'est bien sûr disponible pour nous dans l'inspecteur. Et ce que nous allons aussi faire, c'est de créer une transformation privée, qui va juste être ma forme de brins de tendance. Et cela va simplement être réglé sur. Donc ma transformation est égale à cette transformation. Nous n'avons pas forcément besoin de le faire. Cependant, dans une conférence ultérieure, nous allons apprendre sur le composant gets et pourquoi le mettre en cache comme ceci est une idée très intelligente comme celle-ci. Faire cela est en fait assez. Et puis nous allons créer deux méthodes différentes parce que nous allons commencer à faire les choses d'une manière qui est, disons lisible. au plus, comme ça serait génial. Nous aurons donc une méthode d'exécution et une méthode de déplacement. Non, méthode de déplacement normale. Voilà, tu y vas. Donc celui-ci, Prenons juste les crochets bouclés ici et puis, et ces deux sont, sera appelé à l'intérieur de la méthode de mise à jour. Donc r1 et puis bouger. Donc c'est quelque chose qui est une bonne chose à penser. A généralement, il est préférable de séparer chacune des fonctionnalités de votre méthode de mise à jour en méthodes différentes. Et ensuite, il suffit de les mettre ici. Parce que maintenant si je vais dans ce code et voir, oh, ok, abord je le ferai, j'appellerai Run et ensuite je bougerai. C' est ça. Vous savez, le nom peut être un peu différent, mais dans notre cas, je pense que ça va aller. Maintenant, cette méthode de déplacement va avoir exactement ce que nous avons appris dans les quelques conférences précédentes. Donc, tout d'abord, le input.txt obtient la clé, pas obtenir la clé vers le bas, mais obtenir la clé. Et puis avec une note clé avec un code clé. Donc, c'est le point de code clé enum. Prenons le W, donc W va nous déplacer vers le haut. Donc, cela fera alors ce qui suit. En fait, je suis oui, bien sûr. Faisons-le comme ça. Allons en fait, faisons tout d'abord comme ça. Et puis je vais te montrer une autre façon de le faire. Donc, mon transform.py traduit, oh, non, traduit. C' est donc l'appel de méthode que nous avons utilisé. La dernière fois. C' était l'appel de la méthode pour déplacer quelque chose. Et on va mettre ça dans le vecteur deux points. Donc, c'est la direction vers le haut avec le temps .Deltatime fois la vitesse. Donc, c'est essentiellement l'appel que nous allons faire, que nous allons faire parce qu'alors nous allons avancer le chemin. Donc 0, 1, x étant 0, y étant 1, delta fois, encore une fois pour le faire pour que nous ne le faisons pas, cela fait fondamentalement plus ou moins comme la mise à jour fixe. Pas tout à fait, mais appelons-le comme ça pour le moment pour qu'on n'ait pas de fou comme un gros numéro. Faisons aussi WASD pour l'argument S et D ici. Et puis un serait la gauche, S serait vecteur vers le bas et un vecteur à écrire. Donc, c'est bien. Et nous allons tester cela avec ce code pour l'instant et puis nous allons refactoriser un peu après avoir testé. Alors prenons le script de mouvement et ajoutez-le à cet accord. Et puis allons voir si cela fonctionne réellement. Donc, si j'appuie sur la touche Echap, nous bougeons et si je la maintiens enfoncée, alors elle bouge et la carte bouge en effet. Maintenant, ce que vous remarquerez est que le mouvement diagonale est un peu plus rapide que le mouvement normal. Cela est tout simplement dû au PEI. Cela est dû à l'ajout similaire parce que nous sommes en mouvement, disons la vitesse urbaine de trois dans cette direction et la vitesse de trois dans cette direction. Et puis en théorie, nous devrions nous déplacer à une vitesse de six dans les directions diagonales. Ce qui, bien sûr, n'est pas vraiment ce que nous voulons. Cependant, nous allons ignorer cela pour le moment. Tout d'abord, ce que nous allons faire, c'est que nous allons penser à rendre cela un tout petit peu plus lisible. Maintenant, ce n'est pas la chose la plus importante et nous n'avons pas nécessairement besoin de le faire. Mais comme vous pouvez le voir, c'est comme un très comme ça est presque toujours le même, non ? Cet appel ici. C' est toujours mes tendances de retranslate. Et la seule chose qui change, c'est ça. Et si nous avons cela, Il est en fait assez facile de faire une fois de plus une autre méthode ou ceci, donc ce serait, par exemple, passer à pourrait être la chose ou nous pourrions, nous pourrions aussi simplement l'appeler déplacer à nouveau. Parce que nous allons avoir un périmètre ici qui sera un vecteur pour citer des directives. Et puis nous pouvons simplement copier ça parce que c'est, nous allons seulement utiliser ceux-ci. Mettez la direction ici. La vitesse va être prise, bien sûr d'ici, de sorte que ce n'est pas important. Et puis on peut dire « Déplacer vers », puis dire « vecteur à point ». Ce serait juste. Et puis, fondamentalement, il suffit de changer ça. Comme ça, boop, boop, boop. Et puis juste en s'assurant que nous avons les bons ici. C' est à gauche et c'est vers le bas. Ils y vont, c'est ça. Ce n'est qu'un exemple. À la fin de la journée, il n'y a vraiment pas de bonne ou de mauvaise réponse à cela. Cependant, je dirai que je crois que c'est probablement mieux à lire. On pourrait aussi dire que peut-être aller dans la direction. C' est peut-être un meilleur nom. Et si nous voulons changer ce nom sera peut faire est nous pouvons frapper le contrôle R deux fois. Donc, fondamentalement contrôler RR. Et puis nous pouvons changer cela, alors bougez dans la direction. Et puis c'est encore mieux à lire. Donc, je crois, c'est encore mieux à lire. Donc on peut voir, d'accord, si la touche est pressée, alors se déplacer dans la direction du vecteur dot-point. Donc, nous connaissons notre cas. Nous allons dans la direction vers le haut. En fait, c'est vraiment agréable à lire. Et dans l'ensemble, je pense qu'une bonne méthode pour refactoriser fondamentalement dans ce cas, non ? Alors, qu'est-ce que cela a à voir avec cette course aussi ? Donc, nous avons aussi cette méthode de course ici. Et ce que nous allons faire ici, c'est que nous allons faire ce qui suit. Donc, la touche input.txt vers le bas. Donc, si on appuie sur les touches, alors ce qu'on va faire, c'est dire « chaleur » ou « gauche shift », juste pour des raisons d'argumentation en ce moment. Ensuite, on va régler cette vitesse à cinq. Donc, en gros, une fois que j'ai appuyé une fois, alors nous allons mettre la vitesse à 25. Et puis on va copier ça et dire, si on prend la clé, on va la réinitialiser à trois. Donc, cela fait tout simplement pour que nous puissions courir. En gros. Il y a, disons, certains problèmes qui y sont associés que nous allons examiner également. Mais voyons si ça marche. Donc, tout d'abord, nos mouvements normaux fonctionnent encore. Et puis, si j'appuie sur la touche Maj et que je les déplace, comme vous pouvez le voir, je suis plus rapide qu'avant. Et puis si j'arrête de tenir Shift, alors cela fonctionne pour que je puisse en rafales essentiellement courir. C' est plutôt bien. Maintenant, une des choses que, bien sûr, je pourrais faire. Donc maintenant, j'ai la touche Maj enfoncée. Et parce qu'il cherche le lever, je peux essentiellement cliquer hors de cette fenêtre, arrêter d'appuyer sur la touche Maj, retourner dans. Et maintenant, je cours toujours. Nous pouvons aussi le voir ici. La vitesse est cinq maintenant. Et maintenant, je cours toujours. Maintenant, c'est quelque chose que vous devez penser aussi. C' est juste une petite chose que je voulais mentionner juste pour le moment. Et maintenant, nous allons aussi penser à l'idée de la, le doublement. Donc, le doublement se produit parce que, comme je l'ai dit , quand on regarde cela, si j'appuie à la fois sur W et E, ces deux directions vont être déplacées. Et puis fondamentalement, la traduction va à la fois se déplacer dans la direction de la droite, avec ces ajouts. Donc, disons juste pour le bien de l'argument va passer à ou à gauche plutôt. Donc ça va se déplacer dans la direction moins 1, 0. Il va aussi se déplacer dans la direction 0, 1. Et ceux-ci sont fondamentalement ajoutés. Et le mouvement diagonale qui est alors plus rapide, qu'à cause de la, juste comment les vecteurs fonctionnent. Droit ? Réparer cette diagonale est en fait, je ne dirais pas impossible pour la traduction. Cependant, cela va impliquer un peu plus de finesse dans ce cas. Et c'est quelque chose que nous ne ferons pas, surtout parce que la méthode Translate n'est pas toujours la meilleure façon de mouvement, comme il existe de meilleures façons d'assurer le mouvement. Et généralement aussi, le mouvement diagonale. Si c'est le cas, peu importe que le mouvement en diagonale soit plus rapide ou pas que bien sûr, ce n'est pas vraiment inquiétant. Mais en ce moment, nous ne allons pas résoudre cela parce que dans ce cas est en fait n'est pas un problème. Et aussi à cause de la fixe serait en fait aller un peu plus profondément dans la façon dont cela fonctionne et rendrait cela un peu plus compliqué. Et c'est censé être un script de mouvement très facile qui fonctionne simplement. Maintenant, c'est bien sûr, un script de mouvement qui fonctionne pour une sorte de vue descendante ou une sorte de vue Zelda dans ce cas. Mais cela peut être adapté à un type de plate-forme de u. attendez le saut et les différents, disons les mouvements diagonaux. Il y a donc une autre façon avec ça. Nous pouvons essentiellement utiliser le système de mouvement ou créer un système de mouvement différent. Disons que c'est quelque chose que nous allons jeter un oeil dans une conférence ultérieure. Cependant, soyez assuré, cela sera examiné à une date ultérieure, n'est-ce pas ? C' était donc pour le mouvement très basique. Maintenant, vous avez en fait une carte fondamentalement qui peut se déplacer, ce qui est assez cool. Toutes les choses considérées. Donc, nous avons parcouru un long chemin. Et dans l'ensemble, c'était tout pour cette conférence. J' espère que vous l'avez trouvé utile comme toujours. S' il y a des questions, n'hésitez pas à poser et je serai sûr de répondre. Et oui. 55. (Les bases de l'unité) Entrées de souris: D' accord, continuons avec l'introduction de base de l'unité ici pour le cours de l'unité. Et dans cette conférence, nous allons jeter un oeil à une entrée de souris. Nous avons donc déjà vu des entrées normales, puis un peu d'un script de mouvement. Maintenant, nous allons voir ce que les entrées pourraient être fondamentalement avec une souris. Et créons une nouvelle scène pour ça, qui va être L2. Ceci est la souris, les entrées de la souris. Et puis bien sûr aussi un nouveau script. Cela va également être appelé taux d'entrées de la souris. Ok, nous allons immédiatement accrocher cela à un GameObject vide, également appelé entrées Desmos. Pourquoi pas ? Et puis zéros centroïdes 0000, juste pour mon plaisir cette fois. Et ouvrons le script d'entrée de la souris et voyons ce que nous pouvons voir. Donc, tout d'abord, passons par les différents boutons. Donc, nous avons entrée, point, obtenir le bouton de la souris vers le bas. C' est presque comme Unity. Écoute ce que je disais. Et au lieu d'ici, nous devons réellement spécifier le bouton par entier. Alors voyons ce que c'est. Donc déboguer le journal des points et disons juste Watson 0, juste pour l'enfer. Et puis ajoutons un et trois, pourquoi pas ? Et voyez lesquels ils sont. Donc, les boutons 1, 2 et 3. Et essayons vite ça. Donc, le script est attaché à l'objet GameObject. Alors voyons juste. Donc, si je fais un clic gauche est 0, donc le clic gauche est d'environ 1000. Cliquez avec le bouton droit 1. Et le bouton du milieu de la souris a été aussi. Maintenant, en fait, je n'ai pas un autre bouton sur ma souris, donc, le bouton trois. Eh bien, il n'existe pas pour moi dans ce cas. Si vous avez une souris qui a plusieurs boutons, donc plus que, disons la gauche, la droite et le bouton du milieu de la souris, alors vous pouvez effectivement y accéder aussi en augmentant simplement l'index donné année. Maintenant, cela, vous devrez probablement essayer ceci. Et je ne sais pas à quel point c'est fiable lorsque vous passez de la souris à la souris. Donc, soyez prudent si vous empruntez cette route. Mais ouais, ouais, et ensuite nous devrons regarder quelque chose. Alors maintenant, nous allons prendre la position de la souris, ce qui est très intéressant. Donc déboguer la position de la souris point d'entrée du journal. Et c'est très intéressant. Cependant, la position de la souris peut être particulièrement au début, un peu déroutante. Donc, voyons juste la position de la souris en action. Donc, nous allons voir la position de la souris chaque fois que je clique essentiellement sur le bouton gauche de la souris. Donc, nous n'allons pas l'avoir constamment, la sortie dans la console. Mais chaque fois que je fais un clic gauche, nous aurons ceci. Donc si je vais au milieu de l'écran, nous avons la position la plus élevée de 9635. 71 et dis, ok, allons tout en haut de l'écran. Et là, nous avons 0 et puis comme 1000 et quelque chose. Alors allons en bas à gauche de l'écran. Essayez d'aller aussi loin que nous le pouvons, et ensuite nous avons 0.514. Donc, l'idée ici est que le bas à gauche de l'écran est essentiellement 00 et le haut à droite de l'écran, si je peux réussir à le frapper, je ouais, fondamentalement frappé. Il s'agit essentiellement de la résolution. Donc, 000. Et puis ici est fondamentalement la résolution, dans notre cas, Full HD. Donc 1920 par 10 ADP. Et c'est l'entrée normale de la souris, donc l'autre position de la souris plutôt. Et nous pouvons cependant changer cela. Donc le problème étant, eh bien, je veux dire, peut-être que je veux les coordonnées réelles du monde. Donc si je clique ici, je veux 000 parce que c'était 000. Alors, comment puis-je obtenir ça ? Et c'est un peu pendant que je ne dirais pas nécessairement seulement déroutant, ça peut être un peu bizarre. Donc, c'est quelque chose que je dois aussi parfois chercher parce qu'il existe différentes façons de projeter la position de la souris sur quelque chose. Et ce que nous allons utiliser, c'est que nous allons utiliser la caméra pour ça. Et nous n'avons pas encore parlé de la caméra. Cependant. Et c'est une méthode très simple que nous pouvons utiliser. Donc on peut utiliser le script de la caméra. Donc point de caméra, cela obtient simplement le personnage principal de cette scène particulière. Et puis nous allons utiliser l'écran point à point mondial. Et cela retournera un vecteur de trois, comme vous pouvez le voir et nécessite une position. Donc, cette position est que, bien sûr, dans ce cas, la position de la souris point d'entrée. Et cela transformera, comme vous pouvez le voir, un espace vert ponctuel en espace du monde. Où est défini l'espace en tant que système de coordonnées en haut de votre hiérarchie de jeu. Donc, la position de l'écran est exactement ce qui est donné ici en pixels. Donc laissez en bas à gauche 000, résolution de l'écran en haut à droite. Donc la largeur fois la hauteur. Et cela transforme ensuite fondamentalement ceux-ci dans l'espace du monde. Alors voyons ce qu'on peut voir là-bas. Encore une fois, nous obtiendrons cela lorsque j'ai cliqué gauche. Alors revenons à la 00. C' est négatif parce que j'étais hors de l'écran. Donc, cela fonctionne aussi. Essayons de rester à l'intérieur de l'écran. Ouais, c'est bon. Donc, comme vous pouvez le voir, quelque part sur 000 , nous sommes à moins huit , moins, disons moins neuf, moins cinq et moins 10. Maintenant, ça devrait vraiment fonctionner. Parce qu'une fois de plus, en sorte d'années, donc le milieu nous sommes à 000 000 000. J' ai presque atteint le milieu exact. C' est, c'est plutôt bien en fait. Donc, nous nous souvenons que la caméra est à la position 0, 0 moins 10. C' est d'où vient ce moins 10, parce que nous sommes fondamentalement dans l'avion où se trouve les caméras. Donc, si je devais ajuster ceci à moins 5 et cliquer à nouveau, alors tout d'un coup nous serions à moins 5. La position Z correspond simplement à la position z de la caméra. Donc c'est un peu important à savoir juste pour votre information. Maintenant, c'est l'écran au monde point à point exactement. Il y a aussi une autre chose. Cela pourrait être assez utile. Ceci est également accessible via un point de caméra, et c'est l'écran pour le point de clôture. C' est la souris input.txt, la position de la souris, bien sûr. Et celui-ci, si nous regardons ceci, va être le suivant. Si nous avons recommencé, alors la fenêtre, si nous essayons d'aller 000, nous ne sommes pas tout à fait à 000. Essayons d'obtenir cette jambe correctement. En fait, éclaircissons ça. C'est la fenêtre d'affichage. Donc, c'est 000 000 000. La position réelle était 0529, puis la position mondiale quelque part dans moins 9 à nouveau. Donc, nous avons vu cela déjà sage, les zéros 0000. Eh bien, ici, si je peux l'amener au sommet, c'est 11. Donc, c'est fondamentalement, comme vous pouvez le voir, une sorte de au milieu est 55 comme 0.5.5. Donc, la fenêtre est 00 en bas et 11 en haut. Peut aussi être utile pour certaines choses, mais ce sont en quelque sorte les principaux changements. Je vais également ajouter rapidement les commentaires que j'ai ici. J' ai donc déjà préparé quelques commentaires pour chacun d'entre eux afin que nous puissions réellement y penser un peu plus. Je l'ai déjà expliqué. Comme je l'ai dit, la plupart des vasopresseurs peuvent être un peu confus parce que nous devons traduire ceci de spécifique, vous savez, de l'espace de l'écran à l'espace du monde et ainsi de suite. Et il y en a aussi plusieurs autres. Comme vous pouvez le voir si je vais ici. Donc, l'écran, nous avons aussi uracil et nous pouvons aller voir les ports à l'écran et ainsi de suite et ainsi de suite. Pour qu'on puisse le changer. Nous le voulions. C' est pour ça que j'ai dit que parfois je dois encore regarder ça parce qu'à la fin de la journée, oui, c'est juste parfois comme ça. Cependant, la position normale de la souris en bas à gauche, 00 en haut à droite, temps de largeur adsorbés avec la hauteur est le vecteur. Pour la vision du monde filtrée représente les coordonnées au lieu du monde. Donc, si on clique au milieu de la carte, on n'a pas de carte en ce moment et on peut juste tester ça. Pourquoi pas ? Donc, en fait, allons juste tirer une carte ici. Pourquoi pas ? Ensuite, nous pouvons effectivement cliquer dessus. Donc, mettons ceci à, par exemple, 0, trois et essayez de cliquer au milieu de celui-ci. Et puis on devrait être capable de voir, essayons-le et entrons vraiment au milieu de ça. Est-ce qu'ils vont 003, que, comme vous pouvez le voir, puis négatif 10, et c'est ce que je mentionnais avant. Ainsi, la position z de la coordonnée correspond à la position z de la caméra utilisée. Dans notre cas, nous utilisons la caméra principale de cette scène. Par conséquent, la position Z est négative 10. Et la clôture, comme je l'ai dit aussi, 00 en bas à gauche et un sur un en haut à droite. Donc, ce sont quelques-unes des entrées de la souris. Et lire la position de la souris peut être vraiment utile pour certaines choses. Maintenant, pour cliquer, disons un des objets de jeu différents, nous pouvons réellement utiliser une, une méthode plus facile. On n'a pas besoin d'utiliser ça. Et c'est quelque chose que nous allons voir plus tard aussi. Donc, nous n'avons pas besoin de vérifier fondamentalement toujours la position de la souris à l'intérieur de ce nœud. La position de la souris peut être utilisée pour avoir un objet de jeu spécifique suivre la souris. Maintenant, c'est en fait quelque chose que vous devriez probablement déjà être capable de faire. Donc c'est quelque chose que vous pourriez vouloir comprendre. Et oui, mais c'était tout pour la conférence sur les entrées de souris ici. J' espère que vous l'avez trouvé utile. S' il y a des questions comme toujours, hésitez pas à poser et je serai sûr de répondre. Et oui. 56. (Les bases de l'unité) La caméra (Main): D' accord, continuons avec l'introduction de base de l'unité ici pour le cours de l'unité. Et dans cette conférence, nous allons jeter un coup d'œil à la caméra principale. Donc, nous avons déjà vu dans la dernière conférence dans les entrées de la souris essentiellement loin avec, dans lequel nous pouvons prendre la position de la souris et sorte de converti en différents types de points. Donc nous avons vu les points du monde. Donc écran pour grandir les points et écran pour afficher les PowerPoints. Et cela dépendait de la caméra. Donc, ce sont une ou deux choses. Par exemple, l'appareil photo peut faire. Il y en a aussi quelques autres. Je peux juste vous montrer rapidement qu'on ne va pas créer un nouveau script pour cela. Nous allons juste regarder dans le genre de script d'entrée de la souris. Donc camera.capture a fondamentalement quelques choses différentes que nous pouvons utiliser. Et en fait un bon nombre, comme vous pouvez le voir très clairement, il y a beaucoup de choses, vous savez, le pixel large, orthographique, qu'est-ce que ça veut dire, tout cela signifie que nous pouvons réinitialiser l'appareil photo. Il y a donc un tas de méthodes que nous pouvons appeler aussi. Mais la plupart de cela ne le fait généralement pas, n'est pas fait par script. Nous faisons les changements à l'intérieur de notre scène ici. Donc ici, nous pouvons réellement utiliser toutes ces choses que nous venons de voir dans le script. Donc il y a quelques choses que nous pouvons faire. Il y a donc des drapeaux clairs. Nous avons seulement de la profondeur, ne pas effacer et Skybox. Et si nous survolons, comme vous pouvez le voir clairement, il y a en fait une explication vraiment bien pensée pour beaucoup de ces choses. Donc ce que je vais juste rapidement aller à travers ces choses. Donc, dans l'ensemble, la couleur, je veux dire, ça devrait être des couleurs explicites, juste la couleur de fond que nous avons. Masque d'abattage est fondamentalement comme vous pouvez le voir, quelles couches de la caméra rend. Donc, il y a différentes couches que quelque chose peut avoir ici. Et si vous voulez quelque chose ignoré, donc par exemple, si nous allons à l'as de pique, c'est la couche par défaut ici. Et si nous arrêtons de rendre la couche par défaut, alors comme vous pouvez le voir dans la caméra principale et aussi dans le jeu, il n'est plus là. C' est donc, par exemple, quelque chose que vous pourriez activer et désactiver. La projection est très intéressante. Donc, si nous regardons ici, donc orthographique signifie simplement que si je passe rapidement dans la vue de la scène à l'espace tridimensionnel, et que je zoom arrière un peu. Donc, avec le bouton droit de la souris, je peux en quelque sorte déplacer l'appareil photo avec le bouton central de la souris, je peux le déplacer. Donc, vous pouvez voir ce genre de boîte qui s'étend à fondamentalement le plan infini ici. Et c'est la projection qui est faite. C' est donc une projection individuelle, pas de perspective. D' habitude, peut-être que vous avez entendu parler de ça. Le, Il y a une perspective. Donc, les choses qui sont Neera, vous attireriez plus grand que les choses qui sont plus loin. Cette perspective simple fondamentalement, maintenant l'orthographe a juste tout à la même taille. Juste pour le spectacle, je vais en fait rapidement dimensionner ceci, échelle, ceci jusqu'à 44. Donc on peut vraiment voir ça un peu mieux. Et puis la caméra principale, si on le regarde à nouveau, et je change ça en perspective, alors comme vous pouvez le voir, maintenant, ce cône de projection est en fait beaucoup plus comme une caméra normale, non ? Un peu comme ça. Et ce n'est pas vraiment perceptible dans ce cas. Cependant, l'objet réel ici ne change pas beaucoup parce que tout d'abord, c'est un sprite 2D plat. Et aussi, nous n'avions pas vraiment besoin d'utiliser ces projections. La projection de la perspective est fondamentalement nécessaire si vous voulez un jeu en trois dimensions. C' est la façon la plus simple de penser à cela. Il y a aussi un champ de vision dans ce cas, nous sommes, comme vous pouvez le voir, nous pouvons faire la projection plus loin ou plus grande à part. Donc, il y a en fait un f de curseur v ici. Et il y a d'autres choses qu'on peut faire de ça une caméra physique. Je dois être honnête, je n'ai jamais joué autant avec ça. Et l'écrêtage des plans signifie simplement que où est la distance lorsque les caméras arrêtent le rendu ? Mettons donc la taille orthographique. Sommes-nous en fait également mis dans la taille. Donc, la taille signifie simplement la taille de la prédiction comme vous pouvez le voir. Donc, faire le plus petit rend simplement une plus petite zone dedans. Les plans d'écrêtage signifient simplement, ok, quand ça arrête le rendu ? Donc si je mets ça au négatif 9, alors c'est vraiment, très proche de la caméra. Ça ne change pas parce que la projection orthographique est juste, oh ouais, c'est juste une surface 2D. Si je devais mettre en perspective et bien sûr maintenant le, il est parti. Et si je déplace la caméra un peu et est énorme comme vous pouvez le voir. Donc, c'est en fait un très bon moyen de montrer la distance n'a pas d'importance pour l'échelle de l'objet. Seule l'échelle au lieu d'ici compte vraiment. Et le plan d'écrêtage signifie simplement qu'au fur et à mesure que cela se rapproche de la caméra, moment nous sommes à 0,4 de la caméra, toujours là. Mais si je vais au point moins 9, 7, alors nous sommes à 0,3 km. Donc, c'est juste à l'aube. Où est-ce qu'on le voit encore ? Et puis à 98, alors maintenant c'est le seul à 0,2 de l'appareil photo, puis il arrête de rendre parce qu'il est trop proche de l'appareil photo. C' est essentiellement ce que cet avion de coupe ici, mon contrôle. Donc si je mets ça à 1,1, alors tout d'un coup, comme vous pouvez le voir, la carte apparaît à nouveau. C' est donc les plans d'écrêtage. Faisons en fait ça, on peut cliquer sur cette touche de verrouillage et puis quoi que je clique, l'inspecteur reste là où il est. Donc c'est vraiment un peu utile. La clôture est, comme vous pouvez le voir, l'indication où l'écran et la vue de la caméra seront dessinés. Je suis généralement aussi quelque chose que je n'ai pas vraiment besoin de tout ça. Mettons en fait le cœur en arrière. Où est la caméra ou le négatif dix ? Et puis celui-ci est, oh désolé, je suis, bien sûr que c'est, ça a du sens. Parce que cela a, continue d'être l'appareil photo bien sûr 0, et puis celui-ci est à 10 négatif. Alors, voilà. Ok, maintenant on peut revoir l'as de pique. Et si on change cette amine, on peut juste changer ça. Comme vous pouvez le voir, l'écran obtient simplement, je veux dire, Négatif ne serait pas la meilleure idée. Donc, l'écran, comme vous pouvez le voir, devient simplement plus petit et il est en fait décalé. Et puis celui-ci, nous, je veux dire, vous pouvez le rendre plus grand mais ne marche pas. Et puis vous pouvez aussi le rendre plus petit ici. Et puis sur la direction y. Et la même chose arrive aussi. Comme je l'ai dit, habituellement n'utilisez pas vraiment la Viewport Rect o autant. Même chose avec presque toutes les autres choses. Surtout parce que généralement ils ne sont pas vraiment nécessaires pour les jeux en deux dimensions. Il y en a, quelque chose dit à propos de la profondeur peut être. Cependant, dans l'ensemble, je dirais que c'est un bon bref aperçu, n'est-ce pas ? Donc c'est juste un petit coup d'oeil à ça. Avec moi. Fondamentalement, les principales choses dont nous avons besoin pour le développement de jeu en deux dimensions dans ce cas, non ? Mais aussi la plupart des choses dans la caméra n'ont vraiment pas besoin d'être changées. La seule chose qui pourrait vouloir être change la taille des caméras. Donc, combien il montre réellement, peut-être aussi les plans d'écrêtage, bien qu'un 0.310104, il est généralement suffisant. Alors c'était tout pour cette conférence. Juste un petit aperçu rapide pour l'appareil photo. S' il y a des questions comme, toujours, n'hésitez pas à poser et je serai sûr de répondre. Et oui. 57. (Les bases de l'unité) GetComponent Unity Basics: D' accord, continuons avec l'introduction de base de l'unité ici pour le cours de l'unité. Et dans cette conférence, nous allons jeter un oeil à la méthode du composant Get, qui est une méthode centrale essentiellement utilisée pour obtenir les composants de GameObjects. Donc le seul exemple de cela que nous avons vu plus ou moins était la transformation. Mais nous avons accès à ce composant de transformation en utilisant simplement dot transform et en y accédant via un propriétaire de propriété particulier, l'objet de jeu. Cependant, il y a d'autres composants ici. Par exemple, le moteur de rendu sprite, comme nous le verrons ici, qui a été capable de montrer essentiellement une image. Nous avions des scripts particuliers. Ceux-ci seraient également comptés comme des composants, ou par exemple, que nous avons également vu le composant caméra. Et nous pouvons accéder à ceux d'autres GameObjects dans nos scripts. En attendant, j'ai tout mis à l'intérieur de petits dossiers soignés ici. Nous allons donc créer un nouveau dossier. Ce sera L 14 composant get. Maintenant je 13 manque parce que dans la dernière conférence bien sûr, nous avons simplement regardé la caméra principale. y avait aucun script associé à celui-ci. Et nous voulons aussi une nouvelle scène. Donc, faisons juste un nouveau senior aussi. L 14 obtient le composant. Et à l'intérieur des scripts, ouvrons tout d'abord la scène. Et puis au lieu des scripts, nous allons créer deux scripts cette fois. L' un va être l'exemple de script que vous allez et vous pouvez déjà ouvrir cela. Et puis nous allons aussi créer un autre script. Et c'est le script get components où plutôt c'est ce que nous appelons. Très bien, donc à l'intérieur de notre exemple de script, nous allons tout d'abord supprimer la méthode de mise à jour. On n'a pas besoin de ça. Et puis nous allons simplement déclarer quelques belles variables. Alors que diriez-vous d'un, une valeur de test entière d'un 100 ? Et puis un flotteur public, qui est une autre valeur. Ce qui est quelque chose que quelqu'un comme, je ne sais pas, comme les chemises 42.1337, f bien sûr. Et puis faisons aussi une caméra publique. La caméra en tant que variable, qui dans ce cas, il n'est pas initialiser et nous allons initialiser cela à l'intérieur de la méthode de démarrage en faisant Camera Main. Donc, cela va simplement enregistrer l'appareil photo principal ici. Et comme il est très clair, tout ici est public. Sinon, il n'est pas accessible via un autre script. Parce que dans ce cas, ou plutôt, oui, ce n'est pas accessible à partir d'un autre script parce que cela simplement. On va récupérer la classe, mais on le verra bientôt. Pensons aussi à l'intérieur de nos composants d'obtention. Faisons en fait un objet de jeu privé ici. Donc ça va être la carte. Nous allons ajouter une carte sous peu. Et oui, ajoutons la carte tout d'abord, et ajoutons quelques choses à cela. Donc encore une fois, on peut juste prendre l'as du cœur ici, le mettre, positionner ici, rendre un peu plus grand pour que nous puissions réellement le voir. Et puis ici, nous allons prendre l'exemple de script et le mettre sur l'as de cœur lui-même. Alors sur la carte. Je vais aussi renommer ça en tribunal parce que c'est plus facile. Et nous sommes aussi si ce que nous pourrions faire, bien sûr, nous pourrions prendre la caméra principale et le mettre en Europe ou déjà montré que vous pouvez fondamentalement le mettre dans le, dans l'inspecteur lui-même et le mettre comme ça. Cependant, dans le script, nous avons bien sûr défini la caméra d'une manière qui utilise la méthode start. Donc, c'est aussi très bien. Et puis faisons un, un objet GameObject vide ici. Il s'agit de l'objet de jeu de composants d'obtention. Bien sûr, une fois de plus le centrer juste pour que tout le monde soit heureux ici. Et puis obtenir les composants est le script que nous voulons sur celui-ci. Et maintenant, ce que nous voulons, c'est que nous voulons accéder à ces valeurs de test ici à partir de ce script. Donc ça pourrait être, tu pourrais penser à ça comme ça. Peut-être qu'il y a un script de santé que nous voulons changer ou il y a un manuscrit que nous voulons tracer, vous savez, ou quelque chose comme ça. Nous voulons simplement cela, ces valeurs. Nous voulons les changer. Et nous voulons aussi peut-être même changer la position de la carte ou quelque chose de similaire comme ça. Maintenant, comment on fait ça ? Eh bien, tout d'abord, nous avons le cordon GameObject ici. Et faisons ça comme un champ sérialisé, juste pour que nous puissions voir ce qui se passe ici. Au lieu de la méthode start, nous allons utiliser la méthode Find point objectif de jeu, qui nous permet, que nous avons déjà vu, ce qui nous permet de trouver simplement un homme qui est un objet particulier à l'intérieur de la scène avec le nom, dans ce cas, la carte. Oh, encore une fois, il est important que le nom soit correctement écrit. Et maintenant ce que nous pouvons faire, nous avons trouvé ce cours parce que c'est bien sûr, juste pour clarification, cet objet de jeu que nous allons trouver, ceci a un exemple de script attaché à lui en tant que, en tant que composant. Donc, nous pouvons faire maintenant est que nous pouvons fondamentalement, et nous n'avons pas nécessairement besoin de cela, mais vous pouvez dire exemple de script. s'agit donc simplement d'une nouvelle instance de l'exemple de script. Donc, cela fonctionne totalement bien parce que c'est une classe normale que nous pouvons avoir une variable normale off. Et nous pouvons fondamentalement initialiser et le définir. Donc, nous pouvons assigner ceci aux voitures dot get composant. Comme vous pouvez le voir, ceci est déjà mis en évidence ici. Donc, nous pouvons dire get component et ensuite c'est là que certaines personnes sont un peu confuses. Nous avons ce composant Get avec les crochets d'angle fondamentalement. Et ceux, bien sûr, signifient un générique A. Et les gens sont comme, je ne sais pas vraiment ce que j'ai mis ici. Eh bien, vous mettez ici exactement ce que vous voulez. Donc, à partir des composants, donc si je veux le composant de script exemple, je mets dans un script d'exemple et puis bien sûr besoin de changer, terminez ceci avec les parenthèses ici pour signifier qu'il s'agit d'un appel de méthode. Et cela reviendra alors. Si le, cet objet de jeu a réellement le composant que nous avons spécifié ici, alors il retournera cela et simplement l'enregistrer à l'intérieur de notre variable. Maintenant, si je regarde en arrière, encore une fois, nous pouvons voir que bien sûr, l'exemple de script est certainement un composant de cette carte. Cependant, il y a aussi le rendu sprite et c'est aussi, par exemple, le transport. Mais il y a beaucoup d'autres choses qui ne sont pas des composants de cela. Par exemple, on pourrait dire, eh bien, je veux dire, que je veux la santé maintenant. La seule raison pour laquelle cela ne fonctionne pas est à cause de cela. Donc, si j'avais une variable de santé ici et que j'ai dit, Eh bien, donnez-moi la composante de la santé. On pourrait faire ça. Cependant, bien sûr, cela ne va pas fonctionner car il n'y a pas de santé de composant sur ce site, sur cet objet de jeu particulier. Donc c'est comme ça que nous pouvons dire, accord, donnez-moi ce composant, me donne ce composant, me donner ce composant. Et c'est un outil très utile. Et l'une des plus grandes choses que nous mangeons ont essentiellement à faire pour obtenir des composants spécifiques des objets de jeu. Et une chose qui est très important de mentionner est que le, ce charbon Get Component est très, peut être très, très intensif en termes d'utilisation de CPU et de temps comme. Donc, c'est un, c'est un charbon coûteux. C' est pourquoi vous devriez toujours, toujours, utiliser celui-ci dans la méthode du magasin et mettre en cache ceci. Fondamentalement comme ceci, et ne pas continuer à appeler le composant get, ce composant, cone get composant sur le même composant. Mais vous devriez toujours mettre ceci en cache comme ceci. Et disons juste déboguer la valeur de test .bam log. Comme vous pouvez le voir maintenant, je peux y accéder parce que cet exemple est simplement une variable connue de type exemple de script. Et c'est une classe normale. Nous pouvons considérer cela comme une classe tout à fait normale. Et puis on peut copier ça. Je peux aussi dire une autre valeur. Et puis, par exemple, la caméra. La caméra, quand la caméra, oui, voilà. Donc, cela fonctionne très bien. Et si on commence ça, celui qu'on va voir est un 142 et nul. Et maintenant la question vient, Attends, pourquoi c'est nul ? Parce que la caméra est installée ici ? Eh bien, la raison pour laquelle ce n'est pas, c'est à cause de l'ordre d'exécution du script. Et c'est quelque chose que nous allons jeter un coup d'oeil lorsque nous examinerons certains paramètres. Mais en général, l'ordre d'exécution du script est bien sûr, parce que nous avons deux scripts dans l'année 1, l' un de ces scripts doit s'exécuter avant l'autre, non ? Donc parce que nous ne pouvons pas vraiment les exécuter en parallèle, surtout penser à ça comme ça. Nous avons un 120 scripts. Je veux dire, nous ne pouvons pas les exécuter en parallèle aux scripts serait possible en théorie, mais ce n'est pas toujours le cas. Il y a donc quelques choses que nous pouvons faire pour nous assurer que les variables ont été définies. Nous pouvons, au lieu d'utiliser la méthode str, nous pouvons utiliser la méthode wait, car la méthode wait est toujours appelée avant la méthode start. Et cela garantit simplement que la variable de l'appareil photo a été réglée. Essayons donc ceci et voyons si cela est toujours nul ou si nous avons réellement le nœud maître. Maintenant, la caméra principale est réglée et tout le monde est heureux. Donc c'est plutôt cool. Et à l'avenir, ce que vous pouvez aussi penser est, eh bien, en fait, ce que je veux, c'est que je veux, je veux changer la position de ce chariot. Eh bien, on peut le faire. On peut dire transport. Donc, nous sauvegardons la transformation et disons carte Transformer, Transformer. Et puis au lieu de simplement pour que nous puissions le faire de deux façons. On pourrait dire la transformation des points de carte. Donc on peut le faire comme ça. En arrière-plan. Cette transformation ne fait rien d'autre. Ensuite, appelez la méthode get component avec transform. Donc, c'est fondamentalement interchangeable. Quand on fera ça. Voilà, tu y vas. Donc c'est interchangeable, exactement la même chose. Et ça fait exactement la même chose. Oui, c'est exactement le même résultat en gros. Donc, ce que nous pouvons faire est, par exemple, dire les accords transformer la position de point, juste sortir la position. Et puis entre les deux, changeons la position en , disons un nouveau vecteur 3, qui est quelque chose comme, je ne sais pas, comme un, F à F et F. Oui. droite. Donc, nous allons juste changer la position de cette transformation de base que nous avons obtenu avec le composant Get également. Alors faisons-le comme ça. Donc aussi possible, même que le composant get. Le composant est et voyons si cela fonctionne. Si le tribunal change réellement sa position. Et comme vous pouvez le voir, la carte a changé sa position, 2, 1, 2. Et si nous regardons la sortie, vous pouvez également voir que d'abord la position était 03, puis la position était 12. La méthode de composant est donc une partie centrale de cette conception basée sur des composants que Unity a inhérente à elle-même. Et il est simplement possible de, avec cette méthode, obtenir fondamentalement tous les composants d'un objet de jeu particulier, accéder à ses variables, et aussi, bien les changer si nécessaire. Oui, c'est en fait un moyen assez facile d' accéder à différents composants à partir de différents scripts. Globalement. Comme je l'ai dit, c'est définitivement un composant de base et tous les autres composants que nous apprenons peuvent être accessibles essentiellement comme ça. Et ce qui est génial, c'est que c'est ce que nous avons déjà vu avec la caméra, par exemple. Toutes les choses que nous voyons. Donc, toutes les choses particulières que nous pourrions être en mesure de changer ici, la taille ou pour la carte, l' exemple de script, la valeur de test à une autre valeur que la caméra. Ceux-ci peuvent également tous être modifiés par exactement un autre script après que nous avons obtenu le composant à partir de là. Donc, obtenez un composant, incroyablement utile, outil incroyablement important pour nous dans notre boîte à outils pour travailler essentiellement avec Unity, non ? Mais c'était tout pour cette conférence. Comme toujours, j'espère que vous l'avez trouvé utile. C' était en fait un sujet assez important à ce stade encore une fois. Mais dans l'ensemble, je pense que ça s'est très bien passé. Et cependant, comme toujours, s'il y a des questions, hésitez pas à poser et je serai sûr de répondre. Et oui. 58. (Les bases de l'unité) Prefabs et Prefabs de nouveaux objets de (Unity: D' accord, continuons avec l'introduction de base de l'unité ici pour le cours de l'unité. Et dans cette conférence, nous allons jeter un oeil aux préfabs et comment les instancier. Alors tout d'abord, que sont les préfabriqués ? Nous allons préfabriqués sont fondamentalement GameObjects qui sont donc un pour la réplication, pour ainsi dire. Donc, il y a une sorte de modèle, pour ainsi dire, à partir duquel nous pouvons créer de nouveaux objets qui sont très semblables à ceux-ci. Et créons juste une nouvelle scène. Tout d'abord, une fois de plus, ainsi vu 15 appelés préfabs. Et puis commençons aussi immédiatement. Un nouveau dossier ici, L 15 préfabs. Et nous n'avons besoin qu'd'un seul script. Et nous appellerons ça le générateur de clics. Parce que ce qu'on va faire, c'est avec ça. Une fois que nous avons cliqué sur le bouton de la souris, nous allons cygner dans une nouvelle carte. Donc ça va être très intéressant. Disons que nous avons les clics Warner ici. Cliquez sur générateur. Encore une fois à la position 0, 0, 0. Bien sûr. Assurez-vous également que les composants sont là. Et puis créons une nouvelle carte ici. Et nous mettrons ça à 000 000 000 aussi. Et nous ne ferons que deux fois plus que la taille. En fait, gardons ça à 11 ans, un avec la taille. Et puis on peut penser à faire quelque chose avec ça plus tard. Et ce que nous pouvons faire maintenant, c'est que nous pouvons dire fondamentalement, bien carte, donc c'est maintenant un objet de carte. Et comment faire un préfabriqué à partir de ça ? Eh bien, le moyen le plus simple est simplement de prendre cet objet correctement ? Une fois que nous avons fondamentalement tout défini, comment ça devrait être. C' est donc le positionnement par défaut d'une carte. Alors nous disons, d'accord, traînons ça ici jusqu'aux préfabs. Et maintenant, comme vous pouvez le voir, cela devient bleu. Et maintenant, ici, nous avons un atout préfabriqué. Donc, l'idée étant que maintenant nous avons ce genre de modèle et toutes les différentes valeurs que nous avons définies ici ou à l'intérieur de ce préfabriqué. Maintenant, nous pouvons également ouvrir ce préfabriqué et le voir à la place de ce genre de modèle filtré, sorte de l'écran préfabriqué et peut le changer ici. Donc nous pouvons changer quelques choses comme retourner la photo, retourner l'image ou nous pouvons la déplacer. Ou nous pourrions aussi ajouter des composants. Par exemple, maintenant on ne va pas faire ça. Pour revenir en arrière, nous pouvons simplement appuyer sur la flèche Retour. Et dans ce cas particulier de ce préfabriqué, ils sont connectés. Et vous pouvez le voir par le bleu. Soulignez ici et il y a des choses qui sont marquées comme si elles étaient audacieuses. Et l'idée est qu'une fois que nous changeons quelque chose, nous pouvons, par exemple, dire en ceci, comme vous pouvez le voir écraser à la carte dans la scène, ce que cela signifie est que vous changez fondamentalement, vous pouvez changer quelque chose ici. Donc je ne connais pas la rotation. Je veux dire que cette rotation n'a pas de sens. Donc, cette rotation, par exemple. Et avec une touche de sélection, nous pouvons immédiatement sélectionner le préfabriqué à l'intérieur de nos projets. Nous pouvons aussi l'ouvrir immédiatement. Et pour l'instant, ce que cela fait, c'est qu'il remplace la carte. Qu' est-ce que ça veut dire ? Eh bien, si on regarde celui-là, rien n'a changé. Cela écrase fondamentalement. Ça dit, Ok, on prend ces valeurs au lieu de ces valeurs ici. Il y a quelques choses que nous pouvons faire. Donc, avec un préfabriqué, comme vous pouvez le voir, nous pouvons déballer et l'emballer, il suffit de le détacher du préfabriqué. On peut sélectionner l'acide. Il y a quelques choses qu'on peut faire avec les préfabriqués. Et ce que la chose la plus importante est fondamentalement que nous pouvons, maintenant ici nous pouvons entrer dans, entrer à nouveau, comme vous pouvez le voir. Mais la chose la plus importante pour le préfabriqué que nous puissions faire est que nous puissions créer de nouveaux objets, tous ceux-là. Supprimons ça à l'intérieur de notre scène réelle. Et le préfabriqué ici, celui que nous allons créer de nouvelles cartes. Et nous allons le faire en changeant le script de spawner clicker ici. Et à l'intérieur, nous aurons un GameObject privé parce que nous créons toujours de nouveaux objets de jeu appelés le préfabriqué de la cour. Ce sera un champ sérialisé, très important pour que nous puissions réellement y accéder parce qu'il n'y a pas d'autre moyen d'accéder. Nous ne pouvons pas utiliser le point de GameObject trouvé dans ce cas parce que, eh bien, il n'y a pas de carte à la place de R. Et une sorte de voir ici. Donc, nous devons faire ça d'une autre façon. Et la façon dont nous allons le faire, c'est que nous allons régler cela manuellement. Donc, on va dire qu'on descend le plus le bouton 0. Espérons que vous vous souvenez que c'était le bouton gauche de la souris. Et ce que nous allons faire, c'est nous allons créer un nouvel objet de jeu ici. Donc nouvelle carte est égale à instancier. Et je vais dire carte préfabriquée avec cette transformation de points points. Et ce que cela fait, c'est que si nous survolons cela, nous devrions être en mesure de voir, comme vous pouvez le voir, cela prend une transformation en tant que parent. Donc, ce nouvel objet de jeu que nous allons créer avec l'appel de la méthode Instantiate va être immédiatement affecté le parent des clics Bonner. Et puis nous aussi, parce que nous avons la nouvelle variable de carte ici, nous pouvons changer quelques choses là immédiatement. Bientôt, nouvelle carte point transform.py mission. Et ce que nous allons faire, c'est que nous allons faire de cette position une position aléatoire. Donc nous allons dire plage de points aléatoires entre quelque part entre 10 négatifs, disons e1 plus 10. Et le y sera aussi quelque part entre un négatif 10 et 10. En fait, passons à sept parce que je ne sais pas où se trouvent les frontières. Mais nous le verrons bientôt aussi. Et oui, bien sûr, on peut aussi changer toutes sortes d'autres choses. Si la carte, maintenant, pensant à la dernière conférence avec le composant Get, bien sûr, nous pouvons également appeler get composant ici. Et s'il y a des composants particulièrement importants sur cet accord, nous pourrions bien sûr, aussi les définir. Donc, si cela aurait un script d'intégrité, par exemple, nous pourrions changer les choses sur le script d'intégrité comme vous pouvez le voir. Ainsi, par exemple, nous pourrions changer l'état de santé si c' était sur la carte, et ainsi de suite et ainsi de suite. C' est donc une sorte de moyen d'initialiser certaines valeurs de certains objets. Droit ? Maintenant, il est très important que ce préfabriqué de la cour, bien sûr, soit établi, et donc nous devons vraiment traîner cela ici. C' est la seule fois que nous devons vraiment traîner quelque chose là-dedans. Si nous utilisons des prefabs et que nous créons des objets à partir d'eux, alors cela doit être une sorte de chose plus ou moins manuelle. Et voyons si cela fonctionne. Donc, si je clique sur l'écran, alors une nouvelle carte apparaît. Et si nous regardons ce clone de carte d'un an, et nous pouvons voir qu'il apparaît réellement comme un enfant de ce spawner clic. Donc, certaines cartes, parce que sept est certainement un peu trop loin dehors. Donc, c'est probablement plus comme cinq est probablement le, donc cinq serait probablement mieux. Revenons aux clics Boehner et disons, accord est de 5 à 5 points négatifs. Cela a également du sens parce que la caméra principale, bien sûr, la taille est réglée à cinq. Donc, ça vérifie en fait beaucoup de déchets. Donc, nous allons juste cliquer autour de quelques fois. Et comme vous pouvez le voir, nous recevons maintenant un groupe de cartes, juste générées au hasard et il y a plus en plus de cartes et nous les générons comme des fous. Mais ça marche, ça marche très bien. Et c'est une façon dont nous pouvons essentiellement créer de nouveaux objets, les faire apparaître à l'intérieur de notre jeu. Et puis bien sûr, s'ils ont des scripts particuliers qui sont exécutés, alors ceux-ci peuvent fonctionner sans aucun problème, sans que nous ayons à faire quelque chose de particulièrement fou là-bas. Donc, oui, c'est essentiellement l'idée des préfabriqués. Ils sont incroyablement utile outil pour avoir un modèle à partir duquel nous pouvons ensuite créer de nouveaux objets de jeu. Donc, certains exemples de ceci peuvent inclure quelque chose comme un comme un message texte. Vous pourriez avoir des préfets comme ça. Vous pourriez avoir des préfabs pour les ennemis. C' est comme l'un des exemples classiques, non ? Avoir un préfabriqué ennemi, puis un géniteur ennemi, par exemple, et puis simplement les gâcher comme vous allez. Maintenant, une chose qui est à mentionner est que la méthode Instantiate est bien sûr, très intensive CPU ou très coûteuse à nouveau aussi. Donc, il y a quelque chose appelé un regroupement d'objets que vous pourriez faire. Donc, le début du jeu, vous pourriez créer comme un 1000 objets, les coller quelque part dans le monde du jeu où ils ne font rien et puis fondamentalement juste définir leur positionnement et peut-être activer quelques choses sur eux. Mais dans l'ensemble, c'est quelque chose qui ne l'est pas, nous ne allons pas nous inquiéter pour l'instant. Je voulais juste mentionner ceci, que la méthode Instantiate, comme nous l'avons vu la dernière fois avec la méthode du composant Get, ne devrait pas vraiment être follement utilisée. Donc, vous ne devriez pas créer comme un 100 mille nouveaux GameObjects comme chaque cadre ou quelque chose de fou comme ça. Donc, soyez très prudent, surtout si vous essayez d'utiliser des boucles à l'intérieur de la méthode de mise à jour. C' est quelque chose qui pourrait ne pas fonctionner comme vous le vouliez. Mais oui, c'était essentiellement pour créer de nouveaux objets de jeu avec des préfabriqués. Comme toujours, j'espère que vous l'avez trouvé utile. Et s'il y a des questions, hésitez pas à poser et je serai sûr de répondre. Et oui. 59. (Les bases de l'unité) Textures et sprites de l'unité): D' accord, continuons avec l'introduction de base de l'unité ici pour le cours de l'unité. Et dans cette conférence, nous allons jeter un oeil sur les sprites et surtout dans les spectres ici. Donc nous avons vu, nous avons également ajouté à l'as des coeurs comme un sprite. Et j'ai dit que nous allons examiner cela plus tard et c'est le moment. Donc, pour cela, j'ai réellement ouvert le L4 pour obtenir des scripts de composants afin que nous puissions voir le sprite réel à l'intérieur de la vue de la scène ici visuellement. Et si nous apportons des changements à cela, alors nous pouvons fondamentalement non. Ok, qu'est-ce qui se passe ? Pourquoi ça se passe et oui. Donc, tout d'abord, passons de haut en bas. Le type de texture de Sprite est celui que nous allons essentiellement utiliser exclusivement à l'intérieur de ce cours. Et comme vous pouvez le voir, la question ici est à quoi cette texture sera-t-elle utilisée ? Exactement, ça va être un sprite. Donc c'est celui que nous allons utiliser. Les autres ne nous intéressent vraiment pas pour le moment. Du moins pas pour ce cours. Puis le mode sprite. Donc, le mode sprite est très intéressant. Nous avons simple, multiple et polygone. Si simples et multiples autres qui sont intéressants pour nous. Single signifie simplement qu'il s'agit d'une texture unique. C' est un seul sprite. Cette seule chose et multiple, qui est quelque chose que nous allons regarder plus tard dans la ligne est où nous avons plusieurs images particulières dans un fichier afin que nous puissions fondamentalement mettre dans un fichier. Et puis nous pouvons séparer ceci via l'éditeur Sprite, que nous allons jeter un coup d'oeil dans la prochaine conférence beaucoup plus de détails, pixels par unité. Alors qu'est-ce que ça veut dire ? Eh bien, comme vous pouvez le voir, combien de pixels dans le sprite correspond à une unité dans le monde. C' est la raison pour laquelle nous devons plus ou moins mettre à l'échelle cet accord pour qu'il s'intègre vraiment. Parce que la carte est en fait, je crois que l'image est 64 par 64 pixels. Donc ce qu'on peut faire, c'est qu'on pourrait le mettre à 64. Et si je fais une demande, ce que vous verrez, c'est que la carte est maintenant beaucoup plus grande parce que maintenant c'est 64 pixels pour une unité d'espace. Donc, plus ce nombre est petit, plus l'image réelle est grande. Mais généralement, cela dépend de la taille de l'image. Habituellement, je pense que cela devrait être mis, regardons rapidement cette année afin que je puisse cliquer partout. Habituellement, ce nombre devrait être quelque part autour de la taille des images, surtout si c'est un carré, c'est le meilleur type de maillage, types de sprites génère beaucoup. Je dois être honnête, c'est quelque chose que je ne connais pas à 100%. Il y en a dans mon esprit en ce moment. Pas vraiment autant de différence là-bas. Extruder les bords, combien d'espace vide nous laisse juste autour, non ? Donc, c'est vraiment important. Vous voyez, dans un maillage généré en ce moment pour nous, pas si important. Le pivot, le pivot va simplement le changer en, par exemple, en haut à droite et l'appliquer. Et comme vous pouvez le voir, tout d'un coup ça descend. Parce que même si la carte elle-même, si nous déverrouillons cela à nouveau, le courant lui-même est toujours à la même position en ce moment. Le pivot de cette image particulière, le sprite n'est plus centré, peut être, peut être vraiment utile. Je le laisse généralement au centre et change l'objet du jeu lui-même. C' est mieux. Nous allons générer la physique, comme vous pouvez le voir, est simplement génère une forme physique par défaut afin que nous puissions avoir, cela peut être activé ou désactivé. Je veux dire, dépend si vous avez besoin de physique ou non. Voici quelques paramètres avancés ici. Et alpha, bien sûr, assure que si vous avez un PNG, que l'Alpha est ensuite pris en compte. On peut aussi regarder, on va verrouiller ça à nouveau. On y va. Et nous pouvons aussi ignorer la, certaines des choses. Ainsi, l'alpha peut être non transparent, par exemple. Et maintenant, ce n'est pas transparent et on peut juste dire, eh bien, peu importe. Donc, l'Alpha dans ce cas n'est pas transparent. Mais là où vous voulez que cela soit transparent. Et il y a d'autres choses que nous pouvons faire. Ignorer le fichier PNG Gamma, nous pouvons activer la lecture et l'écriture des données de pixel afin que nous puissions réellement changer avec cette image particulière. Et sprite pourrait être utile. Bien que ce soit quelque chose où vous devez être prudent parce que alors vous pouvez fondamentalement aussi vos sprites pour toujours. Et vous pouvez aussi en théorie, générer une carte d'état d'esprit ici, ce qui pourrait être quelque chose que vous voulez. Oui, le mode rap et le mode filtre. Donc, le mode est fondamentalement quand vous avez un, faisons-le. Si nous avons un, ajoutez ceci comme une texture, alors le mode de répétition rouge répète simplement cette image si nous la mettons quelque part. Donc, si nous devions le mettre sur une surface et que ce n'est pas assez grand, alors il se répéterait simplement. Plan ferait en sorte que ce sont ceux que je ne sais pas pourquoi il étend toujours ceux avancés que j'applique. Donc c'est une sorte de chose intéressante. Miroir par axe le laisse généralement à pince cette somme assez, c'est assez bon. Et puis le point qui est les choses intéressantes pour le mode filtre, parce que nous avons vu que le bi-linéaire est celui que nous avons commencé avec. Si je pose ma candidature, ce que nous allons voir, c'est que tout d'un coup ça devient très, très floue. Et la raison est que c'est de l'art pixel. Et bi-linéaire est fondamentalement plus ou moins, est lisse les bords. Et nous allons, dans ce cas, nous ne voulons pas que les bords soient lissés. Trilinéaire ne devrait pas nécessairement aggraver, mais fondamentalement le même point de terminaison signifie simplement qu'il n'y a pas de filtre sur le hashtag, pas de filtre. Et cela fera votre pixel art. Tu es belle. Voici quelques paramètres intéressants, essentiellement que vous pouvez utiliser pour gagner une fois que cela est publié. Donc, la taille maximale se réfère simplement à la taille maximale. Donc si je fais 32, par exemple, comme vous pouvez le voir, tout d'un coup, oh mon lambda ce n'est pas le cas, je ne peux même pas voir ce qui se passe. Si je le mets à 16 mille, il est pointu comme un croustillant. Mais je pense que même 1022 ou 128, même cela est plus que suffisant. 64 encore assez parce que c'est encore assez pour avoir tout là-dedans quelque chose comme oui, alors au milieu va probablement suffire. Nous avons également un algorithme de redimensionnement. Vous pouvez modifier le format de cela. Ceci est modifié et vous pouvez également modifier la compression. Ce sont essentiellement ces paramètres ici peuvent être modifiés. Par exemple, peut-être que si vous avez un jeu mobile, ce que vous voudriez est, eh bien, en fait, faisons une mauvaise qualité et faisons quelques bits de moins, par exemple. Donc tu peux changer, oh, faisons-le ça 32 bits. Ou on peut dire, eh bien, Alpha 8, c'est ça, et maintenant tout est parti. Ou simplement le garder à automatique. Cela fonctionne aussi. Il y a quelques choses que nous pouvons changer votre, parce que peut-être dans certains endroits où nous voulons publier ce jeu, nous voulons réellement la taille pour être moins. Donc, sur un PC, il n'y a aucune raison de ne pas avoir la plus grande taille pour les fichiers, parce que si un jeu est ou non de trois gigaoctets ou huit gigaoctets. Cela n'a pas d'importance pour le PC, généralement sur un téléphone. C' est une énorme différence, non ? Donc, la différence entre un jeu sur un téléphone qui a notre, disons comme 250 mégaoctets par rapport à comme quatre gigaoctets est énorme parce que tandis que les téléphones ont récemment augmenté en termes d'espace mémoire, encore quatre gigaoctets pour, disons qu'un jeu occasionnel est beaucoup trop. Donc, c'est fondamentalement quoi, c'est quatre. Donc, ce serait la valeur par défaut. Et puis ici, vous pouvez remplacer quelque chose pour particulier, pour BuildSettings fondamentalement particuliers. Mais encore une fois, c'est quelque chose qui est aussi un peu plus avancé. Je ne m'inquiéterais pas trop. Juste en vous assurant que si votre image est floue, si votre sueur est flou, il peut être soit la taille maximale que vous avez mise en place. La compression peut aussi avoir à voir avec elle. Et aussi le mode de filtre pourrait être la cause du problème, n'est-ce pas ? Mais c'était tout pour le rapide coup d'oeil à la texture ici à ce mode. La prochaine chose que nous allons jeter un oeil est l'éditeur Sprite de ceci comme fondamentalement une nouvelle fenêtre. Et avec cela, nous verrons aussi le mode sprite de multiple. J' espère que vous avez trouvé cette conférence utile comme toujours. S' il y a des questions, n'hésitez pas à poser et je serai sûr de répondre. Et oui. 60. (Les bases de l'unité) Éditeurs de Sprite: D' accord, continuons avec l'introduction de base de l'unité ici pour le cours de l'unité. Et dans cette conférence, nous allons jeter un oeil à l'éditeur Sprite. Et avec cela, nous allons aussi importer les cartes multiples essentiellement. Donc plusieurs sprites en même temps. Nous avons eu l'as du cœur ici comme une texture singulière ou sprite depuis longtemps maintenant. Et maintenant, nous allons jeter un oeil à la carte de tuiles elle-même. Alors, je vais juste copier ça ici. Donc on va juste le traîner là-dedans. Et comme vous pouvez le voir, il s'agit de cartes grande carte de tuiles. Actuellement, si je devais juste le placer ici, c'est un fichier avec plusieurs cartes, comme vous pouvez le voir. Et évidemment, ce n'est pas ce que nous voulons si nous devions importer quelque chose, nous voulons plus d'une carte parce que c'est maintenant un mode unique. Alors mettons cela en plusieurs modes, changez les pixels par unité à 64. Et espérons que tout d'abord appliquer cela, aussi rendre ce point très important, le mode de filtre afin qu'il semble bon. Et puis nous allons dans l'éditeur Sprite. Donc si on ouvre ça par éditeur, on peut voir si je viens de l'autre écran ici, qu'on peut faire des choses ici. Nous pouvons zoomer et zoomer avec le bouton de la souris. Cliquez avec le bouton droit de la souris, Ça nous fait bouger ça. Et si nous appuyons sur le clic gauche, alors nous avons le genre de sélection. Cependant, si nous avons arrêté la sélection, nous avons donc arrêté d'appuyer sur le bouton gauche de la souris. Et comme vous pouvez le voir, ça crée une sorte de sprite ici. Et nous pouvons aussi changer cela. On peut le rendre plus grand ou plus petit. Et cela représente essentiellement un sprite sur cette image particulière. Maintenant, il y a quelques choses qui sont vraiment sympa. Donc, ici, on peut regarder peu de choses. client comme, nous ne allons pas vraiment regarder ça. Donc, c'est un avoir un contour personnalisé. Nous voulons l'éditeur Sprite dans ce cas. Et le Sprite Editor peut épisser, ce qui est vraiment sympa. Donc nous pouvons soit faire automatique. Ce que ça fait. Si je dis tranche, comme vous pouvez le voir, il a créé ces différents spreads ici automatiquement. Donc c'est vraiment sympa, ça marche. Revenons. Donc on peut revenir et maintenant il n'y a plus de sprites présents. Nous pouvons également avoir différents types. Donc on peut dire par, par taille. Et nous pouvons, parce que nous savons que ces cartes sont 64 par 64, nous dirons, ok, les couper 64 par 64. Et comme vous pouvez le voir, si je ne bouge pas ça, chaque carte est maintenant aussi dans un sprite, mais c'est un peu plus grand. Il a un peu de place sur les côtés pour que nous puissions le faire. Ou si nous revenons une fois de plus, nous pouvons aussi le faire par comptage. Donc, si nous savons que, par exemple, c'est, ce serait 10, 11, 12, 13, 14. Donc nous savons qu'il y a 14 lignes et quatre colonnes. Et on peut trancher, c'est en fait la mauvaise façon de contourner, bien sûr, 144. Voilà, tu y vas. Maintenant, voyelle. Maintenant, ça marche. Et cela fonctionnerait aussi. Il y a donc plusieurs façons de le faire. Bien sûr, nous pouvons également changer le pivot. Il y a quelques choses que nous pouvons faire ici. Il y a du rembourrage, un peu de décalage. Cependant, je pense que la taille dans ce cas a le plus de sens ici. Et puis nous avons fondamentalement tous, si je descends ici ou 56 cartes dans ce cas, parce que nous avons aussi deux façons différentes de soit ceci est un, un chariot vide ou nous pouvons aussi avoir cela comme arrière-plan pour planer. C' est, je pense que nous étions l'arrière-plan. Donc oui, c'est plutôt cool. Donc, nous allons juste appliquer. Encore une fois, juste pour le mentionner, ce sont les cartes des ressources rénales. Et une fois que nous avons appliqué ceci, nous pouvons voir à l'intérieur de notre projet, eh bien, ce n'est qu'un pack de titre ici, mais nous voyons cette petite flèche. Et si nous élargissons cela, vous pouvez voir que chacun de ces individuels est un accord. Donc, si par exemple, nous voulons aussi enlever l'as du cœur, nous pourrions le faire en le faisant. Et si nous mesurons jusqu'à quatre fois quatre, alors comme vous pouvez le voir, c'est littéralement exactement la même taille. Parce que nous allons, au lieu d'être une carte singulière, maintenant elle fait partie de ce pack. Et ce qui est génial à ce sujet, c'est, et nous allons regarder cela dans la prochaine conférence avec un peu plus de détails, le rendu de sprite. Ce que nous pouvons maintenant faire, c'est que nous pouvons dire que je veux changer cela et que je veux changer le sprite bam, et ensuite la carte a changé. Et nous allons, comme je l'ai dit, nous allons regarder ça dans la prochaine conférence un peu plus en détail ce que le rendu du sprite a à offrir. Mais c'était fondamentalement tout pour un petit aperçu de l'éditeur Sprite. Maintenant, il y a encore quelques choses bien sûr que cela peut faire. Cependant, pour l'instant, ce sera certainement beaucoup plus que suffisant pour nous. Et cet outil incroyablement utile, parce que maintenant nous n'avons pas nécessairement besoin d'avoir chacun de nos sprites indépendamment ou dans des fichiers séparés, mais nous pouvons tous les avoir dans un seul fichier et les découper manuellement, par automatiquement, nous pouvons le faire par nombre ou même par une sorte de combien de lignes et combien de colonnes. Droit ? Alors c'était tout pour cette conférence. J' espère que vous l'avez trouvé utile comme toujours. S' il y a des questions, n'hésitez pas à poser et je serai sûr de répondre. Et oui. 61. (Les bases de l'unité) Le rendu Sprite Renderer: D' accord, continuons avec l'introduction de base de l'unité ici pour le cours de l'unité. Et dans cette conférence, nous allons jeter un coup d'oeil, le rendu de sprite. C' est donc un autre composant. Et pour cela, nous allons tout d'abord créer une nouvelle scène. Donc, c'est 18 sprite renderer. Et puis créez également un nouveau dossier ici. Laissez le rendu sprite. Et le script que nous allons créer à l'intérieur d'ici s' appellera le look du moteur de rendu sprite. Bien sûr, le nom ici est plus ou moins, choisit. Si vous voulez un nom différent, vous pouvez, bien sûr. Et on va prendre une nouvelle carte ici. Nous allons prendre une carte de cette carte, notre nouvelle carte de tuiles. Fondamentalement, une fois que vous pouvez le faire quatre par quatre, Mettons-le en fait au milieu de l'écran à ce stade. Et nous allons renommer ceci en carte parce que c'est comme un nom bien meilleur et ajouté le rendu sprite look à lui. Et oui, voyons ce qu'on peut voir dans ce truc particulier. Donc, tout d'abord, le rendu sprite est un composant simple. Donc, nous pouvons fondamentalement sauver sprite renderer privé et simplement appeler ceci le rendu sprite. Renderer Sprite. Voilà, tu y vas. Et nous pouvons l'obtenir en faisant dans la méthode start spread r1, r2 égal et puis ce point get composant. Ainsi, nous pouvons également obtenir des composants de l'objet GameObject que nous sommes actuellement dans. Donc, où ce script est attaché à. Et puis on arrivera au moteur de rendu de sprite. Comme je l'ai dit, c'est une idée très intelligente pour le faire. Et nous devrions en fait toujours faire ça. Maintenant, pensons à autre chose. Nous allons aussi avoir un réseau de sprites privé appelé sprites. Et nous allons faire de ce champ un 0 bien sûr, afin que nous puissions y accéder via l'inspecteur. Et si nous regardons cela maintenant, et nous pouvons voir que nous avons une liste. Tu vois, c'est vide. Mais ce qu'on peut faire, c'est prendre la carte des tuiles de sprite et la faire glisser ici. Maintenant, comme vous pouvez le voir, cela n'a pas fonctionné parce que nous supprimons cet élément de tableau. Ce qu'on doit faire, c'est qu'on en a deux. Heureusement, nous n'avons pas à tout prendre un par un. On peut chercher ça ici. Donc, en haut à droite de l'inspecteur, nous pouvons regarder ça. Ensuite, nous pouvons fondamentalement tout sélectionner. Donc, si nous sélectionnons l'une des choses, puis maintenez, déplacez et sélectionnez le haut et tout ce qui est entre les deux est sélectionné. Et si on déplace ça ici, et comme vous pouvez le voir, il se remplit maintenant de toutes nos cartes. Donc c'est vraiment sympa et vraiment utile. Et maintenant, tout d'un coup, ce que nous avons est que nous avons une liste de sprites auxquels nous pouvons accéder en tant que tableau. Que pouvons-nous faire avec ça ? Eh bien, ce que nous pourrions faire, par exemple, c'est que nous pouvons dire, eh bien , au début, je veux ce rendu de sprite et le sprite qui est à l'intérieur de celui-ci. Donc c'est le sprite qui, qui est affiché. Donc le rendu de sprite, je veux que ce soit un des sprites de chariot. Donc, par exemple, je pourrais dire, eh bien, je veux que ce soit. Les tribunaux, mais à l'index 4, ou je pourrais dire, eh bien, je veux en fait que ce soit une course aléatoire, random.randrange à partir de 0 parce que bien sûr, 0 est le premier indice jusqu'à la cour spreads longueur point. Donc, et puis si vous regardez cela, le max est exclusif. C' est pourquoi nous n'avons pas besoin de faire la longueur moins 1 parce que longueur n'est pas prise mais seule la longueur moins un est la plage. Donc le minimum est inclusif et le maximum est exclusif, juste pour que, vous savez, en ce moment, si nous commençons ça, nous devrions voir que cette carte change réellement son sprite OnStart. Voyons si cela fonctionne réellement. Et voilà. Maintenant, c'est les six clubs, je suppose. Et refaisons-le. Maintenant, c'est les cinq clubs. Je ne suis pas sûr, en fait. Trois de cœurs ils vont. Et puis une fois de plus, juste pour l'enfer de la dispute, je suppose que ce serait les sept diamants, non ? Et maintenant, c'est vraiment cool. On peut faire deux choses de plus. Donc ce qu'on va faire, c'est qu'on va prendre l'entrée ici et obtenir l'espace keydown, keycode dot. Alors, appuyez sur la barre de l'espace. Ce que nous allons faire est que le sprite point de rendu sprite est fondamentalement exactement ceci. Donc on peut copier ça. Encore une fois, ce serait maintenant, par exemple, quelque chose que nous mettrions dans une autre, eh bien, juste une méthode différente ici. Donc, ce serait le changement au sprite aléatoire. Nous n'avons pas forcément à le faire, surtout parce que ce n'est qu'un petit exemple. Mais parce que nous avons une citation deux fois, il y a un bon point de le faire. Parce que maintenant, si vous regardez ça maintenant, nous allons être comme, ok, que se passe-t-il si j'appuie sur la barre d'espace oh, changé en sprite aléatoire. Ok, ça a du sens. Et c'est beaucoup plus lisible que si j'avais ça ici. Parce qu'on doit vraiment diviser ça. On peut bien, au hasard, d'accord, donc la somme du hasard, ok, je, je prends un sprite aléatoire, mais celui-ci, j'ai juste lu le nom de la méthode et c'est comme, ok, c'est, ça a du sens. Donc, obtenez keydown, keycode dot retour. Donc, ce serait la clé de retour. Nous pouvons aussi changer un autre et nous pouvons, nous pouvons, nous ne devons pas nécessairement revenir. Allons-y, faisons-le. Faisons la touche C tranchant, C. Parce que ce que je veux faire ici, c'est que je veux que le rendu sprite, la couleur des points du rendu sprite change. Et cela peut être fait en utilisant la couleur de point aléatoire S, H, v. Cela renvoie simplement une couleur aléatoire à laquelle vous allez, ce qui est assez cool. Donc nous voyons que nous pouvons changer la couleur de celui-ci. Et avec de l'espace, nous pouvons le changer pour une carte différente. Et si je regarde à nouveau ce rendu de sprite, une fois de plus, toutes ces choses ici. Donc, tous ces champs sont essentiellement disponibles via le script. Malgré bien sûr, ainsi que la couleur ici. En retournant ces x et y, nous pouvons le faire aussi. Le mode Dessiner, l'interaction de masque, le pivot malgré le point de tri plutôt. Donc, la couche orange est quelque chose de très important. Donc si nous avons ce cardigan, alors copiez-le en appuyant sur Contrôle C, Contrôle V pour le coller. Maintenant, nous avons une nouvelle carte ici. Et la couche de commande détermine simplement où se trouve cet accord particulier. Donc, si on change ça juste pour des raisons d'argumentation ici. Donc quatre de cœurs, maintenant, as de cœurs est maintenant couche est 0. Celui-ci est à 34 ans plus tard. Par conséquent, il est plus haut, donc il est au-dessus. Et si je le réduit, alors comme vous pouvez le voir, cela change aussi. Donc, c'est quelque chose à considérer et aussi à garder à l'esprit. Très important. Mais assez dit, maintenant, essayons en fait cela ici et voyons si cela fonctionne. Donc nous avons notre carte ici. Et maintenant cela a choisi une carte aléatoire et je ne crois en, fait a choisi celui-ci. Nous pouvons essayer cela en appuyant sur la barre d'espace. Je pense que c'était un tirage au sort très chanceux. Je suppose. Alors. Oui, on peut choisir, on peut juste mettre la barre d'espace et comme vous pouvez le voir, il choisit une carte aléatoire là-dedans, ce qui est vraiment, vraiment cool. Et si j'appuie sur C, alors il change sa couleur au hasard aussi. Oh, c'était très noir. Et puis, comme vous pouvez le voir, vous y allez. Donc, change la couleur au hasard aussi. Et si j'appuie sur les deux en même temps que les deux changent ou je peux juste faire une fête rave. Allons-y. J' aime ça, c'est plutôt cool. C' est donc une chose très cool. Le rendu sprite, principalement, je pense que dans mon expérience, le sprite qui change définitivement un peu. C' est donc quelque chose qui est très important. L' idée de changer le sprite et de sauvegarder fondamentalement tous ces sprites à l'intérieur d'un au lieu d'un tableau. Cela a aussi beaucoup de sens. La raison pour laquelle j'ai choisi la zone ici est parce que, bien sûr, une fois que nous avons mis en place à la fois, nous n'avons pas vraiment besoin de la changer. Et le nombre de spreads ne change pas. Ou plutôt, même si ça change, ça ne change pas pendant le jeu. Donc, pendant que le jeu est en cours d'exécution, nous n'avons pas besoin de changer cela. Nous n'avons pas besoin d'avoir une liste dynamique ici. En gros. C' est pourquoi un est un tableau, fonctionne bien. Vous pouvez bien sûr aussi faire une liste. Ça n'a pas d'importance. Non plus. L' un d'eux serait bien, non ? Mais ce serait tout pour cette conférence en regardant le rendu sprite. Bien sûr, il y a encore quelques choses à ce sujet, mais comme d'habitude, en ce moment, c'est un très bon point de départ pour le rendu sprite peut être vraiment utile pour changer le sprite et aussi la couleur. C' est sympa de regarder ça, non ? Ok, donc c'était tout pour cette conférence. Comme toujours, j'espère que vous l'avez trouvé utile. Et s'il y a des questions, n'hésitez pas à poser, je serai sûr de répondre. Et oui. 62. (Les bases de l'unité) 2D: D' accord, continuons avec l'introduction de base de l'unité ici pour le cours de l'unité. Et dans cette conférence, nous allons jeter un oeil aux collisionneurs en boîte ou collaboratifs en général. Et la façon dont nous allons le faire est d'abord, bien sûr, de créer une nouvelle scène ici. L 19 collisionneurs appelés litres. Ils vont, Ouvrons cela et créons également un nouveau dossier ici, et al. 19 collisionneurs. Et puis au lieu de réellement créer le script. Et on va appeler ça le script des collisions. C' est en fait proche de celui-ci. Ouvrons ça. L' ego. Avant de faire quoi que ce soit à l'intérieur d'ici, on va créer une sorte de scène sympa ici. Encore une fois, pour les ressources que j'ai un atouts particulier Kenny une fois de plus. Et nous allons en fait créer une sorte de façon 2D de faire les choses. Alors sortons ces sprites ici. Donc ce serait le front vert extraterrestre, la caisse de caisse. Nous avons de la terre à gauche, MIT et droite, et nous avons la lave ici. Maintenant, en théorie, ils devraient être quelque part autour de 28. Donc, nous allons tout d'abord simplement marquer tous ceux, sélectionnez-les tous, faites-les tous pointer. Et puis essayons 128 pour les pixels par unité pour le moment. Et faisons juste une petite plate-forme ici. Juste pour des raisons d'argumentation. Nous ne l'utiliserons pas immédiatement, mais nous l'utiliserons bientôt. Donc négatif quatre, puis le négatif gauche quatre. Et puis nous avons simplement besoin de déplacer cela par probablement un qui est exactement juste, moins un. Et puis celui-ci est plus un et un négatif quatre. Et puis nous avons une petite plate-forme ici, ce qui est plutôt sympa. On peut mettre l'extraterrestre ici, qui est en fait très grand. Donc négatif 2,5 probablement, oui. Maintenant, il est en fait mis sur cette plate-forme parfaitement. Et puis nous avons aussi l'année de caisse, qui va juste flotter dans l'air à 2,5, pas de lepton 25, 2,5 et trois négatifs. Et puis la lave sera là juste pour que nous l'ayons. Nous allons en fait rendre ça un peu plus grand aussi. Donc quelque chose comme ça. Faisons-le. 2.52.2.5, 725. Oh mec, c'est trop grand. 2.52.5 à négatif deux et négatif trois. Mettons-le ici. Oui, c'est plutôt bien. Donc c'est notre scène en ce moment. Et qu'est-ce qu'on fait ? Quoi, qu'est-ce qui se passe ? Eh bien, ce que nous allons faire est ce qui suit. Nous le ferons en fait. Donnez le, celui-ci. Donc, nous allons tout d'abord renommer ces choses joueur. Nous allons aussi en faire un vide, qui va être le terrain dans lequel nous allons simplement sélectionner ceux et les faire glisser ici pour que le sol soit maintenant non, non, non, je ne l'ai pas centré. Ce n'est pas possible. Je dois centrer ça. Maintenant. Maintenant, tout va bien. Là où le sol est juste ici. La lave va bien et ça va être une boîte. Ok, qu'est-ce qu'on peut faire ? Eh bien, le joueur va maintenant obtenir les scripts de mouvement que nous avons fait il y a longtemps, pour que nous puissions réellement le déplacer. Et voyons, ça devrait marcher. Donc, si j'appuie sur WASD, je peux vraiment déplacer le joueur. Maintenant, bien sûr, je peux juste les faire passer à travers ces choses parce que non, il n' y a rien, il n'y a rien qui m'empêche de le faire et aussi rien ne se passe. Donc c'est un peu intéressant. Mais que pouvons-nous faire au fond nous permettra ? Eh bien, nous avons quelque chose qui est en fait avant d'entrer dans le script, nous avons quelque chose, nous avons un autre composant que nous pouvons utiliser. Et c'est en vue de la, si Sophie finalement sélectionner le joueur. Et si nous disons ajouter des composants, alors ce que nous avons c'est que nous avons un collisionneur. Maintenant ce collisionneur est au lieu de Physics 2D, et nous allons utiliser le collisionneur de boîte dans ce cas, nous pourrions aussi utiliser le collisionneur de capsules. Cela fonctionnerait probablement, mais ceux-ci sont fondamentalement différents. Les différentes formes, le collisionneur de boîte va aller bien. Maintenant, dans notre cas, comme vous pouvez le voir, le collisionneur de boîte est effectivement mis sur, comme sur toute l'image ici, qui est un peu trop grande. Donc, nous voudrions vraiment que la taille soit un peu différente. Donc, si je change cela, alors vous pouvez voir que cette boîte verte autour d'eux change. Faisons quelque chose comme 1.25. Et puis le décalage change fondamentalement où cela se trouve. Et si on fait quelque chose comme un point négatif pour peut-être qu'on en fasse un. Désolé, 35, 37, 5, quelque chose comme ça. Juste pour des raisons d'argumentation en ce moment. C' est une boîte correcte autour de ce personnage de joueur. Et maintenant, il a un collisionneur de boîte. Donc c'est plutôt cool. Maintenant. Est-ce que ça nous mène nulle part ? Je veux dire, en ce moment, pas vraiment parce que rien d'autre n'a un collisionneur. Donc, ce que nous allons faire, c'est de sélectionner tous ces chemins de terre, vos plateformes de commande. Et nous allons aussi ajouter un collisionneur à ceux-là. Et si je les élargis maintenant, alors nous pouvons voir qu'il y a quelques collisionneurs ici. Ça va bien se passer. Parce qu'en ce moment, nous ne voulons voir de ce que ça ressemble si je devais y passer. Alors, on les déplace un peu vers le haut. Donc négatif deux, de sorte qu'il flotte au-dessus du sol. Parce qu'en ce moment notre mouvement n'est pas vraiment un mouvement pour la 2D. C' est plutôt un mouvement pour une chose de haut en bas, mais nous allons changer cela dans le temps. allons aussi juste, juste pour que nous ayons un ajout de la boîte de collisionneur à la fois la lave et notre boîte. Et nous allons modifier les paramètres là-bas et un peu. Maintenant, je peux bouger. Et maintenant que se passe-t-il si j'ai un collisionneur et que le sol a un collisionneur, que se passe-t-il si je descends maintenant ? Voyons ce qui se passe. Rien ne se passe. Et la question est, pourquoi rien ne s'est passé ? Parce que ça a un collisionneur et que ça a un collisionneur et j'ai pensé que ce serait une sorte de collision. Oui, mais nous avons besoin d'une chose de plus parce que pour que la physique fonctionne. Et ce dont nous avons besoin, c'est sous Physique 2D ici, et ça s'appelle le corps rigide 2D. Maintenant, cela a, comme vous pouvez le voir, beaucoup de choses aussi beaucoup d'informations. Réduisons simplement l'information que nous voyons. Et comme vous pouvez le voir, il y a beaucoup de choses ici. Et la première chose que nous devons faire, nous allons parler de ce corps rigide 2D dans la prochaine conférence avec beaucoup plus de détails. En ce moment, la seule chose que nous devons faire est de mettre l'échelle de gravité à 0. C' est tout ce que nous devons faire. Et puis, fondamentalement, il suffit de mettre ça dedans et de ne pas le regarder à nouveau. Cependant, nous en avons besoin, sinon, aucune de ces choses ne fonctionnera. Mais maintenant, si j'essaie de descendre, je reste coincé. Je suis coincé sur toutes ces choses. Parce que maintenant ils entrent en collision. Maintenant, ce qui est vraiment drôle. Ce que je peux faire, c'est que je peux retourner mon gars comme vous pouvez le voir. Et maintenant tout est vraiment bizarre. Nous avons quelque chose à voir avec le corps rigide aussi. Fondamentalement, on peut geler la rotation. Nous allons nous inquiéter à ce sujet, cependant, comme je l'ai dit dans la prochaine conférence. Alors le collisionneur de boîte, que pouvons-nous faire maintenant ? Pourquoi est-ce intéressant ? Qu' est-ce qui est ainsi, que pouvons-nous faire à ce sujet en script, n'est-ce pas ? Donc maintenant, nous pouvons entrer en collision avec toutes ces choses. Mais qu'est-ce que ça nous donne vraiment ? Qu' est-ce que ça nous amène ? Vous pourriez imaginer que si je vais dans la lave, ça va faire mal. Et peut-être que si je touche la boîte, je veux juste sortir dans la console, Hé, tu as touché la boîte. Disons juste que ce sont les deux choses que je veux. Comment puis-je faire ça ? Eh bien, il y a des méthodes pour cela, et ces méthodes seront examinées dans ce script de collision. Donc, le script de collision, nous pouvons utiliser une méthode appelée sur collision entrer 2D. Et comme vous pouvez le voir, il ya quelques autres sur la sortie de collision sur le séjour de collision, ceux-ci devraient être plus ou moins explicatifs sur collision entrer signifie simplement que cela est appelé une fois. Comme vous pouvez le voir, une fois qu'un collisionneur 2D ou un corps rigide 2D commencent à toucher. Et sortir signifie simplement quand ils arrêtent de toucher et rester est appelé comme chaque cadre qu'ils touchent. Cela vous donne une collision 2D. Et avec cette collision 2D, nous avons beaucoup de choses que nous pouvons appeler ici. Comme vous pouvez le voir, nous pouvons appeler le collisionneur, le contact, le nombre de contacts ou le nombre de contextes. On peut trouver les points de contact. On peut avoir le corps rigide, la transformation. On peut avoir beaucoup de choses. instant, ce que nous voulons, c'est le collisionneur. Et nous voulons le nom du collisionneur. Et nous vérifierons si c'est une boîte. Donc, nous voulons savoir si cela est entré en collision avec la boîte. Et. C' est le cas. Ensuite, nous allons simplement se déconnecter, hé, hue, toucher, vous touchez la boîte. Et c'est tout ce qu'il y a. Donc, c'est une façon de faire la collision en 2D bien sûr. Voyons donc si cela a réellement fonctionné avant que nous puissions voir si cela fonctionne ou non. Bien sûr, nous devons également ajouter le script de collisions ici à notre, à notre joueur. C' est très important. N'oublie pas ça. Et puis voyons ce qui se passe. Donc si je touche le sol, rien ne se passe. Si je touche la lave, rien ne se passe. Cependant, si je touche la boîte, comme vous pouvez le voir, vous avez touché une boîte. Et chaque fois que je recommence, nous augmentons ce compteur. Cependant, si je continue de le faire, cela ne fonctionne pas parce que nous avons bien appelé The, nous avons implémenté la méthode on collision enter 2D et non à l'étamine. Et il y a une autre chose. Donc, à l'intérieur du collisionneur de boîte, si on regarde ça. Donc, si nous regardons la larve par exemple, il y a quelques choses que nous pouvons utiliser. Donc éditez le collisionneur simplement, nous pouvons fondamentalement éditer le collisionneur dans un peu plus de détails. On n'a pas besoin de le faire en ce moment. Le matériel physique ne nous intéresse pas pour le moment. Nous pouvons cependant utiliser ce déclencheur et c'est déclencheur est une chose très, très intéressante parce que cela est déclenché supprime simplement physiquement la façon dont nous pouvons toucher cela. Donc je vais juste te montrer ça. Alors que le collisionneur normal j'entre en collision avec ça, et maintenant si c'est un déclencheur, alors dès que j'y vais, je n'entre pas en collision avec lui parce que c'est fondamentalement juste un puits, c'est juste un déclencheur. C' est une zone particulière dans laquelle si j'entre, je peux encore, quelque chose peut arriver. Mais je n'entre pas en collision avec ça. Et ce serait aussi une, une autre méthode particulière ici. Et c'est sur Trigger Stay to D par exemple. Donc, il y a, encore une fois, bien sûr, entrez ceci, restez sur ce, la sortie pour cela encore une fois. Aussi très important. Assurez-vous que vous avez utilisé la méthode 2D si vous travaillez avec 2D, sinon, cela ne fonctionnera pas non plus. Et dans celui-ci, nous pouvons presque faire exactement la même chose. Maintenant, comme vous pouvez le voir, il y a un petit truc bizarre. Donc, c'est toujours appelé collision ou bien que vous obtenez un collisionneur, je ne sais pas pourquoi la raison pour laquelle ils n'ont toujours pas fixé le nom automatique de cela, mais ils vont. Et puis disons que le nom du point de collision est égal à ce serait la lave. Et si c'est le cas, alors par exemple, vous pouvez dire que vous êtes maintenant endommagé. Endommagés, ils vont à droite. Et puis à l'intérieur d'ici, bien sûr, ce que vous pourriez faire est si vous avez une référence au script de santé, par exemple, vous pourriez dire, hey, maintenant vous perdez la santé et puis à un moment donné vous pourriez mourir si vous étiez dans le labo ou vous mourrez immédiatement quand vous êtes dans la lave ou quelque chose comme ça. Mais en ce moment, la seule chose que nous voulons, c'est que le joueur reste à l'intérieur de la lave, nous voulons que vous obteniez des sorties endommagées. Voyons si ça marche. Et bien sûr que c'est le cas. C' est très bien. Maintenant, ce qui est intéressant, c'est que pourquoi cela continue ? Et si je déménage à nouveau, ça continue. C' est à cause de l'un des paramètres au lieu d'un corps rigide, comme je l'ai dit, prochaine conférence, nous allons résoudre ce problème et quelques autres choses. Je vais aussi jeter un oeil au corps rigide lui-même. Mais pour l'instant. Et c'est en fait tout ce que je voulais vous montrer pour les collisionneurs eux-mêmes. l'ensemble, les collisionneurs sont un outil incroyablement utile et si facile à mettre en œuvre et à travailler avec. Même chose avec fondamentalement le, les déclencheurs ici, qui sont un outil incroyable pour avoir fondamentalement, vous savez, différentes choses se produisent à certains moments sans même avoir à être quelque chose à voir. Donc, bien sûr, ce déclencheur, nous pourrions aussi ne pas avoir de rendu sprite sur cela et cela fonctionnerait toujours. Donc il y a un tas de choses qu'on peut faire avec ça, ce qui est vraiment sympa. Et oui, ce serait tout pour les collisionneurs. Comme toujours, j'espère que vous avez trouvé cela utile. Et bien sûr, j'apprécierais vraiment une critique de votre part. Sinon, s'il y a des questions comme toujours n'hésitez pas à poser et je serai sûr de répondre. Et oui. 63. (Les bases de la Unité) Les bases de Rigidbody2D de Rigidbody2D: D' accord, continuons avec l'introduction de base de l'unité ici pour le cours de l'unité. Et cette conférence nous allons jeter un coup d'oeil sur le corps rigide 2D. C' est donc une sorte de partie du système physique de l'unité. Et on l'a déjà vu. J' ai dit que nous allions à la dernière conférence que nous avons simplement ignoré cela et dit, eh bien, nous avons besoin de cela pour que les collisions fonctionnent. Mais maintenant, nous allons y jeter un coup d'oeil un peu plus en détail. Donc, les premières choses. Premièrement, la première chose que nous devrions faire est de parler des contraintes. Les contraintes doivent être assez évidentes. Geler la rotation signifie simplement que cet objet de jeu particulier, dans notre cas, le joueur ne peut pas tourner dans la direction z. Maintenant, nous pouvons toujours les faire pivoter manuellement, mais le système physique ne peut pas le faire pivoter. Et nous voulons vraiment le faire. Parce que ce que nous avons vu précédemment est que lorsque le joueur, je suis en fait entré en collision avec la boîte, puis le joueur commence à tourner. Et ce n'est certainement pas quelque chose que nous voulons. Maintenant, il y a des choses différentes que nous pouvons utiliser ici. Donc le type de corps est la première chose. Et c'est entre n'a pas, dynamique, cinématique et statique. Et les principales différences ici est essentiellement statique signifie simplement qu'il ne change pas. cinématique est en mouvement et puis dynamique se déplace avec un peu plus de dynam, dynamisme, voyez, je suppose qu'un peu plus de dynamique. Je suppose que la masse est utilisée, calculer la force plus tard en bas de la ligne parce que nous pouvons également appliquer la force à un corps rigide. Et l'échelle de gravité signifie simplement bien, échelle de gravité, mais ce que vous attendez, donc un, si vous avez une échelle de gravité de 1 et de masse, alors vous tombez au début. Donc, par exemple, si je devais faire ça et que je ne bouge pas, comme vous pouvez le voir, tout d'un coup le joueur est tombé. Donc, si je déplace le joueur vers le haut, comme vous pouvez le voir, le joueur tombe maintenant et je peux essayer de monter, mais cela ne fonctionne pas vraiment parce que pendant que je change de position, la gravité me tire à nouveau vers le bas pour que je puisse me déplacer à gauche à droite. Ça marche bien. En bas. Déplacer vers le bas n'a aucun sens. Et puis aller vers le haut n'a pas vraiment de sens parce que pendant que je m'entraîne, le système physique se bat en quelque sorte contre elle. Et c'est essentiellement aussi où la partie où vous pourriez penser à un système de saut. Donc c'est une sorte de, bien sûr, une plate-forme et maintenant le mouvement gauche et droit fonctionne totalement bien. Et maintenant mettre en œuvre un saut pourrait être quelque chose qui serait possible parce que si vous avez une échelle de gravité, alors je veux dire, c'est presque un saut, mais ce n'est pas tout à fait un tambour parce que je dois maintenir la touche W enfoncée pour garder se déplaçant vers le haut fondamentalement. Il y a probablement un moyen de le faire. Mais de toute façon, le corps rigide, nous avons eu un problème où pendant que nous étions à l'intérieur et que nous arrêtions de bouger, tout d'un coup, nous n'étions plus endommagés. C' est à cause du mode de sommeil. Donc l'idée est que nous commençons éveillés. Mais si nous arrêtons de bouger, alors le système physique pour le joueur commence juste à dormir. En gros. Si nous mettons ça pour ne jamais dormir, alors ce que nous trouverons, c'est qu'une fois que nous irons à l'intérieur d'ici et que nous resterons ici, cela continuera à nous endommager fondamentalement. Bien sûr, exactement ce que nous voulions dans ce cas. On ne veut pas que ça s'endorme à ce moment là, non ? Certaines de ces choses comme la masse, la traînée linéaire linéaire et la traînée angulaire, ou tout simplement exactement ces choses en termes de physique. Et en termes de composants physiques ou, ou de valeurs physiques. Ils le sont. Donc, la masse surtout est bien sûr utilisée pour calculer la force. Donc si je devais mettre de la force sur cet objet, en fonction de la masse, ça changerait. Donc, c'est tout simplement une chose très normale de la physique elle-même. Fondamentalement, nous avons l'interpellé est, comme vous pouvez le voir, est le mode de mise à jour par trame pour le corps. Nous pouvons interpoler ou extrapoler ou vous pouvez choisir aucun. D' habitude, je dirais qu'aucun n'est ce que tu veux. L' interpolation signifie simplement que les étapes intermédiaires sont calculées. Globalement. Je pense qu'en général, pour la plupart des choses que nous allons faire à l'intérieur d'ici, ça n'a pas beaucoup d'importance. Même avec la détection de collision. Donc discret signifie simplement qu'il est en étapes discrètes, sorte qu'il est en étapes discrètes. Continu signifie qu'il est continu, non ? Jetons donc un coup d'oeil au, fondamentalement le corps rigide à l'intérieur des scripts. Donc, si nous allons à la, à notre script que nous avions ici, collisions que le corps rigide peut être accédé soit en faisant non, en fait, il ne peut être accessible qu'en faisant un bon composant, puis Rigide, Corps Rigide 2D. Donc nous pouvons sauver ça à l'intérieur d'un corps rigide 2D. Ce serait un corps rigide 2D égal list.rev get composant. Et puis nous pouvons penser à ce que nous pouvons faire ici. Ainsi, par exemple, corps rigide, point 2D. Et comme vous pouvez le voir, il y a un tas de choses que nous pouvons faire. Donc, tout d'abord, bien sûr, nous pouvons et changer tous les composants que nous avons vus dans le composant à l'intérieur de l'inspecteur. Nous pouvons bien sûr, aussi changer d'autres choses et faire d'autres méthodes vraiment cool. Appelez certaines méthodes, par exemple, à la force. Nous pourrions donc, par exemple, ajouter de la force dans une direction particulière. Donc, point vectoriel, par exemple, ou disons, Bien sûr, faisons des points vectoriels pour le moment. Cela ajoutera alors une force dans cette direction. Donc en y, dans une direction. Si nous devions dire, par exemple, réglez à nouveau l'échelle de gravité à 0. Voyons ce qui se passerait maintenant. Est-ce que vous pouvez voir qu'il se déplace très, très lentement. Donc c'est la force en place maintenant. Maintenant, je peux toujours le déplacer et je peux toujours le changer. La force est toujours là. Parce que si nous regardons dans les infos ici, vous pouvez réellement voir que la vitesse est de 0,02. Et exactement Donc, la, donc la vitesse est le point 0 2. Donc, fondamentalement, point 0, 2. Je pense qu'une seconde serait la vitesse dans ce cas. Donc, si je l'échelle ensuite pour être quelque chose comme les fois 20, sorte que maintenant je bouge 20 fois plus vite. devrait être 0,4, je suppose. Et maintenant se déplacent un peu plus vite. Oui, c'est génial. Et comme vous pouvez le voir maintenant monter assez vite, nul bien sûr, comme je l'ai dit, je peux descendre, pas de problème. Mais dans ce cas, la force qui a été ajoutée là-bas est, ouais, ça reste fondamentalement. Et c'est plutôt cool. Nous pouvons bien sûr aussi ajouter du couple. En théorie, on peut. Qu' y a-t-il d'autre ? Nous pouvons calculer la distance entre cela et un collisionneur. Comme vous pouvez le voir, il y a beaucoup de choses que nous pouvons faire. On peut déplacer la position. Ainsi, cela déplace le corps rigide à une position particulière. On peut regarder les chevauchements. Donc, il y a beaucoup de choses que vous pouvez voir que nous pouvons faire. Nous pouvons également appeler le réveil afin qu'il désactive l'état de veille. Mais la force publicitaire est vraiment la chose très intéressante. Nous pouvons aussi, je crois, mettre immédiatement sa vitesse à quelque chose. Donc, comme vous pouvez le voir, ça dit vraiment ça. Donc si je dis que la vitesse est égale, je suppose que comme je l'ai dit, c'était un vecteur 2D. C' est une déclaration secrète. Oui, c'est un vecteur 2D, donc ce serait un nouveau vecteur, 2 D, par exemple 0 puis 0,15. Donc, au lieu d'ajouter une force, nous définissons maintenant la vitesse directement. Faisons ça. Alors voyons. Et maintenant, comme vous pouvez le voir, la vitesse est maintenant de 0,15. Donc, ce sont toutes les choses qui sont dans l'info ici, très importantes aussi. Mais la raison pour laquelle nous ne voulions pas forcément régler la vitesse tout seul, c'est à cause de la masse. Si nous ajoutons une force, la masse détermine quelle est la vitesse à la fin. Donc, parfois vous voulez définir la vitesse, parfois il est préférable d'ajouter la force dépend vraiment de l'endroit où vous voulez aller avec ça, combien de systèmes physiques vous voulez utiliser ? Personnellement, je dirais qu'il est probablement le plus logique de ne pas avoir trop de système physique, mais cela dépend vraiment du type de jeu que vous essayez de faire. Et une dernière chose que je voulais juste montrer, par exemple, est si nous avons, par exemple, une traînée linéaire. Je veux dire 50, c'est probablement un peu trop. Mettons-le en un pour l'instant. Et j'ai mis une force dessus. Alors ce que vous verrez est que la vitesse diminue et tout d'un coup à un moment donné il est 0. Maintenant, c'est bon. Maintenant, c'est très lent, très lent, très lent. Et puis, à un moment donné, il est si petit qu'ils ne bougent plus. Et cela devient 0. Je veux dire, c'est déjà 0. Parce que la traînée linéaire signifie simplement que ce que nous sommes, nous avons un peu de traînée juste avant que nous étions fondamentalement juste une chose flottant dans l'espace sans aucune résistance. Et maintenant on y mettait la résistance à l'air. Donc, comme vous pouvez le voir, c'est ce qu'il dit. Et pas d'amortissement 0 signifie pas d'amortissement. C' est donc quelque chose que vous pouvez contrôler avec, par exemple, le glissement linéaire. Et la même chose avec Angular Drag simplement pour une rotation dans ce cas, non ? Ce serait bien pour le corps rigide dans l'ensemble, il y a quelques choses plus cool, bien sûr qu'il peut faire avec. Mais je pense qu'en général, c' est plutôt cool. Et peut-être l'ensemble, en termes d'une idée ou peut-être vous avez maintenant une idée de comment vous pourriez être en mesure d'ajouter fondamentalement une sorte de mécanicien de saut dans le jeu. Ce serait quelque chose que vous pourriez, par exemple, essayer. Ce n'est pas nécessairement nécessaire, mais ce serait une bonne idée. Peut-être que tu peux penser à quelque chose. Mais de toute façon, dans l'ensemble, ce serait pour le corps rigide 2D, quelque sorte un bref aperçu de celui-ci. Comme toujours, j'espère que vous l'avez trouvé utile. Et s'il reste des questions, hésitez pas à poser et je serai sûr de répondre. Et oui. 64. (Les bases de l'unité) Texte UI en matière de l'unité de base) de l'unité de l'unité: D' accord, continuons avec l'introduction de base de l'unité pour le cours de l'unité. Et dans cette conférence, nous allons jeter un coup d'œil à un texte très, très basique de l'interface utilisateur. Et la raison pour laquelle je veux vous montrer le texte de base de l'interface utilisateur est que vous avez une estimation approximative de l'interface utilisateur, au moins comment afficher un certain texte. Et plus tard, dans une autre section, nous allons plonger en profondeur dans l'interface utilisateur. Regardez chaque composant qu'il y a, comment les utiliser et des choses comme ça. Je pense qu'un texte d'interface utilisateur de base peut déjà faire des merveilles. Et pour cela, nous allons créer une nouvelle scène. Encore une fois, je 21. Si je ne le fais pas si je ne me trompe pas et je ne pense pas que je le suis. Faisons un texte d'interface utilisateur simple. Textes, l'ego. Et ouvrons immédiatement ceci. Et puis au lieu du dossier des scripts, un nouveau dossier, L21, texte de l' interface utilisateur, avec un script C-Sharp très facile appelé texte de l'interface utilisateur. Qui aurait deviné, il ya immédiatement commencer ça. Et créons un nouveau texte à l'intérieur de notre jeu. Comment peut-on faire ça ? Eh bien, dans une sorte de hiérarchie, clic droit. Et puis aller à l'interface utilisateur, puis texter. On va utiliser les textes normaux maintenant. Comme je l'ai dit, toutes les autres choses ainsi que ce que ce texte Mesh pro signifie. Je vais vous expliquer dans les prochaines conférences maintenant. Nous allons juste gérer le texte normal et comment nous pouvons réellement faire afficher cela. Donc maintenant, nous avons un nouveau texte et comme vous pouvez le voir, d'autres choses ont été générées. Un, le système d'événements, nous en aurons besoin, ne supprimez pas cela, sinon, certaines choses pourraient ne pas fonctionner. Et le Canvas et Canvas est fondamentalement, vous pouvez imaginer une toile fondamentalement comme une, comme une toile sur laquelle vous pourriez peindre. Et dans notre cas, nous ne peignons pas là-dessus, mais notre interface utilisateur est essentiellement estampillée sur cette toile. Maintenant, si nous zoomons un peu, vous verrez que tout d'abord, le texte est géant et sur la toile est également très, très grand. Et nous pouvons changer cela en allant essentiellement ici sur Canvas, puis en changeant le mode de rendu en caméra spatiale écran. Et puis prendre la caméra principale et la mettre dans cette caméra de rendu. Et tout d'un coup, la toile est placée sur la taille de l'appareil photo. Et notre texte est en bas ici. Et nous pouvons le redimensionner avec l'outil rect. C' est la façon la plus simple de le faire. Nous pouvons fondamentalement redimensionner ceci et en quelque sorte le mettre comme un animal ici, par exemple. Ensuite, agrandissez la taille de la police sur le texte lui-même. C'est fait ici. Et puis tout d'un coup, faisons quelque chose comme ça. Centrer et ils, on y va, maintenant nous avons un nouveau texte. Globalement. C'est la seule chose que nous devons faire dans le Canvas lui-même. Comme vous pouvez le voir, il y en a beaucoup plus. Ne nous inquiétons pas pour l'instant. En fait, nous ne nous inquiétons que du texte lui-même. Là où nous pouvons bien sûr changer le fonds. En théorie, nous pouvons changer la taille de la police, le style, l'alignement. Donc, tout ce que vous pouvez aussi faire est par exemple, dans Word. Et bien sûr, la couleur peut également être changée en, faisons ce genre de couleur blanche. Et si je vais au jeu et vous pouvez voir que le nouveau texte apparaît là sans problème. Je peux changer le texte ici dans ce champ de texte. Donc, par exemple, à 100. Et ce que je vais faire maintenant, c'est que je vais ajouter le texte de l'interface utilisateur en tant que composant aux deux exactement cet objet de jeu de texte. Et à l'intérieur, nous allons voir comment je pourrais changer le texte par script. Donc, pour moi de changer le script, changer l'interface utilisateur réelle via script, j'utiliserai le moteur Unity WI. C' est donc un espace de noms que nous devons utiliser. Et puis, par exemple, faisons une variable de texte privée appelée texte de test. Et nous allons en faire un domaine sérieux juste pour que nous puissions voir ce qui se passe. Et c'est l'interface utilisateur, comme vous pouvez le voir, l'élément UI, le moteur Unity, le texte wi dot. Et c'est exactement ce composant ici. En théorie, cette composante ici est ce texte. Et ce que nous pouvons faire, c'est que nous pouvons dire si nous voulions définir les textes, ils sont test, test.txt. Donc, le texte est la variable de chaîne qui s'affiche réellement. Et nous pouvons définir cela en faisant, par exemple, si nous voulons que cela soit réglé à 300, si nous faisons cela, alors cela va dire, que cela ne fonctionne pas parce que nous devons réellement dire à chaîne. Ou bien on peut bien sûr dire quelque chose comme ce véhicule 300. C' est, bien sûr, encore plus facile. Donc, nous pouvons définir ceci à n'importe quelle chaîne que nous voulions. Et bien sûr, il y a aussi d'autres choses que nous pouvons faire pour que nous puissions changer la couleur alignée. Nous pouvons tracer la police elle-même, peut également changer la taille de la police. Donc, fondamentalement, toutes les choses que nous avons vues à l'intérieur du composant réel, nous pouvons changer si votre script aussi. Mais en ce moment, la seule chose que je veux faire est fondamentalement de changer cela. Pour changer les cent, deux cents, trois cents, une fois que je commencerai. Et nous devons mettre ça ici. Donc, comme vous pouvez le voir, testez des textes, aucun en ce moment. Donc, ce que nous pouvons faire est juste de mettre en lui-même ou à l'intérieur du script. Avant de commencer, nous pouvons dire qu'il a des textes égaux à ce point get composant texte. Donc, en utilisant la méthode de la composante de la dette une fois de plus pour obtenir fondamentalement le texte au début. Et si nous commençons ça, vous pouvez voir qu'il tourne à 300. N' est-ce pas génial ? Droit ? Et c'est une façon très, très basique de mettre en œuvre un texte et comment nous pouvons changer cela. Encore une fois, nous pouvons simplement utiliser la méthode du composant Get afin d'accéder fondamentalement au texte, puis à toutes les variables qui lui sont associées. Nous n'allons pas examiner trop de ces choses. Comme je l'ai dit, c'est quelque chose que je voulais juste mentionner rapidement. Vous montrer rapidement afin que vous puissiez faire très, très basique juste texte de l'interface utilisateur et rien d'autre vraiment. Juste pour que nous ayons ceci dans notre boîte à outils pour examiner, eh bien, faire notre premier jeu fondamentalement, non ? Mais c'était déjà pour cette conférence. J' espère que vous avez trouvé utile comme toujours, s'il y a des questions toujours à poser et je serai sûr de répondre. Et oui. 65. (Les bases de l'unité) Outils de Debugging de base de l'unité de Debugging de la débugging de: Ou continuons avec l'introduction de base de l'unité ici pour le cours de l'unité. Et dans cette conférence, nous allons jeter un coup d'œil à certains outils de débogage que vous avez à l'intérieur d'Unity. Et créons simplement une nouvelle scène, le débogage L22. Maintenant, ces outils de débogage seraient des outils qui utilisent essentiellement la classe Debug. Donc, c'est un autre dossier, le débogage L22. Et puis un script ici. Refroidir, l'exemple de débogage. Ouvrons ceci et faisons aussi un objet de jeu vide appelé débogage. En le centrant, bien sûr, ils vont zéros 0000 et en y ajoutant l'exemple de script de débogage. Et puis voyons ce qu'on peut voir. Donc, nous allons juste sortir quelque chose. Quand j'appuie ici, nous allons utiliser le point de code clé d. Donc si j'appuie sur D, alors nous allons déboguer quelque chose. Je pense que cela a du sens. Et la première chose que nous savons déjà est bien sûr, le journal des points de débogage. C' est quelque chose que nous avons déjà vu. Tu connais déjà celle-là, non ? Ceci devrait être explicatif, verrouille simplement un message à la console. Il y a aussi l'avertissement de débogage. Maintenant, nous avons vu quelques avertissements. Donc, cela pourrait être, par exemple, un matin que vous écrivez. Et c'est quelque chose que nous avons vu quelques fois auparavant avec, par exemple, variables qui avaient été assignées mais pas vraiment froides nulle part ailleurs. Mais je ne crois pas qu'on ait appelé ou qu'on ait fait un avertissement nous-mêmes. Et il y a aussi regard, ère. C' est la seule chose qu'il suggère toujours qui est parfois suggéré avant le journal. Je ne sais pas pourquoi cela a changé dans les versions récentes, disons l'unité, mais quel que soit le cas, ces trois, disons ici. C' est une flèche. Bien sûr. Arrow, voilà. Et voyons à quoi ça ressemble si on commence ça. Donc tout d'abord, bien sûr, j'ai besoin d'appuyer sur le bouton. C' est pour ça que rien ne s'est passé. Cela expliquerait bien sûr cela. D. Et comme vous pouvez le voir, vous le saviez déjà. Je vous préviens, et c'est un Arabe. Il y a aussi, bien sûr, filtrage sur la console. Je l'ai déjà expliqué. Et ces trois choses sont fondamentalement quelque chose que nous pouvons faire et nous pouvons continuer à insister là-dessus. Et comme vous pouvez le voir, le nombre augmente. Et c'est vraiment utile parce que, bien sûr, vous pouvez, en quelque sorte, selon ce que vous voulez exprimer dans votre code, vous pouvez soit retirer un avertissement ou une erreur. Et c'est vraiment agréable à des fins de débogage. Cependant, ce que je veux dire, c'est que tous les outils de débogage sont très chers, donc ils devraient tous être retirés lorsque le vrai jeu est sorti ou soit commenté ou simplement s'assurer qu'ils ne sont plus là dedans. Je ne suis pas sûr en fait, s'ils sont froids pendant le jeu ou si le débogage est quelque chose qui se fait seulement à la place de l'éditeur, je ne suis pas sûr à 100%. Mais de toute façon, donc. Il y a autre chose que nous pouvons faire et c'est une ligne de tirage. Qu' est-ce que c'est ? Eh bien, ce point transforme la position des points. Donc, nous partons de cette position et nous disons, par exemple, nous allons d'ici de notre position à droite. Donc vecteur trois fois cinq. Et puis nous pouvons aussi dire, eh bien, nous voulons que ce soit de couleur rouge. Et dix F signifie qu'il reste dix secondes. Donc c'est plutôt cool parce que ce que nous pouvons faire, c'est qu'on peut juste tracer une ligne. Et tandis que le, vous pourriez dire, pourquoi je voudrais tracer une ligne ? Voyons voir à quoi ça ressemble. Ça ne ressemble à rien parce que les gadgets ne sont pas activés. Allons sur les gadgets et tout d'un coup nous voyons cette ligne rouge. Il reste là pendant 10 secondes et s'en va. Comme vous pouvez le voir, vous y allez. Pourquoi c'est si cool ? Pourquoi pouvons-nous utiliser ça ? Eh bien, c'est vraiment utile parce que parfois ce que vous voulez, c'est que vous voulez savoir ce qui se passe avec quelque chose. Peut-être que vous voulez savoir si quelque chose va vers ou quelque chose comme ça. Et puis dessiner une ligne avec l'outil de débogage peut être vraiment utile. Maintenant, je peux tracer beaucoup de lignes bien sûr, et ils expireront tous à un moment donné. Mais oui, donc la ligne de dessin, incroyablement utile pourrait être. Je veux dire, je pense que c'est vraiment utile. C' est pour ça que je voulais le montrer. C'est vraiment cool. Il y a aussi l'exception de verrouillage. Si je peux l'obtenir, verrouiller l'exception, voilà. Donc, en cela, nous pouvons par exemple, par exemple , système, une nouvelle exception System.Out. Et puis ça dit, oui, c'est une exception. Donc, c'est juste la journalisation d'une exception fondamentalement. Et puis dernier but non moindre, ce que je veux aussi vous montrer est le point de débogage, point. Et cela affirme simplement un bool conditions particulières. Donc, si je mets un vrai ici, alors rien n'obtient de sortie. Et nous allons simplement ignorer cela. Si je mets un faux, nous verrons que l'affirmation sera échouée et nous aurons une référence avec cette ligne. Alors voyons à quoi ça ressemble. Si je l'ai stocké à nouveau, appuyez sur D, comme vous pouvez le voir. Donc, tout d'abord, vous connaissez déjà celui-là. Alors je vous préviens que nous avons une flèche, c'est notre propre erreur. Nous pouvons également regarder une exception. Exception. Oui, c'est une exception. Et puis l'assertion a échoué, déboguer l'assertion point bool. Donc, on peut affirmer certaines choses et dire, Hey, si c'est correct, alors continuez. Si ce n'est pas le cas, alors stop peut être utile pour, Ajoutons le débogage. Et oui, c'est une sorte de choses que je voulais te montrer. Bien sûr, à l'intérieur de la div, il y a quelques autres choses que vous pouvez regarder, mais dans l'ensemble, ce sont en quelque sorte celles que je voulais vous montrer. S' il y a d'autres choses dont vous avez besoin, vous pouvez aller, bien sûr, regarder vous-même dans la classe Debug et regarder quelques choses, mais ce sont des choses que j'ai trouvées les plus utiles pour moi-même. Et oui, ce serait déjà le cas pour cette conférence et cette section. Et j'espère que vous l'avez trouvé utile comme toujours. Si vous avez des questions, hésitez pas à poser et je serai sûr de répondre. Et oui. 66. (Cheese Clicker) The Idea « Cheese Clicker): Très bien, bienvenue dans le cliqueteur de fromage ici pour le cours de l'unité. Et dans cette conférence, je voulais juste vous montrer rapidement ce que nous allons créer dans cette section du cours. Nous voulons créer un cliqueteur de fromage. Il y a une sorte de Cookie Clicker, mais avec du fromage. C' est l'idée que j'ai inventée. Et parce que Cookie Clicker est un concept très facile à comprendre, j'ai pensé que le faire ensuite en fromage serait alors aussi logique. Et ce serait, espérons-le, plus facile à suivre parce que le concept est si facile. Cependant, nous pouvons encore créer un système très bien intéressant avec cela. Et nous pouvons aussi créer qui le fera. Donc, dans ce cas, c'est déjà terminé. Dans ce cas, je voulais te montrer ça et voyons comment ça joue. Donc, la façon dont il joue est que nous avons fondamentalement la capacité de créer de nouveaux bâtiments pour que nous puissions construire un bâtiment de clicker et un bâtiment de station de traite. Nous avons également des mises à niveau qui sont générées que nous avons implémentées. Et si on clique sur le fromage, alors comme vous pouvez le voir, le nombre de fromage augmente ici. Et si nous avons assez de fromage pour construire quelque chose, alors les boutons réels ici vont également tourner pour que nous puissions cliquer dessus et ensuite nous pouvons cliquer, par exemple, sur le clicker. Le nombre ici augmenterait et ce nombre augmenterait également. Donc, le coût va augmenter, ainsi que le nombre de bâtiments que nous avons de ce type. Le clicker va générer pour nous un fromage par seconde. Nous pouvons alors, par exemple, par une mise à niveau ici, et puis le clicker va tout d'un coup nous amener au fromage par seconde. Et quand nous avons, par exemple, une station de traite ici, cela nous générera cinq fromages toutes les deux secondes. Droit ? Donc, c'est une sorte de ce que le jeu ressemble. Nous avons aussi des tricheurs intégrés. Donc si j'appuie sur plus, alors on va augmenter le fromage. Si un plus moins, alors nous allons diminuer le fromage. Donc c'est plutôt cool. Et tout cela sera construit au cours des prochaines conférences. Tout d'abord, le fromage pour cliquer sur eux vont regarder les bâtiments. Nous allons y ajouter une interface utilisateur simple que nous pouvons utiliser essentiellement. Et enfin, nous allons ajouter le système de mise à niveau. En gros, ici. Comme d'habitude. Le, à la fois cela comme un paquet est disponible pour vous à télécharger, ainsi que chacun des sprites ici sont disponibles en tant que ressource. Et miam, cependant vous voulez l'utiliser. Fondamentalement, vous pouvez essentiellement obtenir le votre, le projet entier ici, le télécharger, puis regarder le code pendant que je l'écris, pendant que je l'explique, ou vous pouvez essentiellement l'écrire en parallèle avec moi. Il y a bien sûr quelque chose à vous de décider comment vous pouvez mieux comprendre cela et comment vous pouvez mieux voir comment cela fonctionne. Mais dans l'ensemble, ce sera tout pour cette conférence. Maintenant, j'espère que vous allez vous amuser pour les conférences à venir où nous créons notre propre premier jeu, le cliqueteur de fromage. Et oui, ce serait ça. Et j'espère que tu t'amuses dans les conférences à venir. Et je dirais, s'il y a des questions, bien sûr, pendant la réalisation de ce jeu, alors n'hésitez pas à demander et je serai sûr de répondre. Et oui. 67. (Cheese la Clicker) Créer un fromage pour cliquer: Très bien, bienvenue pour créer le cliqueteur de fromage ici pour le cours de l'unité. Et dans cette conférence, on va faire un fromage sur lequel on peut cliquer. Et aussi un objet de jeu où nous pouvons stocker notre fromage. Donc, fondamentalement, un stockage de fromage, pour ainsi dire. Et pour cela, la première chose que j'ai déjà préparée, le dossier scripts et le dossier sprites ici. Ça ne devrait pas être quelque chose de fou ou complètement nouveau pour toi. Et prenons le fromage. Donc c'est le sprite de ressources que j'ai. Fondamentalement comme disponible en tant que ressource. Et nous allons changer si vous êtes ici. Donc, tout d'abord, les pixels par unité vont être un 150. Nous allons faire pointer ce mode de filtre afin que nous ayons une sorte d'image nette et la compression sera réglée sur zéro à cause de cela, certains basiques, ce n'est pas une flèche comme un avertissement ici. Alors la compression aucune et l'avertissement disparaîtra. C' est vrai ? Maintenant que nous avons notre fromage, nous pouvons le traîner dans notre scène et maintenant nous avons un fromage ici. Localisons ça quelque part comme 00, négatif 0,5. Dis que c'est un bon endroit pour ça. Et nous allons renommer le fromage en crieur de fromage parce que c'est essentiellement les arbres sur lesquels nous allons cliquer. Et nous allons aussi créer deux scripts. Mais avant de le faire, nous allons aller dans notre éditeur de paramètres de projet , puis vers notre espace de noms racine et l'espace de noms racine. Dans ce cas, ça va être un cliqueteur de fromage, non ? Donc, ayant ceci comme espace racine, l'espace noms va alors générer l'espace de noms comme vous l'avez probablement vu à l'intérieur de. À l'intérieur de la conférence d'espace de noms à l'intérieur de l'introduction C forte, non ? Alors créons nos scripts C, C. Le premier script que nous allons créer est le fromage Flickr. C' est donc le vrai clic du fromage. Et puis nous allons immédiatement créer un autre script. Et ce serait le, on peut appeler ça Elle est le stockage. Je pense que c'est une bonne idée. Et nous savons que c'est bon, dans une sorte de stockage de fromage là-bas, nous stockons notre fromage pour ainsi dire. Et ouvrons ça. Et une fois qu'il est ouvert, nous pouvons immédiatement revenir ici au crieur de fromage. Et maintenant, nous avons nos deux fichiers ouverts. Alors pensons à ce dont nous avons besoin pour le cliqueteur de fromage lui-même. Donc, nous allons tout d'abord être en mesure de cliquer sur le fromage. Eh bien, il y a en fait une très belle chose qu'on peut faire. Et ce sera, nous sommes tout d'abord, nous n' avons pas vraiment besoin ni du début ni de la méthode de mise à jour ici. Et ce que nous allons utiliser est deux méthodes qui sont disponibles car il s'agit d'un comportement mono. Et ce sera sur la souris vers le bas, comme vous pouvez le voir. Donc, sur la souris vers le bas et ensuite avec l'onglet, nous pouvons fondamentalement auto-completer cela et sur la souris vers le bas, ce que cela fait, comme vous pouvez le voir, est appelé lorsque l'utilisateur a appuyé sur le bouton de la souris alors que sur l'élément GUI ou le collisionneur. Donc, c'est un élément GUI, ce sera un collisionneur. Donc, ce qu'on va juste faire en ce moment, c'est juste augmenter. Fondamentalement, juste pour que nous sachions que cela fonctionne. Et une chose que nous allons aussi faire est de dire que nous allons avoir une nouvelle méthode ici, qui va redimensionner le fromage. Parce qu'en ce moment, en fait, regardons tout d'abord ça et ensuite nous allons comprendre ça par la suite. Tellement augmenté de fromage. Donc, quand nous cliquons sur ce fromage Clicker, alors nous voulons augmenter le fromage. Maintenant, cela n'est bien sûr pas encore mis en œuvre, mais le, au moins la sortie devrait fonctionner. Donc, ce cliqueteur de fromage, mettons le, pas le stockage mais le scintillement de fromage là-bas et voir si lorsque nous cliquons dessus, si nous obtenons ou non une sortie de console. Donc, moi et rien ne se passe. Donc, c'est un peu bizarre. Pourquoi est-ce le cas ? Eh bien, il a dit qu'il avait besoin d'un collisionneur. Il y a donc deux façons de le faire. On peut soit ajouter un collisionneur ici, non ? Aller au collisionneur de boîte 2D Physics par exemple, ou un collisionneur de polygones. Ou on peut faire autre chose. Donc, je vais supprimer le script pendant juste une seconde ici. Et ce que je peux faire, c'est que je peux monter ici, mettre entre parenthèses et dire « require component ». Donc, cela dit fondamentalement, Hey, ceci, cette classe, partout où ce comportement moral est attaché à l'objet de jeu, nécessite aussi ce composant. Et puis je peux dire type de Collider qui plus léger trop profond. Et cela ajoutera ensuite un collisionneur dès que j'ai ajouté ce comportement moral au réel, à l'objet de jeu réel. Donc, ce que nous allons voir est si j'ajoute ceci maintenant, comme vous pouvez le voir, ajout d'un composant a échoué parce que nous avons besoin d'un encombrement de boîte ou de certaines de ces choses, et nous devons d'abord ajouter à cela. Donc, si nous allons maintenant ici et que nous allons prendre le collisionneur de polygones et cela va rendre fondamentalement le contour parfait ici pour que nous ne puissions pas vraiment cliquer à l'extérieur. On va juste le garder tel qu'il est et être d'accord avec ça. Et une fois que nous avons ajouté le collisionneur de polygone, nous ajoutons maintenant le cliqueteur de fromage, connaissons Era, et savons que tout fonctionne très bien. Donc, c'est essentiellement pour s'assurer qu' un certain script fonctionne réellement en utilisant ce composant require. Ok, essayons ça et voyons si quand je clique dessus, ça marche et ça le fait. Donc, si je clique dessus, comme vous pouvez le voir, une augmentation de fromage est imprimée, ce qui est vraiment bon. Donc, nous savons que le bas de la souris fonctionne. Maintenant, comme vous l'avez vu, il n'y a pas vraiment d'indication visuelle là-bas. Et ce qu'on va faire, c'est qu'on va redimensionner le fromage. Et pour cela, nous allons faire une nouvelle méthode privée ici, privé vide redimensionner le fromage. Et cela va prendre un vecteur 3, qui va être la nouvelle taille. Donc, l'idée ici étant que nous allons fondamentalement mettre un vecteur dans cette méthode et ensuite il va changer cette échelle locale égale nouvelle taille, nouvelle taille. Et nous allons le faire une fois au début ici, dès que j'ai commencé avec la souris vers le bas. Donc nous allons redimensionner le fromage en gros, eh bien, taille est en ce moment un, donc ce serait sa taille d'origine. Et puis nous allons dire quelque chose comme 0.9, par exemple. Cela serait réalisable. Et puis nous avons bien sûr besoin de cela pour grandir à nouveau. Sinon, ça ne marchera pas. Alors maintenant, nous pouvons utiliser l'autre méthode de la souris. Donc, ce sera sur la souris vers le haut. Et encore une fois, c'est une méthode courtoisie du comportement du modèle ici, nous allons redimensionner le fromage avec le vecteur trois points un. Donc, cela va fondamentalement le réinitialiser à sa taille d'origine 10, 11. Et cela devrait déjà fonctionner. Voyons si ça marche et nous obtenons un effet visuel cool ici. Ce que nous allons faire, c'est bien sûr que l'échelle va maintenant changer. Voyons si c'est vraiment le cas. Et c'est le cas. Si je le garde enfoncé, alors ça marche. Et dès que je relâche le bouton, cela fonctionne aussi bien. Maintenant que se passe-t-il ? Par exemple, si je devais me déplacer hors de vue de l'écran, comme vous pouvez le voir, cela fonctionne toujours assez bien. Je crois qu'il y a des moyens que vous pouvez probablement tromper le système. Je pense que si j'appuie maintenant, non, si j'appuie sur la touche Windows, cela fonctionne toujours très bien. Donc c'est vraiment sympa. Et puis maintenant, nous obtenons même une indication visuelle de cela. Bien sûr, vous pouvez toujours changer ce droit. Peut-être que tu veux que ça soit un peu plus subtil. Alors peut-être que vous voulez le changer comme un 95 pour cent de sa taille d'origine ou autre chose. Dans l'ensemble, je pense que ça va se passer. C' est vrai ? Ensuite, faisons ce qui suit. Réfléchissons vraiment à ça. Eh bien, maintenant, on veut que le stockage du fromage puisse stocker du fromage, non ? Il y a donc quelques choses que nous devons faire dans le stockage logiciel maintenant. Et pourtant, la première chose, bien sûr, va être un int privé appelé fromage, non ? Donc, ce fromage, voilà. Et ça va stocker combien de fromage nous avons. Faisons de cela un champ sérialisé afin que nous puissions réellement le voir à l'intérieur du constructeur aussi. Et puis nous allons faire quelque chose qui va bien, peut-être pas beaucoup d'entre vous le savez, mais ce serait un, c'est fondamentalement un modèle de conception C pointu, et ceci s'appelle le modèle singleton. L' idée est que nous avons ici une variable statique de stockage du fromage. On va appeler ça les Mets, appelle ça le magasin de fromage. Et ce sera toujours, eh bien, celui qui est à l'intérieur de notre jeu. Comment pouvons-nous assurer cela ? Eh bien, si le stockage de fromage, donc cette variable statique est égale à null. Donc, s'il n'y a rien écrit à l'intérieur, alors nous dirons simplement qu'elle est stockée. Donc, donc la variable statique à cela. Et cela assurera alors que numéro 1, il n'y a jamais qu'un seul stockage particulier qu'elle est disponible. Et puis aussi que nous pouvons accéder à cela depuis n'importe où, essentiellement en utilisant la classe. Donc, elle stockage, stockage, peut-être que le nom pourrait être changé dans l'ensemble, je pense que c'est bien. Son stockage va probablement se passer bien. Renommons réellement ceci afin que nous puissions appuyer sur Control R pour renommer ceci. Appelons cette instance de stockage de fromage parce que c'est en fait un meilleur nom pour cela. Et puis ce que je vais aussi ajouter, c'est aussi ajouter trois événements ici. Nous l'avons vu très prochainement à la fin de l'introduction en C. Donc nous allons d'abord faire un délégué, et cela va être appelé pour le changement de la quantité de fromage. Donc, c'est fondamentalement un délégué. Autrement dit, ils le sont si une quantité de fromage change et ensuite nous allons faire trois événements statiques. Donc statique public, événement statique. L' un d'eux est cool. Donc, tous sur le changement de quantité de fromage. L' un d'eux a appelé le fromage ajouté. Donc ce serait celui qui est appelé quand il y a plus qu'elle est ajoutée. Alors on va copier ça deux fois. L' un d'eux sur Elle est enlevée, disons que pourrait aussi être sur du fromage, soustrait, quelque chose comme ça. Et puis nous allons aussi en avoir un. Elle change, elle a changé, ils s'en vont. Donc idée étant que nous voulons appeler cela quand nous ajoutons un fromage, quand nous enlevons un fromage et cela va être appelé sur l'un ou l'autre de ceux-ci. Je dirais que c'est une fois de plus, comme je l'ai dit dans l'introduction C-Sharp sur les événements, vous n'avez vraiment pas de négatif sur l'ajout d'autres événements. Je pense que cela va bien se passer et qui sait ce que nous voulons ajouter plus tard là où nous pourrions avoir besoin de tous ces événements. C' est pour ça que je les ai ajoutés. Et oui, alors maintenant, réfléchissons à ce qu'on a besoin d'autre ? Euh, donc nous voulons, fondamentalement, si nous pensons à ça aux méthodes publiques cette fois, accord, qui peut être appelé et ce serait et elle est le taux. Donc nous sommes allés de quelque part pour ajouter un fromage avec une quantité particulière, bien sûr, non ? Donc, je pense que cela aurait du sens. Mais c'est comme un, Je veux une quantité particulière de fromage et cela est ensuite sauvé dans ce périmètre de quantité. Et ce qui se passerait, c'est que ce fromage à pois serait alors juste plus égal à la quantité. Mais c'est, devrait être assez facile à comprendre. Et puis bien sûr, nous voulons aussi appeler les événements ici. Et nous pouvons appeler ces événements avec une chose particulière et qui va être sur le fromage ajouté, par exemple, parce que leurs réalités, et si nous mettons dans un point d'interrogation invoquer et dire fromage, alors cette question marque s'assure essentiellement qu'il y a au moins un abonné là, sinon il ne se déclenchera pas. Donc, c'est fondamentalement la même chose que si je devais dire, si elle est ajoutée est inégale à null, puis dire sur elle a ajouté du fromage. Et je crois que si je fais ça, alors ça va dire, hé, on peut simplifier ça à exactement celui-là. Et comme vous pouvez le voir, c'est exactement la même chose. Eh bien, nous devons faire la même chose ici car elle a changé aussi. Et puis nous sommes heureux de cela. Nous allons simplement copier ceci et ensuite nous allons dire que ce serait des arbres enlevés. C' est alors qu'elle est négative. Et puis au lieu d'ajouter, nous avons supprimé. Maintenant, bien sûr, nous, dans ce scénario, nous pourrions enlever des arbres que nous n'avons pas. Pour que nous devions négatifs. Mais nous ne nous inquiétons pas pour le moment. En ce moment, nous allons juste ajouter du fromage de n'importe quelle façon avec le clic. Donc ça va se passer. Et maintenant, la dernière chose que nous devons faire est que nous devons, d'une manière ou d'une autre, demander que la méthode du fromage soit appelée fromages en service, petits et clicker, et puis nous allons bien. Et on peut le faire en allant simplement ici et en disant, eh bien, je sais que je peux avoir mon fromage. Faisons ça en bas juste ici. Je peux dire, par exemple, du fromage. Instance de stockage Dot. Donc, c'est l'instance. Donc, c'est fondamentalement la même chose que je serais obtenir si je devais faire le jeu dot trouver le stockage bon marché. Mais maintenant, parce que l'instance statique est enregistrée à l'intérieur de la classe elle-même, nous pouvons juste le faire comme ça au fromage et ensuite en dire un. Et dans l'espoir que cela fonctionne, que ce serait plutôt cool. Voyons voir, nous n'avons plus besoin du débogage. Et voyons si cela fonctionne réellement comme prévu. Ok, commençons ça et voyons tout d'abord, bien sûr, nous devons ajouter un entrepôt de fromage ici. Ce serait plutôt intelligent. Donc, elle est stockée. Et ajoutons ce stockage. Ici, ils y vont. Comme vous pouvez le voir, 0 arbre est actuellement dedans. Et espérons que cela augmente lorsque je clique dessus. Et c'est vrai, n'est-ce pas génial ? Donc ça augmente à chaque fois que je clique dessus et qu'on obtient, elle est comme, personne n'a jamais eu de fromage avant en cliquant simplement sur ce fromage sur une échelle ? Pas vu depuis. Je ne sais pas. Je ne sais pas quand ils ont commencé à faire du fromage, mais oui. Donc ce serait en fait pour le clic du fromage. Nous avons donc chaque saison que nous pouvons cliquer maintenant. Nous avons également un entrepôt de fromage où nous pouvons ajouter du fromage et enlever le fromage. Et maintenant, il s'agit vraiment d'ajouter quelques extras. Donc, l'un des extras que nous allons ajouter immédiatement est juste pour que nous puissions tester cela est de sorte de tricheurs. Donc, au lieu de la méthode de mise à jour de notre entrepôt de fromage, nous allons l'entrer, obtenir la clé vers le bas. Et puis il code point clavier. Je vais utiliser le clavier plus. Donc, le plus sur le clavier, ils sont généralement à droite de votre clavier. Ce qu'on va faire, c'est dire l'instance point ajouter du fromage. Disons environ 10 ans. On va juste y ajouter 10 fromages. Et puis on va copier ça. Et ce que je vais dire clé, clavier, garder à moins. Et puis nous allons simplement faire point enlever le fromage. Et ce serait 10. Maintenant, il est important que nous n'ayons pas à passer un nombre négatif ici. Nous voulons passer cela un nombre positif, que vous pourriez bien sûr aussi faire est de passer, ajouter du fromage, un nombre négatif. Et cela fonctionnerait aussi. Bien que, bien sûr, le fromage ajouté aurait une sorte de problème ici. Donc, ce serait quelque chose que vous pourriez ajouter aussi. Donc ce ne sera pas tout à fait solide, mais je voulais le mentionner. Donc, il est très facile de faire avec un si vérifier dans ce cas. Mais oui. Oui. Donc, ce serait vraiment tout. Voyons ça en action le plus et le moins afin que nous puissions fondamentalement ajouter et enlever des arbres ici sans cliquer sur le fromage. Alors, cliquez sur ceci quelques fois. Et puis disons d'abord le plus, puis je reçois 10 fromage immédiatement sans problème. Et je peux aussi enlever le fromage. Et si vous voyez ça, alors nous pouvons aller dans les négatifs sans problème ici. Ensuite, je peux revenir avec le plus, fondamentalement juste ajouter et enlever du fromage. C' est bon d'ajouter cette sorte d'argent juste à des fins de débogage afin que vous puissiez essayer. D' accord. J' ai besoin, si vous voulez ajouter quelque chose qui coûte à Sheets de faire, alors ce qu'on peut faire est simplement d'ajouter un tas de fromage. On est du stockage. Et puis nous allons aller bien et nous n'avons pas à attendre et cliquer comme 1000 fois jusqu'à ce que nous ayons 1000 fromages pour faire quelque chose. Et puis le nombre, bien sûr, peut également changer. Mais oui, ce serait tout pour cette conférence. Ajouter un fromage à cliquer, puis obtenir le fromage, stocker à l'intérieur de notre entrepôt ici. J' espère que vous avez trouvé cette conférence utile comme toujours, s'il y a des questions, n'hésitez pas à poser. Je serai sûr de répondre. Et oui. 68. (Léger de fromages) Créer des bâtiments à construire: Bon, continuons avec notre cliqueteur de fromage ici pour le cours de l'unité. Et dans cette conférence, nous allons ajouter la capacité de construire les bâtiments qui nous produiront du fromage sans que nous ayons à faire quoi que ce soit. Alors fromage passif, quoi de mieux ? Je ne sais pas. Alors réfléchissons à ça. Nous allons tout d'abord faire un nouveau dossier à l'intérieur de nos scripts ici appelé buildings. Donc, ce sera exactement comment sont tous les scripts dans lesquels nos bâtiments vont être. Et nous allons tout d'abord créer une nouvelle classe appelée Building. Donc construire là c'est, oui. Et ça va être une classe abstraite. Alors ouvrons ça et réfléchissons un instant à ça. Donc, tout d'abord, cela n'héritera pas d'un comportement mono. Donc, cette classe sera une sorte de, eh bien juste la classe de données. Tu pourrais y penser comme ça. Et nous allons également ajouter les bâtiments ici à notre espace de noms. Donc, tout cela sera à l'intérieur de l'espace de noms des bâtiments. Et le bâtiment va être une classe abstraite parce que nous ne voulons jamais un bâtiment spécifique. Nous voulons seulement les classes héritées. Donc à chaque fois qu'on va créer un nouveau bâtiment, on va le faire hériter de cette classe de bâtiment. Et alors réfléchissons à ça. De quoi avons-nous vraiment besoin pour un immeuble ? Quel genre de composants d'un bâtiment ? La première chose dont nous avons besoin, c'est un taux de coût. Donc, nous allons faire en sorte que cela ait des propriétés fondamentalement. Donc, nous allons avoir une base de coûts pour ces bâtiments civiques. Donc, c'est combien de fromage cela va coûter. Nous le ferons aussi, si je vais juste copier cette propriété, nous allons aussi avoir chacun des gains qu'il est. C' est tout simplement ce que nous gagnerons en termes d'arbres. Et puis nous aurons une propriété float ici, que nous allons appeler l'intervalle de temps. Et l'idée ici étant que le temps étant ici, l'idée ici étant que nous allons simplement avoir ce temps que vous avez ce gain de fromage à chaque intervalle de temps fondamentalement. Voilà donc les trois bases dont nous avons besoin pour un bâtiment. Peut-être que vous pouvez en trouver un peu plus. Mais pour l'instant, on va le faire comme ça. Et il y a aussi des événements auxquels je pensais. L' un des événements serait, tout d'abord, un délégué, un délégué public, nul. C' est simplement le gestionnaire de bâtiment avec un bâtiment spécifique. Donc construire, construire. Et puis nous pourrions avoir à des événements qui sont à la fois de gestionnaire de bâtiment. L' un d'eux est sur la construction, donc sur le bâtiment construit. Donc, c'est essentiellement quand nous construisons quelque chose et ensuite nous avons aussi sur la construction de flux de trésorerie que nous allons examiner. Donc, le flux de trésorerie est fondamentalement quand nous ajoutons le gain de fromage. Donc ce sont les deux événements que j'ai inventés. Bien sûr, il y en a probablement d'autres dont on peut penser, mais pour l'instant, je pense que cela suffirait. Et, et pensons juste à un peu plus de cette classe de bâtiment. Donc, nous allons avoir un constructeur protégé. Construire avec exactement ces trois propriétés ici. Donc le coût, nous allons avoir le gain de fromage et nous allons avoir l'intervalle de temps flottant. Et ceux-ci seront simplement définis sur exactement ces propriétés. Donc, ce coût de point est égal au coût. Ce gain de fromage à points est égal au gain de fromage. Et puis cet intervalle de temps est égal à intervalle de temps, intervalle de temps. Celle-là, ils y vont, d'accord. Et bien, tout va bien. Et bien, il y a encore une chose dont nous avons besoin, bien sûr, le flux de trésorerie abstrait public vide. Donc, c'est fondamentalement la méthode abstraite que chacune des classes héritées doit implémenter pour qu'elles soient comme des bâtiments appropriés. Parce que nous avons besoin essentiellement de ce flux de trésorerie pour être appelé à chaque fois. Eh bien, c'est exactement ce qui arrive. Donc, lorsque l'intervalle de temps est terminé, alors nous allons appeler cette méthode. Et chacun des bâtiments aura une méthode de trésorerie différente. Que ce soit de retour ou non, il suffit de retourner dix fromages, ou peut-être qu'il y a des parties différentes. Alors peut-être que vous avez des bâtiments différents. Et quand vous avez l'un de ceux-ci, l' un de la construction a et l'autre du bâtiment B, le genre d'influence les uns les autres ou plus tard dans la ligne lorsque nous créons des améliorations pour des bâtiments spécifiques que ces méthodes de trésorerie pourraient changer pour des bâtiments. C' est pourquoi c'est une méthode abstraite dans ce cas. Donc, je pense que dans l'ensemble, c'est une sorte de prêt final. Maintenant, pensons à deux autres choses. Peut-être que si nous construisons plusieurs bâtiments, alors nous voulons une sorte de modificateur par lequel le coût augmente. Et parce que nous avons stocké ou fromage dans une sorte d'IC, stockage comme un entier, nous allons probablement avoir ce soit un modificateur qui est aussi un entier. Et ça va être le modificateur de coût de deux. Donc, nous allons juste augmenter le prix deux fois, une fois que le bâtiment sera construit. Nous pourrions aussi vouloir une liste de tous les bâtiments. Donc, cela va être une liste statique de type un bâtiment appelé un bâtiment. Et cela sera accessible via deux choses spécifiques. L' un d'eux va être une propriété. Donc, nous allons avoir en fait une propriété statique appelée liste. Donc ça va être une liste de bâtiment appelé un bâtiment, Note de bâtiment. Maintenant, cela va être construit dans la construction des instances. Et cela va avoir un get ou un moyen d'obtenir les bâtiments. Et il va juste revenir comment les bâtiments. Cependant, cela bien sûr, il a un problème parce que peut-être c'est nul parce qu'il est ici, nous n'avons rien fait avec ça. Nous avons donc besoin d'un moyen de l'initialiser également. Et pour cela, nous allons faire une méthode de construction de liste statique privée. Donc ça va être des bâtiments, des bâtiments, ce qui est, nous allons appeler construire toutes les instances de bâtiment. Donc, l'idée est que nous allons toujours avoir une seule instance d' un bâtiment et ensuite l'ajouter à une liste à l'intérieur de notre entrepôt de fromage, par exemple. Donc plus tard, quand nous irons là-bas, nous aurons une liste de bâtiments qui sont construits ici. Et à l'intérieur d'ici, nous n'avons qu'une seule liste. Donc, ce serait le bâtiment de la liste. Le résultat est égal au résultat. Cette nouvelle liste correctement de construction, puis retour résultat. Et entre les deux, on va ajouter un bâtiment. Donc, chaque fois que nous ajoutons un nouveau bâtiment, nous ajouterions ce bâtiment particulier ici. Et alors, par exemple, et faisons aussi en sorte que si les bâtiments sont égaux à null, donc si les factures n'ont pas encore été définies, alors nous allons le définir en appelant simplement build toutes les instances de construction. Droit ? Donc, pour l'instant, c'est probablement une étape de complexité en ce moment. Maintenant, il y a des petites choses ici, et ce n'était pas juste, disons, choisi à un caprice. Bien sûr, il y a beaucoup de réflexion là-dedans, disons. Et maintenant, on pourrait y penser, y penser comme ça. Nous avons le bâtiment de classe abstrait et nous pouvons alors avoir une liste de bâtiments. Donc, si nous avons alors, par exemple, un clicker, nous allons faire un bâtiment de clicker qui clique automatiquement. Disons. La plupart d'entre vous ont probablement déjà joué Cookie Clicker. C' est fondamentalement la première, mais la première chose que vous pouvez faire là-bas. Et ce cookie Clicker bâtiment, fondamentalement, nous allons ajouter via un nouveau. Donc nous allons faire une nouvelle classe, avoir cet héritage de la construction. Et puis nous allons ajouter ceci à cette liste ici. Et puis nous avons une instance de ceci et nous n'utiliserons jamais de nouveau clic que j'obtiens. Donc, c'est fondamentalement, nous aurons une instance ici et ensuite passerons toujours ces instances à une liste que nous allons faire plus tard dans la ligne à l'intérieur de notre stockage CI. Et comme le stockage du fromage sera alors fondamentalement besoin d'appeler ensuite le flux de trésorerie de chacun des bâtiments que nous avons donné au stockage du fromage. Et puis nous obtiendrons nos profits au fromage, disons. Alors. Allons, alors faisons juste un nouveau bâtiment ici. Donc, créons une nouvelle classe appelée le clicker. Et ouvrons ça. Assurez-vous que cela est également sous les bâtiments. Et puis cela héritera en fait de la construction ici. Et la première chose que nous pouvons voir, bien sûr, ce sont des correctifs potentiels. Donc implémenter la classe abstraite. Nous devons donc mettre en œuvre cette méthode de trésorerie, bien sûr, sinon cela ne fonctionnera pas. Droit ? Et ce qu'on va faire, c'est qu'on va faire ce qui suit. Donc à chaque fois que ce flux de trésorerie l'est. Froid. Ce qu'on va faire, c'est juste dire le stockage du fromage, instance de stockage des points ci, ajouter un fromage en ce moment. Donc nous allons rendre ça très, disons, facile à faire comme ça. Et puis nous allons aussi faire est de construire des cashflow. interrogation invoqué. Et puis cela, parce que c'est le bâtiment qui reçoit essentiellement ce flux de trésorerie. Et nous avons également besoin d'un, nous avons besoin d'une lecture exactement le paramètre no à l'intérieur du constructeur. Nous avons donc besoin d'un nouveau constructeur ici. Donc clicker public avec le coût, le, désolé, le gain entier de fromage, elle est gain et l'intervalle de temps flottant. Et ce qu'on peut faire maintenant, c'est qu'on peut juste mettre un deux-points ici appelé base. Donc, cela va appeler l'intervalle de temps de base. Intervalle de temps ils vont, Cela va appeler le constructeur de base pour le bâtiment réel. Donc à l'intérieur d'ici, on n'a pas besoin de faire autre chose. Et ce serait le bâtiment, comment je le construirais. Bien sûr, il existe de nombreuses façons de le faire différemment. Ainsi, par exemple, au lieu d'appeler l'instance de stockage CI ici, immédiatement, nous pourrions renvoyer un entier avec le flux de trésorerie généré par ce bâtiment. Donc, ce n'est pas la seule façon que vous pouvez le faire par n'importe quel moyen. Comme s'il y avait probablement, je veux dire, 1000 voies pour Rome en gros. Donc toutes les routes mènent à Rome. Il est incroyable combien de façons vous pouvez faire cela n'est qu'un exemple de cela. Et voyons voir. Si on retourne au stockage CI. Fondamentalement, nous voulons maintenant une liste des bâtiments qui ont été construits. Alors créons une nouvelle liste ici. Alors faisons de cela une liste privée de type bâtiment. Donc, nous devons maintenant utiliser un bâtiment de bâtiments. Nous pouvons aussi simplement utiliser les bâtiments de données cliquantes de She. C' est probablement un peu plus facile maintenant. Et nous pouvons utiliser toutes les classes là-dedans. Et ça devrait être aussi bien. Droit ? Faisons tous les bâtiments. Alors faisons tous les bâtiments construits. Oui, faisons-le. Et nous allons initialiser cela au lieu de la méthode start. Donc, tous les bâtiments construits équivaut à une nouvelle liste de bâtiments, sorte que cela est initialisé. Et puis nous pouvons fondamentalement ajouter à cette liste particulière. Une fois que nous avons un, eh bien, une fois que nous construisons un bâtiment, maintenant pour cela, nous avons bien sûr besoin d'une nouvelle méthode. Je vais juste appeler ça un vide public. Construire, construire, construire. Voilà, tu y vas. Avec une instance d'un bâtiment particulier. Donc, construire un nouveau bâtiment. Construire à ce stade semble déjà un mot très intéressant. Mais je pense que c'est bien. Et maintenant il y a quelques choses que nous devons faire, non ? Alors pense à ça, ok, qu'est-ce qu'on doit faire pour construire un immeuble ? Eh bien, nous devons voir, voir si possible, non ? Donc c'est la première chose que nous devons faire et ça devrait être, eh bien, ça, nous avons seulement besoin de voir, ok, le coût du bâtiment réel devrait être inférieur à la quantité de fromage que nous avons. Donc, ce que nous pouvons faire, c'est si le coût du nouveau point de construction est fondamentalement plus petit ou égal au fromage que nous avons. Alors on peut construire. Donc, c'est fondamentalement ressembler à ceci. Voilà, construisez. Et si ce n'est pas le cas, alors on peut dire quelque chose comme ne pas construire quelque chose comme ça, non ? Et donc, oui, j'espère que ça a du sens. Donc, l'idée est que si le bâtiment coûte plus cher, ou dans ce cas, coûte moins cher que le fromage que nous avons ou est égal exactement au fromage que nous avons, alors nous pouvons le construire. Sinon, on ne peut pas. Bien sûr, nous devons aussi soustraire cela. Donc il y a un peu d'adhésion peut-être que nous pourrions. Je veux dire, fondamentalement, la seule chose qu'on doit faire est de dire, d'accord, enlever le fromage. Alors, enlevez le fromage à la hauteur du coût du nouveau bâtiment, n'est-ce pas ? Donc, nous enlevons simplement le fromage avec exactement combien le coût de construction. Ensuite, nous voulons bien sûr ajouter ce bâtiment. Donc, tous les bâtiments ou les bâtiments de construction ajoutent maintenant un nouveau bâtiment. Donc, cela devrait en fait construire l'ego. Nous allons donc ajouter ce bâtiment donné avec cette méthode et ajouté dans nos listes ici. Et ce qu'on va faire, c'est faire ce qui suit. Nous allons essentiellement utiliser quelque chose que nous n'avons pas encore vu auparavant, qui est une co-routine. Et ce sera en fait assez simple. Donc, nous allons enlever les arbres. Nous avons ajouté le nouveau bâtiment, et maintenant nous devons être en mesure d'avoir cela d'une manière ou d'une autre. Avoir l'intervalle de temps, vérifier et ajouter à notre fromage équilibré, pour ainsi dire, écrire. Et la façon dont nous pouvons le faire c'est que nous allons définir un énumérateur a, un œil. Je vais t'expliquer rapidement après que nous ayons fait ça. C' est donc une visite que j'énumère. Donc celui-ci, ici, nous allons appeler ça le flux de trésorerie du bâtiment avec un bâtiment particulier à l'intérieur de votre bâtiment comme paramètre. Et ce qui est génial à propos de ce numérateur ionique c'est qu'on peut faire quelque chose qu'on appelle un rendement. Retour. Et puis on peut faire un nouveau poids quatre secondes. Et c'est le truc vraiment cool. Nous pouvons donc attendre un certain nombre de secondes. Donc, cette méthode prend un flotteur pendant des secondes. Et ce que nous pouvons faire maintenant, c'est parce que nous lui donnons un bâtiment. On peut dire l'intervalle de temps des points de construction. Donc, il va attendre exactement par l'intervalle de temps du bâtiment donné ici. Et puis après cela est fait, donc si après cela est fait, alors il va continuer avec cette méthode. Donc ça va attendre ici. Dans cette méthode particulière, tout le reste va toujours fonctionner, donc c'est en quelque sorte en parallèle. Cela va attendre les secondes ou plus. Et une fois ces choses terminées, cela va continuer. Donc, nous allons dire que c'est construire des points de trésorerie en fait. Cashflow ils vont. Et parce que cela ajoute le fromage, comme je l'ai dit, dans ce cas, nous pourrions aussi simplement retourner un entier et ajouter le fromage ici. Les deux fonctionneraient. On va le faire comme ça pour l'instant. Et c'est tout à fait bien. Et à la fin de tout ça, parce que ce qu'on va faire, c'est qu'on ne l'appellera qu'à l'intérieur de lui-même. On va appeler ça une autre fois. Donc, ce serait, c'est la méthode de co-routine de départ. Et à l'intérieur, nous appelons simplement bâtiment de trésorerie. Et cette chose exacte que nous voulons mettre ici aussi. Donc, c'est un comportement mono. C' est bien sûr un nouveau bâtiment. Maintenant, l'ego. Qu' est-ce qu'une sorte de co-routine dans ce que nous disons ? Donc, l'idée d'une coroutine est que nous avons vu ceci, la méthode invoke à avant. Cela faisait partie du comportement du modèle. Et la méthode invoke nous a permis d'appeler une méthode particulière un certain nombre de fois, vous savez, toutes les x secondes, pour ainsi dire. Et la coroutine est quelque chose de très similaire à cela. Au lieu d'une co-routine, si c'est une sorte de, vous pouvez penser que c'est une sorte de méthode asynchrone qui peut attendre une seconde particulière. Et puis nous pouvons aussi, si nous jetons un oeil à ce rendement retour nouveau poids pour la fin de la mise à jour fixe. Nous pouvons attendre jusqu'à, nous pouvons faire attendre un certain temps, puis aussi avec des secondes en temps réel. Donc il y a quelques choses que nous pouvons faire avec ça. ce moment. On va l'utiliser en gros, deux vont générer notre flux de trésorerie. C' est aussi quelque chose qui pourrait être fait à l'intérieur du bâtiment lui-même. Donc, nous pouvons ajouter ces flux de trésorerie débordant à l'intérieur du bâtiment lui-même et a commencé là dedans. heure actuelle, nous avons ajouté ici, et je pense que cela va également se passer. Nous allons également faire un avertissement de journal de points de débogage. Je ne peux pas construire parce que pas de fromage. Donc c'est juste un petit message ici. On sait que, hé, on ne peut pas construire ce bâtiment. Donc, dans l'ensemble, je crois que ce devrait être essentiellement tout ce que nous devons faire pour construire ce bâtiment. Maintenant, il y a encore quelques choses que nous devons ajouter. Donc numéro un, bien sûr, nous devons ajouter que l'instance ici. Donc, à l'intérieur de notre résultat, ajoutez un nouveau clicker. Donc, ici, nous allons ajouter un nouveau clicker. C' est la seule fois que nous appellerons ce nouveau clicker ici. Et puis nous voulons ajouter cela avec un coût particulier, gain de fromage et un intervalle de temps. Donc, disons juste que cela coûte 10 et il gagnera un nouveau fromage par seconde. C' est donc ce que cela signifie dans ce cas. Donc le coût est de 10. 10, nous avons le gain serait d'un par seconde par 1 seconde. Faisons-le comme ça. Oui, ils y vont. Et bien sûr, c'est personnalisable. Vous pouvez penser à cela parce que, bien sûr, cela doit être ajusté pour l'équilibre, par exemple, n'est-ce pas ? Si vous avez plusieurs bâtiments, alors peut-être qu'ils veulent lancer différents et leur gain pourrait être différent aussi. Et c'est essentiellement là que vous feriez, dans notre cas ici, la façon dont je l'ai construit et la façon dont vous le construirez probablement. C' est comme ça qu'on le fait ici. Bien sûr, encore une fois, il y a un million de façons de le faire. Et il y a une dernière chose que nous devons faire parce que instant, nous avons juste le coût et nous ne le modifions pas. Il y a donc plusieurs façons de le faire. On peut dire, eh bien, on peut le changer ici, ou on pourrait avoir une autre méthode ici. Faisons en fait ce qui suit. Ajoutons en fait un int privé cos, plutôt de cette façon, vous y allez. Coût privé. Oui, exactement. Et puis nous allons, au lieu d'un immeuble qui change le coût ici, en fait, nous pouvons changer la constante, c'est bon. On va changer un peu cette propriété. Donc ça va être un coût de retour, n'est-ce pas ? Donc, nous allons juste vous rendre un coût ici. Et seulement le réglage, ce que nous allons faire, c'est dire que le coût est égal à la valeur. Donc, c'est juste pour que nous ayons une variable privée supplémentaire ici. Et ensuite, on peut changer celui-ci. Donc, ce que nous pouvons faire est maintenant ajouter une nouvelle méthode ici qui va être publique, entier public, obtient le coût et augmenter le coût. Appelons ça comme ça. C' est très bien. Donc ce qu'on va faire, c'est que le coût sera égal aux coûts réels ici, et qu'on reviendra ensuite. Et exactement, Donc nous gardons ça avant de l'augmenter. Ensuite, nous allons dire, nous pouvons dire que le coût est égal à, nous pouvons juste dire fois égal au modificateur réel, modificateur. Ils y vont, c'est ça. Et puis, si nous appelons ceci, nous obtenons tous les deux le coût et aussi il augmente. Alors faisons cela à l'intérieur du stockage dans une sorte de stockage de fromage au lieu d'ici, il suffit de dire enlever le fromage par le temps du coût. En fait, nous allons dire du temps, obtenir des coûts et augmenter les coûts aussi. Droit ? Comme vous pouvez le voir, il y a beaucoup de choses qui se passent ici. C' est un peu, mais un pas à la fois, et je pense que ça ira. Donc, pour l'instant, ce que nous allons faire, c'est simplement ajouter un, une contribution où nous pouvons fondamentalement construire ce bâtiment. Et puis nous allons faire un nouvel objet de jeu que nous pouvons, nous pouvons cliquer. Mais en ce moment, nous allons simplement ajouter un code clé fondamentalement. Donc, ce serait un code clé. Voyons, disons pour Clicker bien sûr. Et quand on appuie sur ça, vois, est-ce qu'on veut arriver ? Eh bien, nous voulons que ce bâtiment soit construit, qu'on appelle fondamentalement et qu'il nous faut maintenant un bâtiment là-bas. Ok, laisse-moi réfléchir à ça. D' où peut-on trouver ce bâtiment ? Eh bien, nous avons une liste de bâtiments ici, non ? Et puis nous ajoutons à cela, et c'est statique publique. Donc, en théorie, si nous pensons à cela, nous devrions être en mesure d'accéder à cette liste de toutes les instances. Et nous savons que le clicker en ce moment est la première instance. Donc, ce serait basique ou le premier bâtiment à l'intérieur de cette liste. Donc, cela devrait être faisable en faisant un bâtiment. Donc c'est le point de classe. Et puis nous avons des instances de construction. C' est la liste. Et puis j'obtiens juste celui à l'index 0. Donc, cela retournera exactement cette classe ici que nous avons créée. Et si tout fonctionne, alors c'est le clicker et le coût sera, eh bien, dix. Si on a ces dix fromages, on va le construire. Et puis il va supprimer ça, augmenter le coût de ce bâtiment. Nous allons ajouter ceci à notre liste de bâtiments. Et ensuite, nous allons commencer la co-routine de trésorerie, qui va courir chaque seconde dans notre cas. Espérons que ça marche et que ça fasse ce que nous voulions faire. Il y a beaucoup de choses comme beaucoup de pièces entrelacées dans ce cas. Et oui, je suppose qu'on peut juste commencer et essayer ça. Donc la première chose que nous faisons est bien sûr que nous avons maintenant un fromage 0. Et si j'appuie sur la touche C, on s'attendrait à dire, Hey, je ne peux pas construire un bâtiment parce que je n'ai pas assez de fromage. Alors voyons et ne pouvons pas construire parce que noeud fromage. Donc c'est plutôt bon et elle n'augmente pas seule. Donc je peux maintenant appuyer sur la touche plus et je me ramène dix fromages ici. Et maintenant, le gros est, est-ce que ça marche ou ça ne marche pas ? Donc j'appuie sur C et bien, il a diminué le nombre de fromages que nous avons. Et comme vous pouvez le voir maintenant, notre fromage augmente d'un par seconde. Maintenant, la grande chose est que gagner avant cela. Eh bien, en fait, c'est juste enlever notre dix Jésus à nouveau avec la clé moins. Et si je vois encore maintenant, comme vous pouvez en voir deux, donc je n'ai pas assez d'argent maintenant ou assez de fromage maintenant à dix ans, je devrais en avoir assez. Mais comme vous pouvez le voir, ça ne marche pas parce que je modifie notre droit augmenté, donc maintenant ça coûte 20 fromages et si je l'appuie maintenant, comme vous pouvez le voir, il l'a construit et maintenant nous arrivons au fromage par seconde, parce que maintenant nous avons deux ces clickers, cliquez sur chaque seconde. Chacun de nous nous donne un fromage par seconde, non ? C' est génial. Ça a vraiment fonctionné. Je veux dire, tout à fait bien. Comme vous pouvez le voir très clairement, nous pouvons avoir plusieurs bâtiments du même type. Et maintenant ajouter un bâtiment, et c'est fondamentalement ce qui est l'une des choses les plus importantes quand vous faites quelque chose comme ça, vous devez toujours penser à votre capacité à ajouter plus de choses que vous voulez ajouter , n'est-ce pas ? Donc le problème habituel pourrait être, eh bien, nous pourrions rendre ça fou compliqué. Et pour certains d'entre eux, pour certaines des idées. Si vous voyez ça la première fois, vous pourriez être comme, Wow, c'est vraiment beaucoup à la fois et je ne suis pas en désaccord. C' est peut être beaucoup au début. Mais étape par étape, si vous pensez à chacune des parties individuelles qui ne sont pas si compliquées, juste pour assembler, ils peuvent créer quelque chose qui est en fait assez complexe. Et oui. Maintenant, comment ajouterais-tu un nouveau bâtiment si tu étais à ce stade, comment ajouterais-tu un bâtiment ? Tu as juste besoin d'un nouveau cours ici, non ? Donc, nous pouvons vraiment le faire juste pour des arguments, juste pour qu'une fois que vous avez une sorte de terrain avec des choses fondamentales mis en place, comme il pourrait être facile d'ajouter un bâtiment. Alors faisons un nouveau bâtiment et on va appeler ça la station de traite. Parce que je veux dire, c'est ce que j'ai trouvé. Je suppose que c'est la meilleure explication que j'ai. Ceci bien sûr, encore une fois, à l'intérieur de l'espace de noms des bâtiments et ce sera un bâtiment. Et ce qui est génial maintenant, c'est que, eh bien, on peut en quelque sorte juste le clicker ici, juste pour un instant. Ce sera bien sûr la gare de construction ici. Et le cashflow, fondamentalement exactement le même, mais peut-être que nous voulons un autre nombre de fromage ou c'est aussi une chose intéressante. J' en ai ajouté un ici. Cela devrait être ce point. Elle a gagné. Ce n'est pas comme si ce n'était pas un problème qui peut se poser, mais c'est très bien. Et puis à l'intérieur d'ici, nous ferons la même chose, cette.tab gain de fromage. Et c'est déjà ça. Donc c'est numéro un, étape 1, étape 2, en ajoutant ceci ici pour que nous puissions copier ceci et dire station de traite. Et puis on a juste besoin de savoir, d'accord, combien ça va coûter, combien allons-nous obtenir par seconde ? Donc, disons que cela coûte 25. Et dans ce cas, ce que nous allons obtenir, c'est, disons que nous allons avoir cinq fromages, mais seulement toutes les deux secondes. Alors on peut dire que le coût est de 25 à 50, cinq fromages toutes les deux secondes. Donc, bien sûr, c'est en fait une meilleure valeur dans le premier cas par rapport au clicker. Mais oui, c'est plutôt bien. Mais bien sûr, vous devez 25 fromages pour le construire. En théorie. Si nous ajoutons maintenant une nouvelle sorte de clé que, afin que nous puissions la construire. Alors faisons-le ici. Maintenant, nous savons que l'instance il y en a un. Cela bien sûr, pourrait aussi être un, cela pourrait aussi être un dictionnaire, non ? Où vous, au lieu de le faire avec l'intérieur, avec les indices, vous pouvez le faire avec une énumération. Donc, vous auriez l'énumération d'un bâtiment et avoir chacun des bâtiments là-dedans ainsi et pourrait y accéder comme cela fonctionnerait tous. La même idée en gros. Donc maintenant, si j'appuie sur M, j'envisagerais de construire une station de traite maintenant. droite. Voyons si on peut vraiment faire ça. Et oui, c'était tout pour avoir ajouté le nouveau bâtiment. Si vous voulez que des choses spéciales se produisent avec ce bâtiment particulier , bien sûr, alors c'est un peu plus compliqué. Mais en ce moment, cela devrait fonctionner. Voyons donc si cela fonctionne réellement. Tout d'abord, en appuyant sur la touche M , je n'ai pas assez de fromage pour ça. Alors nous allons obtenir 30 fromage et puis je vais appuyer sur l'ensemble vide a soustrait 25. Elle l'est, et comme vous pouvez le voir, toutes les deux secondes, on va prendre cinq fromages. Donc, cela fonctionne parfaitement bien aussi. Et c'est vraiment sympa. Bien sûr, nous n'avons pas encore d'indicateurs visuels. Nous n'avons pas vraiment d'interface utilisateur parce que nous ne le sommes pas en fait, nous n'avons pas vraiment parlé de l'interface utilisateur. Nous pouvons penser à ajouter juste une sorte de texte simple bien sûr, parce que nous avons vu l'ajout de textes simples, cela, cela fonctionnerait. Mais dans l'ensemble, cela fonctionne déjà. Donc, si je perçois un tas de fois maintenant, maintenant ça ne marche plus parce que maintenant ça me coûte en fait comme 80 je pense déjà parce que j'en ai construit trop. Et maintenant, comme vous pouvez le voir, le fromage arrive comme ça sans même faire quoi que ce soit d'autre. Donc c'est plutôt sympa, c'est plutôt bon. Et oui, ce serait tout pour la conférence sur la façon d'ajouter des bâtiments. Encore une fois, c'est une sorte d'une des façons de le faire. Je veux dire, il y a probablement 1000 autres façons de le faire. Mais je suis en fait assez heureux parce que c'est très extensible. Et vous pouvez étendre cela. Bien sûr, il y a peu de choses que vous pouvez ajouter, surtout un de plus ou quelques bâtiments de plus par vous-même. Mais oui, c'était tout pour cette conférence. La prochaine fois, nous allons ajouter un objet GameObject lequel nous pouvons cliquer pour construire nos bâtiments. Et c'est quelque chose que nous sommes plus tard. Je vais ensuite me transformer en une interface utilisateur. Donc, nous allons ajouter quelques choses ici. Prochaine conférence. Et oui, mais c'était tout pour cette conférence. J' espère que vous l'avez trouvé utile s'il y a quelques points où cela a été un peu déroutant parce que nous avons sauté un peu de classe en classe et ainsi de suite. Alors n'hésitez pas à, numéro un, je dirais tout d'abord, vous savez, ce qui devrait encore, peut-être y penser un peu. Regarde la classe. Si vous le téléchargez ou si vous avez programmé simultanément, alors peut-être regarder un peu, essayez de comprendre chacune de ces étapes et chacune des méthodes que nous avons implémentées et réfléchissez comme ça. Et si des questions restent, bien sûr, n'hésitez pas à poser et je serai sûr de répondre. Et oui. 69. (Cheese Clicker) Créer un UI de base pour créer des Clicker) bâtiments: Bon, continuons avec le cliqueteur de fromage ici pour le cours de l'unité. Dans cette conférence, nous allons ajouter une interface utilisateur très simple, ainsi que la possibilité d'ajouter les bâtiments via un clic sur un objet de jeu. Et ces objets de jeu vont être des éléments d'interface utilisateur, principalement des boutons. Et ils vont bien alors juste fonctionner d'une manière où nous pouvons cliquer sur chacun d'eux pour chacun des bâtiments que nous avons. Et ils frayeront ensuite essentiellement dans un bâtiment. Et ils changeront aussi. Ainsi, ils afficheront essentiellement le coût et aussi combien de bâtiments il y a, chaque type particulier. Et nous aurons aussi un texte qui indique la quantité de fromage que nous avons à l'heure actuelle. Donc fondamentalement h, il est contre, vous pourriez dire, premièrement, nous voulons l'interface de stockage du fromage, fromage. Donc personnellement, je termine toujours mes scripts d'interface utilisateur avec l'interface utilisateur. Et puis au début, quoi qu'ils soient. Et cela va être cheese decker vous, je bien sûr, comme en termes d'espace de noms, nous allons également utiliser Unity moteur dot IM pour cela. La première chose dont nous avons besoin est un texte privé. Tenez du fromage. Disons juste, voir, je peux obtenir des textes de stockage. Voilà, tu y vas. C' est un, c'est une bouchée, un aller. Et ce sera tout simplement en arrivant ici. Donc, ce sera si le texte de stockage de fromage est nul, alors nous allons juste définir le stockage lié à ce point get texte du composant. Nous allons donc utiliser le composant Get sur ce script lui-même. Et puis il obtient simplement le composant de l'objet de jeu de type texte auquel ce script particulier est attaché. Et puis nous irons au point de stockage du fromage sur la quantité de fromage. Donc elle a changé. Donc, c'est l'idée. Si le fromage change, alors nous allons appeler une méthode particulière. Ce sera juste la méthode de changement de numéro. Ça va l'appeler. Nous n'avons pas besoin de la méthode de mise à jour ici sur ce vide privé de convoyeur. Changer un nombre avec un nouveau montant parce que c'est exactement la signature de la méthode dont nous avons besoin pour la quantité de fromage de changement délégué ici. Et ce que cela va simplement faire est qu'il obtiendra les textes de stockage de fromage, des textes égaux à la nouvelle quantité qui est toString. Nous allons donc simplement changer le texte ici chaque fois que le fromage change. C' est pourquoi j'ai dit que c'est une bonne idée d'ajouter ces événements que vous ne savez jamais quand vous en aurez besoin. Bien sûr, vous pouvez toujours les ajouter plus tard dans la ligne également. Cependant, dans ce cas, ça va se passer. Donc, pensons à cela, en ajoutant un élément d'interface utilisateur ici. Donc, un clic droit à l'intérieur de notre interface utilisateur de hiérarchie, puis un texte. Ensuite, bien sûr, nous devons changer la toile une fois de plus pour l'écran de la caméra spatiale et faire glisser la caméra principale ici. Et puis notre texte est en panne. Ils sont très petits et on va le rendre un peu plus grand. Et puis aussi faire le texte réel un peu plus grand, quelque chose comme peut-être 50. Ah, c'est beaucoup trop petit. A 120, j'adore ça. Et nous aurons en fait deux textes, donc nous dupliquerons ce Control D. Ce sera l'étiquette du fromage, disons. Et ce ne sera que du fromage. Et puis l'autre est le texte de stockage du fromage. Ouais, c'est bon. Ça va être un 0 pour l'instant. Et puis nous allons aussi rendre ça un peu plus agréable. Donc on va faire quelque chose comme ça. C' est le texte du fromage. Voilà, tu y vas. Et puis celui-ci peut aussi être un peu plus petit. Ils y vont, non ? Donc maintenant, nous avons ceci. Nous allons aussi faire ces deux blancs juste pour que nous puissions voir cela un peu mieux. Oui, je pense que c'est bon. Et puis si c'était oui, alors cela fonctionne assez bien. Et pour ce texte de stockage de fromage C, nous allons simplement ajouter le script d'interface utilisateur que nous avons fait ici. Voilà, tu y vas. N' est-ce pas un avocat ? Eh bien, voyez l'ego. Il ouvre toujours le matériau. Ils sont une sorte de bruit d'un coup. D' accord. Elle est stockée pour moi est maintenant là. Et cela devrait déjà fonctionner très bien parce que nous avons ajouté cet événement. Et parce que cela fonctionne via l'événement, tout devrait fonctionner immédiatement. C' est, comme je l'ai dit, les délégués sur les événements vraiment utiles pour l'extensibilité de votre projet. Donc, ajouter cela a été assez facile. Voyons donc si cela fonctionne réellement. Donc, si je clique sur ceci, comme vous pouvez le voir, il augmente à deux. Je peux aussi tricher. Donc, si j'appuie sur le plus et le négatif, cela fonctionne aussi. Et si je devais maintenant, par exemple, ajouter un clicker en appuyant sur C, cela soustrait cela. Et maintenant chaque seconde, il mettra à jour votre aussi bien. Et c'est beaucoup mieux que d'avoir cela dans une sorte de méthode de mise à jour où vérifie chaque image. Parce que nous n'avons pas besoin de changer l'interface utilisateur de chaque trame car elle ne change pas chaque trame. Et c'est en quelque sorte l'idée que cet événement, l'événement, un système délicat dans ce cas, est comme incroyablement supérieur à tout ce que nous pourrions mettre en œuvre dans ce cas. Droit ? Et maintenant, nous voulons essentiellement jouer des objets sur lesquels nous pouvons cliquer au lieu d'appuyer sur C et d'appuyer sur M pour créer de nouveaux bâtiments que vous écrivez, nous allons en fait créer une véritable interface utilisateur pour cela dans ce cas. Donc je vais en quelque sorte prendre un peu l'avenir de ce que nous allons voir un peu plus tard. Donc certaines de ces choses ne sont peut-être pas compréhensibles à 100 %, mais j'essaie de les expliquer le mieux que je vais. Donc, la première chose que nous voulons est que nous voulons quelque chose qui s'appelle une interface utilisateur de construction. Donc, cette interface utilisateur du bâtiment va essentiellement être la classe qui va en quelque sorte, cela fera en sorte que nous sachions, ok, Quel type de bâtiments avons-nous et que nous pouvons construire ? Et il permettra également d'activer et de désactiver certaines choses d'être construit en fonction du coût. Donc, pour ça, nous avons des boutons. Il y a donc un moyen très facile de le faire. Nous allons ajouter quelque chose à notre Canvas. Donc, faites un clic droit sur l'interface utilisateur et puis nous allons ajouter un panneau ici. Le panneau est juste une sorte d'arrière-plan et nous allons ajouter ceci sur le côté ici. J' aime ça. Et ensuite, nous allons avoir à ce panel. Nous allons ajouter assez dingue un autre panneau et le rendre un peu plus petit ici. Donc je pense que c'est bien. Ce serait le panneau des bâtiments. Et c'est alors un panneau de construction. C' est donc le panneau d'un bâtiment particulier dans ce cas. Et nous allons aussi ajouter quelques atouts ici. J' ai donc un cliqueteur, j'ai une vache pour la station de traite, et j'ai aussi un baril pour quelque chose d'autre que nous pourrions vouloir ajouter. Voici les barils. Voyons voir ici. Donc, nous avons les barils un que nous voulons réellement environ 500 pixels ici, sorte qu'ils sont un peu plus petits aussi, bien sûr pas électronique bi-linéaire, très bien, je pense que c'est assez grand. La vache et le cliqueteur. Donc, le compte clicker devrait être 150. Et gardons le linéaire aussi bien parce que c'est assez grand et le clicker qui est 250 et c'est certainement point. Pas de compression. Oui. Maintenant, on peut penser à ça. Ok, c'est un panneau pour un bâtiment particulier. Et nous pouvons aussi penser à cela comme un bouton. Donc, nous voulons fondamentalement faire cela un bouton que nous pouvons cliquer et ensuite avoir ce bien construit ou construire si cela est possible. Donc en ce moment, ce n'est qu'un panneau, mais nous pouvons simplement aller à Ajouter un composant, aller à vos yeux et ajouter un bouton. Et maintenant ce serait un bouton. Et cela peut décliquer, faire quelque chose de spécifique. Et ça va faire tout ce qu'on lui dira de faire. Mais nous ne voulons pas ajouter cela manuellement. Nous voulons ajouter ceci avec 0. Nous ne pouvons pas manuellement, mais nous voudrions probablement ajouter ceci avec le script réel. Dans ce cas, nous allons ajouter ceci manuellement, donc nous allons appeler ceci un autre script. Appelons donc cela l'interface utilisateur de construction. Donc, il y a beaucoup de scripts différents, encore une fois que nous avons besoin, En fait, fermons de quelques-uns ici en ce moment parce que nous n'avons pas vraiment besoin de ceux pour le moment. Et cette interface utilisateur de construction va essentiellement être celle qui détermine, ok, quoi, ce qui se passe ici, quel bâtiment est construit. Et on peut faire quelque chose comme ça. On peut en gros donner un coup d'envoi. Faisons en fait ce qui suit. Alors faisons ça. On peut juste dire public, construction vide. Et cela va obtenir un, un index particulier ici. Et cela fera simplement ce qui suit. Donc, nous allons ajouter, simplement dire instance de point de stockage de fromage. Donc nous allons obtenir l'instance de l'entrepôt de fromage et ensuite nous avons le bâtiment de construction ici. Et bien sûr, nous devons lui donner un nouveau bâtiment. Mais nous pouvons le faire, tout d'abord, allant ici en utilisant les bâtiments à points cliquables de Elle. Aussi. Juste en s'assurant que c'est sous l'interface utilisateur afin que nous ayons tout propre et bien rangé. Et puis à l'intérieur d'ici on peut juste dire un bâtiment. Instances de construction de points. Index, ils y vont. Nous pouvons donc spécifier un index particulier d'un bâtiment qui devrait être construit à l'intérieur de l'instance de stockage de clé. Donc c'est exactement la même chose. Si nous regardons notre entrepôt de fromage une fois que cela a été rechargé, nous pouvons voir que c'est exactement ce que nous avons fait ici. On vient d'appeler ça dans un autre script. C'est tout ce qu'on a fait. Et puis aussi les instances de construction qui, c'est en fait tout ce que nous faisons vraiment ici. Et nous le faisons avec ce panel particulier. Donc, puis ce que nous faisons est que nous avons ajouté cette interface utilisateur de construction à ce panneau ici. Une fois que cela est réellement ajouté, Voyons voir. Voilà, tu y vas. Maintenant, c'est là. Et puis on peut faire ce genre de champ d'onclick ici. Si nous appuyons sur ce plus, alors nous pouvons dire, alors nous pouvons regarder celui-ci et cliquer sur ce point là et dire, Eh bien, je veux que ce soit l'interface utilisateur du bâtiment. Et maintenant onclick, puis l'interface utilisateur du bâtiment va être exécutée ou quelque chose alors là. Et comme vous pouvez le voir, et nous n'avons pas cela parce que moi, bien sûr, parce que nous ne pouvons pas réellement faire l'interface utilisateur de construction, nous en fait, ce qui est un peu bizarre, nous devons en fait s'y ajouter. Donc, nous devons réellement prendre ce panneau de construction et le faire glisser ici de sorte que maintenant les panneaux de construction là-dedans. Et puis si nous regardons ici, l'interface utilisateur de construction, puis construit avec un entier particulier, dans ce cas, 0 est exactement correct parce que le premier va être le clicker. Et maintenant, nous allons rendre cela un peu plus attrayant visuellement. Donc, nous allons ajouter quelques choses ici. Donc, tout d'abord, en cliquant avec le bouton droit sur le texte de l'interface utilisateur du panneau de construction, ce qui rend cela un peu plus grand ici. Et puis disons la taille de police 50. Oui, ça sonne bien. Rendons-le un peu plus grand. 70, c'est bon. Ça va être le clicker. Et centrons aussi ce genre d'ici. Nous pourrions, par exemple, ajouter le montant du coût, un peu comme ça. Mais en ce moment, ajoutons simplement le clicker pour l'instant afin que nous ayons quelque chose sur lequel nous pouvons cliquer. Et ajoutons aussi une belle petite image. Donc, c'est ici l'image. Et on peut le rendre un peu plus grand. On peut en quelque sorte la mettre à l'échelle. En appuyant sur vieux, nous pouvons l'échelle à partir du milieu. Et puis j'appuie sur Shift. Nous pouvons faire que le spécifique Que diriez-vous des bâtons de résolution et insérer l'image ici. On peut dire « sprite ». Donc on peut simplement prendre le clicker, mettre là, et ils s'en vont. Maintenant, nous avons en fait cela comme un joli petit HOMME que nous pouvons cliquer. Et une fois que nous cliquons dessus, nous devrions créer un nouveau clicker. Voyons si c'est vraiment tout ce que nous devons faire. Mais je suis en fait assez sûr que nous, que c'est maintenant l'interface utilisateur de construction. Et oui, alors essayons ça. Donc, cela devrait déjà fonctionner. Donc maintenant, si je clique sur ça, on devrait avoir, je n'ai pas assez de fromage. Comme vous pouvez le voir, couplé avec pas de fromage. En fait, nous allons nous tromper dix fromage. Et si je clique à nouveau, on devrait voir que le fromage est soustrait. Et puis le clicker a construit l'objectif et cela fonctionne. Eh bien, c'est plutôt cool. Cela fonctionne déjà. Maintenant, le chemin et c'est, c'est plutôt cool. Comme je l'ai dit, nous pouvons ajouter quelques choses à cela maintenant. Donc, en fait, passons en fait un peu vers le haut, puis ajoutons un peu plus de texte ici. Donc, le premier texte que nous allons en fait, allons juste copier le clicker. Donc, une fois de plus, en sélectionnant ceci et contrôlez un D2, il suffit de copier ceci. Faisons un gros numéro ici. Ce sera le nombre de clickers que nous avons. Donc ce serait le, disons les chiffres, le numéro, bâtiment, le numéro de chemise. Pourquoi pas ? Alors ce serait l'étiquette de nom que je construis. Alors assurez-vous toujours d'avoir un nom propre ici. Parce que si vous regardez ça peut-être un peu plus tard, alors vous allez dire, qu'est-ce que c'était ? C' est l'image du bâtiment. C' est le numéro qui construit ce 0. Et rendons ça un peu plus grand. Alors faisons ça comme un 100. Ouais, c'est génial. Comme un 100 000, pour s'assurer que ça ne disparaît pas. Et puis nous pouvons aussi ajouter un coût. Donc ce serait, une fois de plus, copier cette année, nous dupliquons un à D. Ce serait alors le coût. Et ajoutons juste 0 ici aussi. Allons en fait 10. Donc c'est le coût que nous connaissons. Pourtant. Gardons-le comme ça pour l'instant. Ça, comme je l'ai dit, ça n' a pas l'air cool ou, tu sais, on n'a pas encore vraiment d'étiquettes. Mais ça va se passer. Ensuite, dans notre vue de notre dossier assets, ajoutez un nouveau dossier appelé prefabs. Maintenant nous avons déjà vu ça parce que ce que nous allons faire maintenant c'est que nous allons faire un préfabriqué de ce panneau de construction ici. Donc, nous allons juste rapidement scooté là-bas le panneau de construction de l'ego. Et le grand chose à ce sujet est que nous pouvons maintenant simplement ajouter ceci à nouveau ici. Donc, et nous avons ça deux fois. Ce serait en passant, être le panneau de construction clicker. Et c'est maintenant le panneau du bâtiment de traite. Déplaçons un peu le panneau de traite et modifions les choses que nous devons changer ici. Donc la première chose que nous voulons changer est que l'image, bien sûr. Donc ça va être la vache. Maintenant, depuis le cliqueteur ici, on va avoir la vache. Je veux dire, ce n'est pas si incroyable. Et au lieu du nom ici, nous allons avoir la station de traite. Donc c'est un peu grand, alors augmentons la taille ici un peu. Et l'objectif, le coût va également commencer à 25. Et maintenant, nous en quelque sorte, c'est le, c'est le vrai point ici. Nous devons changer les choses individuelles là-dedans. Et comment on fait ça ? Eh bien, nous allons le faire avec cette interface utilisateur de construction que nous avons déjà créée, mais pas encore utilisée. Et encore une fois, comme je l'ai dit, c'est peut-être un peu plus compliqué. Commençons par faire l'interface utilisateur ici pour que nous ayons ceci à l'intérieur du bon espace de noms. Et oui, commençons juste et j'irai, je vous expliquerai au fur et à mesure. Donc, tout d'abord, nous aurons un dictionnaire de construction. En fait, nous en avons besoin. En utilisant également cet espace de noms. Donc ça va être, elle a scintillé hors des bâtiments. Et cela va être un dictionnaire de la construction à GameObject. Et cela va construire Bill chose à fondamentalement tout en construisant à panneau de construction. Appelons ça comme ça. Ouais, c'est bon. Nous allons initialiser cela à l'intérieur de la méthode start avec un nouveau dictionnaire. Donc, c'est très bien facile à faire. Et puis réfléchissons à ça. Donc nous avons un dictionnaire maintenant. Nous pouvons fondamentalement changer. Quelques choses ici. Pourquoi aurions-nous besoin d'un dictionnaire ? Eh bien, l'idée étant que nous aurons un bâtiment particulier qui est un panneau particulier sur lequel on clique et qui est associé au bâtiment. Nous pouvons aussi avoir l'association dans l'inverse. Dans notre cas, je ne suis pas sûr à 100 pour cent de ce que nous avons encore besoin de cela, mais c'est bon d'avoir déjà ça ici. Et voyons, int I est égal à 0. Je suis égal au nombre d'enfants transform.py. Donc, on va vraiment compter les enfants. Et puis ce qu'on va faire, c'est voir un panneau des bâtiments, un panneau ajouter. Et nous allons voir des bâtiments construire des instances de points. Je suis égal à l'enfant transform.py de I dot GameObject. Maintenant, ça peut sembler absolument fou ce qu'on fait ici. Mais l'idée réelle de ce que nous faisons est que nous sommes, nous allons passer par le nombre d'enfants que cet objet de jeu particulier a, puis ajouter les instances. Donc, c'est simplement un bâtiment de nos instances de construction avec le même, disons index ici, puis l'index enfant. Donc idée étant que si nous ajoutons cette interface utilisateur de bâtiment aux bâtiments réels, ils vont à ce panneau de bâtiments réels. Et nous pouvons penser, eh bien, ce sont les enfants est une fois de plus, le panneau de construction de clicker et le panneau de bâtiment de traite. Donc ce sont les enfants, l'enfant 0. C'est l'enfant un. D' accord. En fait, je comprends en quelque sorte. Et ceux-ci sont alors simplement associés au bâtiment à l'intérieur de notre liste d'instances de bâtiment. Donc oui, et maintenant si on retourne ici, c'est tout simplement enregistrer dans ce dictionnaire. Et c'est vraiment tout ce qu'il y a. Et ce qu'on va faire au début, c'est qu' on va le faire encore une fois. Donc on va dire 0, je suis plus petit que. Et maintenant, nous allons passer par le compte des instances du bâtiment ici. qui devrait être, donc en théorie, ce compte et ce compte devrait toujours être le même parce que pour chaque bâtiment, nous aurons toujours un panneau différent. Et pour chaque panneau, bien sûr, nous aurons un bâtiment associé. Et nous pouvons alors en fait , nous pourrions aussi bien passer par le panneau de déversement, non ? Alors. On peut avoir ça. Et puis avec les crochets peut dire, ok, laissez-moi prendre les instances I. Alors pourquoi est-ce une construction si folle ? Eh bien, nous devons donner à cela le bâtiment qui est associé à lui. Il y a un dictionnaire. On doit lui donner un immeuble. Et puis nous récupérerons un objet de but spécifique. Donc, nous allons vraiment récupérer l'objet du jeu, le panneau lui-même, et ce panneau, nous allons devoir obtenir le composant d'un bouton, non ? Et puis nous allons faire est que nous allons dire le bouton bien sûr, nécessite le moteur Unity, en utilisant le moteur Unity que l'interface utilisateur il. Et ce bouton, nous allons simplement dire interactible est égal à faux. Pourquoi on fait ça ? Je veux dire, tout d'abord, aussi, nous pouvons simplement le faire dans celui-ci aussi. Donc ce n'est pas comme si nous devions le faire ici. Ceci est juste un exemple de la façon dont vous auriez alors accès au dictionnaire essentiellement. Mais oui, alors pourquoi définissons-nous l'interactable égal à faux ? Eh bien, pour que nous puissions interagir avec le réel avec le bouton réel. Parce que nous ne devrions pouvoir interagir qu'avec ce bouton. Et quand on a assez de fromage à la banque, non ? Parce que ce serait intelligent. Le nous avons l'avertissement et c'est bien aussi. Mais ne serait-ce pas génial si nous pouvions seulement interagir avec le bouton et construire le bâtiment réel si nous avions assez de fromage dans la banque. Et c'est essentiellement ce que nous voulons mettre en œuvre ici. Nous aurons donc quelques choses que nous voulons réellement. Donc, la première chose est que nous avons fondamentalement le bâtiment construit des bâtiments, donc sur le bâtiment construit plutôt va être ajouté quatre à un ou une méthode spécifique est ajouté à cet événement. Et ce sera le numéro de mise à jour des bâtiments. Donc, nous allons mettre en œuvre cette méthode sous peu. Et puis une autre méthode que nous voulons, qui est à l'hôte de mise à jour. Donc ces deux choses vont le mettre à jour à l'intérieur de l'œil. Ceux-ci sont déjà mis à jour à l'intérieur du coût de mise à jour en particulier est mis à jour à l'intérieur des bâtiments lui-même déjà. Mais maintenant, nous voulons le voir visuellement. Et puis on a aussi le point de stockage du fromage sur elle a changé. Donc, si la quantité de fromage change, nous pourrions vouloir mettre à jour la capacité de clic cliquable. Je pense que c'est écrit correctement. Je l'espère. Droit ? Voilà donc trois des méthodes que nous voulions ajouter ici. Donc, le premier, le nombre de bâtiments, nous pouvons simplement simplement cliquer avec le bouton droit de la souris sur les actions rapides, puis dire simplement Générer la méthode ici. On y va. Générer également cette méthode, et générons cette méthode. Dernier mais pas des moindres. Voilà, tu y vas. Et nous avons toujours cela avec la signature de méthode correcte aussi. Permettez-moi de revenir un peu sur la question parce que, dans ma référence, dans mes références, j'ai ceci un peu différemment. Alors commençons en fait par le haut. Mettre à jour le nombre de bâtiments. Eh bien, comment dans le monde peut-on mettre à jour le nombre de bâtiments ? Donc c'est exactement ce que nous avons ici, non ? Donc, nous avons ce champ de texte de construction de nombre que nous voulons ajouter ou modifier en fonction. Beaucoup de bâtiments qui sont d'un type particulier. Comment ça va marcher ? Soyons réels. C'est dingue. Eh bien, en fait, ce n'est pas trop mal. Ce qu'on va faire, c'est faire une boucle foreach. Et cela pour chaque boucle va passer par la paire de valeur clé. C' est exactement ce qui est stocké à l'intérieur d'un dictionnaire ici de construction et GameObject. Nous voulons donc passer par les paires de valeurs clés. Donc paire clé-valeur, nous allons juste l'appeler comme ça à l'intérieur de nos bâtiments à des panneaux de construction. Donc on va passer par le dictionnaire avec une boucle foreach. Et puis on va dire si la paire de valeur de clé que nous avons ici, droite et gauche est égale au bâtiment dans lequel nous sommes en train de passer. Alors on peut faire des trucs. Maintenant, quand est-ce vrai ? C'est vrai. Donc, on va passer par chacun des bâtiments. On va passer par chacun des panneaux que nous avons en ce moment. Nous n'avons que deux panneaux, non ? Donc nous n'avons pas autant de panneaux, mais nous avons deux panneaux. Et nous allons dire, d'accord, si le nouveau bâtiment qui a été construit est égal à quelques panneaux. Donc, disons que nous construisons une nouvelle station de traite, alors ce sera égal à ce panneau et ce panneau qui sera alors nous aurons accès à ce panneau, exactement ceci. Nous avons donc accès à ce panneau en faisant la valeur de paire clé-valeur. Parce que nous savons maintenant, ok, le bâtiment qui a été construit était la station de traite. Ceci est égal à la clé. Par conséquent, bam, Allons-y. Et ce que nous allons dire est transform.py enfant 0. Donc, c'est beaucoup obtenir le texte de type de composant texte point. Et puis nous allons dire, est-ce qu'on va vraiment devoir, bien sûr, évaluer ce chiffre ? Donc ce qu'on va dire c'est qu'on va avoir un nouveau numéro ici, un nombre entier. C' est exactement ça, n'est-ce pas ? Donc, quoi qu'il soit déjà écrit, que nous n'avons pas besoin de le sauvegarder ailleurs. Donc, comme ça, adoptez des textes, bien sûr. Je vais vous expliquer ça aussi. Donc, dans l'analyse prend simplement une, une chaîne et la convertit en un entier si c'est un entier réel, non ? Donc, au lieu de ce texte ici, ce que nous voulons c'est que nous voulons que ce soit, nous avons un 0 sauvé et nous devons aussi faire attention à l'Aya réelle. Bien sûr. Nous devons également être prudents quant à la position réelle de cette situation. Donc on va changer ça au lieu d'un préfabriqué à nouveau. Et dis, ok, le numéro de l'immeuble est en fait en haut. Donc ce serait un enfant 0. Ensuite, le nom de l'étiquette sera Enfant 1. Donc avec l'indice 1, alors nous aurons le coût. Et puis l'image sera à la fin. Maintenant, l'image ne change pas. Peut-être que nous voulons que l'image change à un moment donné, mais pour l'instant, l'image ne changera pas. Les seules choses qui sont en quelque sorte modifiables, c'est le coût du bâtiment et le numéro du bâtiment. Donc on va changer ça. Et puis comme vous pouvez le voir, il a également changé ici parce que ces deux GameObjects sont associés à ce préfabriqué. Et une fois que nous changerons le préfabriqué, nous les changerons aussi en objets de jeu. Ok, réfléchissons à ça. Donc maintenant, nous obtenons exactement ça. Le premier objet de jeu là-bas. Et les textes il y a le nombre de est le nombre d'objets. est égal au nombre de bâtiments qui sont en quelque sorte d'inexistence. Et puis nous allons simplement dire, eh bien, ce nombre devrait être juste plus égal un. Donc, nous voulons économiser, donc nous voulons juste augmenter ce nombre d'un et ensuite sauver cela exactement. Encore une fois, il y a une autre façon de le faire. Par exemple, nous pourrions simplement enregistrer à l'intérieur d' un bâtiment une variable combien de bâtiments d'un type spécifique il y a. Mais nous n'avons pas vraiment besoin de le faire. Cela fonctionne aussi. Calculer cela à la volée fonctionne aussi. Maintenant, c'est déjà cela, cela devrait déjà fonctionner. Et je crois que nous devrions être en mesure de le voir déjà. Si je ne me trompe pas. Maintenant, le fait est que nous allons toujours obtenir une exception réellement non implémentée. Donc, en fait, ne faisons pas ça. Commençons par obtenir la méthode de coût de mise à jour ici aussi. Donc, cela va être très similaire à cela. Donc, nous allons en fait copier ceci juste pour des raisons d'argument. Cela restera toujours le même. Donc, le if, l'instruction if ici est la même. Et la seule chose que nous allons faire ici est la valeur clé de la paire de points, la transformation, le point get child. Donc, bien sûr, c'est fondamentalement coder en dur la position de choses particulières. Parce que maintenant nous avons, si nous regardons cela à nouveau, nous avons ceci à 012. Donc, le coût que nous connaissons est à la position 2. Par conséquent, nous devons amener l'enfant à. Ceci, comme je l'ai dit, codant en dur ceci dans ce cas, il y en aurait probablement un peu, vous pourriez le rendre un peu meilleur. Mais en ce moment, l'extensibilité ici est vraiment, ce n'est pas si important. Je prendrais un composant. Donc, nous voulons une fois de plus à la composante textes du texte de coût. Et nous allons définir ceci sur building.com dot toString. Donc nous sommes juste en train de construire qui a été construit. Rappelez-vous que la méthode de coût de mise à jour est appelée chaque fois qu'un bâtiment a été construit via l'on building un événement construit sur bâtiment construit. Et ce coût de mise à jour a alors le bâtiment comme paramètre. Et nous allons simplement définir le texte sur le coût réel du bâtiment après sa construction. Maintenant, ce qui est intéressant, c'est que nous n'avons pas encore appelé cela sur la construction événement construit. En fait, nous devons encore le faire. Et c'est fait à l'intérieur de l'entrepôt de fromage juste ici. Nous avons donc ajouté le bâtiment ici, mais nous ne l'avons pas encore tenu. Et cela, c'est en fait aussi facile que de simplement dire le point de construction sur le bâtiment construit. interrogation, invoquer avec un nouveau bâtiment. Voilà, tu y vas. C' est tout ce qu'il nous faut faire. Et maintenant, c'est aussi froid. Donc, en fait, c'est très, très gentil. Donc oui, c'était l'interface utilisateur construite qui a parfaitement bien fonctionné. Il y a une autre chose pour l'interface utilisateur de construction que nous avons réellement besoin de changer et qui est à l'intérieur de notre traite un panneau de construction. Oh, non, non, non, non, non, ne bouge pas que tu es fou. Ils y vont, on doit changer ce 0 en un. Parce que bien sûr, la station de traite est à l'index un et noeud à l'index 0. Donc c'est un peu important. Mais après avoir fait cela, pensons au reste de l'interface utilisateur du bâtiment. Nous avons fait ce qui suit. Si nous avons construit un bâtiment, nous allons appeler le numéro de mise à jour des bâtiments. Ça s'est bien passé. Nous mettrons également à jour le coût. Et maintenant, enfin, mais non des moindres, nous voulons essentiellement mettre à jour la clickability ici. Et cela va aussi être assez facile. Encore une fois, nous allons passer par une méthode ForEach ici. Et dans ce cas, nous ne voulons pas la déclaration if. On n'a pas besoin de ça. Nous en voulons seulement deux, gros obtenir la valeur et ensuite faire exactement la même chose que nous avons fait ici, n'est-ce pas ? Donc, c'est fondamentalement ce que nous voulons. Nous voulons obtenir le composant de GameObject. Nous pouvons le faire en disant simplement, Eh bien, point de valeur obtenir le bouton Composant parce que nous voulons le bouton et nous voulons changer l'intractabilité bien à vrai, mais seulement sous certaines conditions. Maintenant, nous pouvons penser quelle est la condition ? Eh bien, en gros, nous voulons voir le bâtiment lui-même. Donc ce serait la paire clé-valeur point, ky, point coût. Plus petit ou égal au fromage. Fromage de stockage point instance de fromage point point. C' est, je peux pas accéder à la quantité de fromage qu'on a ? Est-ce un, c'est vraiment un désolé, Allons au stockage du fromage ici un moment. En fait, juste pour des raisons d'argumentation, rendez cela public maintenant. Il y a un moyen plus simple de le faire. En fait, non, ne faisons pas ça. Faisons ça. Et faisons simplement un fromage entier public. Cela va obtenir retour, retour fromage. Et cela n'a pas de set moment parce que nous n'avons pas besoin de l'avoir comme un ensemble. On veut seulement accéder au fromage là-bas. Alors faisons ça. Elle est là, tu y vas. Et maintenant, tout est génial et bien, mais comme vous pouvez clairement le voir, essayons tout d'abord, en fait, puis nous allons refactoriser un peu du code parce que probablement beaucoup d'entre vous diront, je veux dire, je touche... , je ne sais pas du tout ce qui se passe ici. Je suis très confus. Je peux comprendre ça. Essayons tout d'abord ça. On refactorisera ça et je vous garantis qu'il en aura beaucoup plus. Qu' est-ce que tu vas dire ? Clair ? Ça va devenir plus clair. Voilà, tu y vas. D' accord. Je crois que tout aurait dû être fait. Maintenant c'est toujours, tu sais, voyons si tout fonctionne. Si c'est réellement faisable et voyons. Donc, tout d'abord, ça a l'air bien. On ne peut pas cliquer sur l'un ou l'autre, donc c'est vraiment bon, ça, c'est un bon signe. Maintenant, si nous ajoutons un fromage 10 en cliquant sur le plus, voyons si cela devient cliquable. Maintenant, comme vous pouvez le voir, c'est vrai. Donc, la cliquabilité de mise à jour a certainement fonctionné. On a eu cette lueur et si je survole, il devient un peu plus sombre. Je peux en fait juste rapidement maximiser cela. C' est à peine perceptible. Mais maintenant je devrais être en mesure de cliquer dessus et il ajoutera un 1 ici. Retirez le fromage 10, nous allons le faire, arrive à 20 et nous ajouterons du fromage en continu. Voyons si ça marche. Et tout a fonctionné. N' est-ce pas génial ? Donc c'est plutôt cool. Nous avons maintenant ajouté un nouveau bâtiment Clicker. Fondamentalement, nous avons également ajusté le prix. Et une fois que nous aurons atteint 20 ici, cela s'allumera à nouveau et nous devrions être en mesure d'acheter le prochain clicker. Voyons si c'est le cas. Et c'est là. Nous pouvons acheter par le prochain clicker. Et la même chose devrait aller pour la station de traite. Donc, une fois qu'on en a eu 25, voilà. Et si je clique dessus, cela change également le prix. Nous ajoutons également un à cela, et maintenant nous allons obtenir les cinq fromages toutes les deux secondes pour cela aussi. Oui. Et juste pour s'assurer que cela fonctionne, ils vont à et puis 40 fonctionne vraiment bien et vérifient. Donc, c'est assez cool en termes d'interface utilisateur. Donc, cela fonctionne déjà. Nous allons également désactiver le maximiser sur le jeu parce que je ne veux pas nécessairement que chaque fois. Et oui, donc ça marche. Mais comme je l'ai déjà dit, certains d'entre vous pourraient dire, eh bien, je veux dire, tout va bien, mais je ne sais pas ce qui se passe ici. D' accord. Et maintenant, c'est une sorte de, je dirais, juste faire semblant de ça. Donc, pour rendre cela un peu plus lisible, nous allons réellement ajouter quelques variables locales ici. L' idée étant que, eh bien, ok, donc on a cette clé de paire de valeur clé et qu'est-ce que ça veut dire ? Je ne sais pas. Ok, réfléchissons à ça. C' est un immeuble. Donc, nous pouvons en fait, si vous avez tout cela, nous pouvons voir que c'est un bâtiment parce que, bien sûr, c'est la clé de, de notre dictionnaire. Et on peut alors simplement dire, ok, faisons de ça un bâtiment. C' est le bâtiment en quelque sorte sauvé ici. Donc le bâtiment à l'intérieur de l'en tant que paramètre, c'est le bâtiment qui est en cours de construction. Ou parce que cela est appelé, la méthode est appelée sur un bâtiment construit. Donc, c'est le bâtiment. On peut changer ce nom. Alors renommons ce premier contrôle, RR. C' est un bâtiment à construire, disons. Alors on sait, d'accord, c'est le bâtiment à construire. Et c'est un peu comme un bâtiment sûr. Ou comment peut-on appeler ça la clé ici ? En gros, c'est juste le genre de bâtiment qu'on a utilisé pour la recherche, non ? Appelons ce bâtiment pour une recherche maintenant. Ce n'est pas le nom le plus clair, mais je pense que ça va aller. Et c'est égal à la paire de valeur clé Schottky, non ? Et puis au lieu de l'utiliser, nous pouvons réellement utiliser cette variable ici. Et puis construire pour la recherche, c'est comme d'accord, OK, donc la clé est le bâtiment pour la recherche. Je comprends ça, ça a du sens. Maintenant, quelle est cette valeur ? Je ne comprends pas quelle est cette valeur, n'est-ce pas ? Donc pas un problème. Ceci est un objet de jeu. Et nous nous souvenons que le dictionnaire est le bâtiment à panneau de construction. Il s'agit donc simplement d'un Gilbane Building panneaux. Donc, nous pouvons dire que le panneau de construction de la facture de GameObject fait est égal à la valeur de clé, paire de valeur de clé, valeur de point. Et maintenant, nous pouvons aller encore plus loin parce que nous pouvons voir, eh bien, nous n'utilisons jamais que le transformateur. Nous pouvons en fait obtenir la transformation aussi. Donc, nous pouvons dire Transformer et dire fondamentalement le panneau de construction, la transformation du panneau de construction est alors égale à la transformation de point du panneau de construction. Et puis au lieu de ne remplacer que cela, nous pouvons réellement remplacer le tout ici par cette transformation ici aussi. Et maintenant, nous allons voir que, eh bien, je veux dire, nous avons tous les deux le 0ème enfant ici, donc nous pouvons réellement remplacer cela aussi et même aller plus loin. En fait, nous recevons toujours le même composant de textes. Donc, en théorie, on peut l'obtenir aussi. Et je dis oui, pourquoi pas ? Donc, nous pouvons réellement dire du texte et dire, C'est le panneau de construction. Il s'agit du numéro du panneau de construction du texte de construction. Donc, c'est un nom de variable très long, mais ne deviens pas trop fou à ce sujet. Pourquoi ne pas avoir ça ? Et ce serait celui-là. Donc, nous pouvons réellement enregistrer cela là-dedans, puis remplacer cela par ceci, et remplacer ceci par ceci. Droit ? Et maintenant, même si nous pouvons dire, eh bien, je veux dire, vous pouvez aussi simplement lier ça ensemble. Oui, mais si on regarde ça maintenant, on peut voir, ok, paire clé-valeur de point est le panneau de facturation, ok, bien sûr c'est le panneau de construction que nous avons fait. Et puis nous obtenons la transformation de celui-ci. D'accord ? Oui. Ok, la transformation, c'est essentiellement ce que tu peux dire. Eh bien, d'accord, peut-être que cela peut être supprimé et nous pouvons dire, eh bien, en fait, panneau de construction. Je sais ce qu'est le panneau du bâtiment. Alors, prenons celui-ci. Donc, cela parce que la transformation et le GameObject sont très similaires les uns aux autres. Donc vous pouvez dire, Ok, la transformation des pénalités de construction, je vais avoir ça, c'est tout à fait bien. Et puis le truc, c'est que je vais obtenir le texte qui lui est associé. Quel type de texte s'agit-il ? Le nombre de panneaux de construction des textes ? Oui, bien sûr, c'est ça qui me dit combien de bâtiments d'un bâtiment particulier ont été construits. Et puis nous analysons juste le texte de ceci, et puis nous avons lu un re-sauver le nombre qui était là plus un dedans. Et c'est fondamentalement un moyen très facile, disons de changer cela et d'être L2, lisez ceci un peu mieux. Alors faisons celui-ci et changeons aussi cela en bâtiment, à construire. Droit ? Et puis la clé basse, mais seulement dans des égaux. Nous avons la transformation du bâtiment ici aussi, mais nous n'en avons besoin qu'une seule fois. Donc, nous n'avons pas vraiment besoin d'obtenir le texte dans ce cas. Je pense que ce serait tout à fait bien. Et cela a beaucoup plus de sens. Vous pouvez, bien sûr, également d'ailleurs, faire la même chose avec, par exemple, ce coût ici, n'est-ce pas ? Donc vous pouvez dire, eh bien, je veux dire, en fait, quand on pense à ça, quel est le coût de ce bâtiment à construire ? Qu'est-ce que c'est ? C' est en fait le nouveau coût que nous voulons avoir. Donc, nous pouvons juste dire de nouveaux coûts et nous pouvons effectivement mettre ceci immédiatement dans une chaîne. C' est encore mieux, nouveau coût n° 2 chaîne. Et puis on y réfléchira et on le mettra ici. Alors, il devient encore plus facile à lire. Et nous disons que le nouveau coût est égal au coût réel du bâtiment qui est en cours de construction parce que cela a déjà été mis à jour pour nous. Et puis nous connaissons notre cas. Nous prenons juste les textes réels, ils sont une mise à jour avec le nouveau coût. Par conséquent, le coût de mise à jour est logique. 70. (Cheese de la fin.) Créer des mises à jour de la réalisation de mises mises mises: Bon, continuons avec le cliqueteur de fromage ici pour le cours de l'unité. Et dans cette conférence, nous allons créer un système de mise à niveau très, disons, facile que vous pouvez mettre en œuvre. Encore une fois, en s'inspirant de Cookie Clicker, où vous pouvez également obtenir certaines améliorations qui sont appliquées à des bâtiments spécifiques. Et nous allons voir si nous pouvons créer quelque chose là-bas. Donc, tout d'abord, créons un nouveau dossier à l'intérieur de notre dossier de scripts appelé mises à niveau. Et là, nous aurons le script de mise à niveau magnifiquement nommé. Donc, le dossier étant pluriel et la classe réelle n'étant que singulier. Maintenant, ce ne sera pas hériter du comportement moral et il va être à l'intérieur des améliorations. Sans le point-virgule Diego. Et il y a un tas de choses que nous devrons ajouter ici. Alors allons-y. Donc, tout d'abord, j'ai déjà préparé quelques idées de types de mise à niveau que nous allons avoir et ceux-ci vont être sauvegardés en vue d'un type de mise à niveau enum. Et ce sera le clicker de bronze. Il aura le cliqueteur d'argent. Nous avons l'or clicker, le platine, platine Flickr, ainsi que le lait de bronze. Bien sûr, vous auriez pu deviner le lait d'argent. Et si vous connaissez les autres, vous obtiendrez un cookie ou un autre morceau de fromage, du lait de platine. Voilà, tu y vas. Ce sont tous les types de mises à niveau. Nous allons faire une construction très similaire à celle que nous avons faite avec les bâtiments. Donc, où nous avons une liste statique privée de mise à niveau de type à l'intérieur d'ici, qui va être toutes les mises à niveau. Et puis nous aurons cela à l'intérieur d'une propriété statique, qui est également une liste de mise à niveau appelée toutes les mises à niveau, mises à niveau. Et nous aurons un getter ici qui va faire retour toutes les mises à jour. Et si ce n'est pas le cas, alors ce que nous voulons c'est que nous voulons les générer. Donc, nous allons avoir une autre liste statique publique de mise à niveau. Générer toutes les mises à niveau, les mises à niveau ils Et c'est alors exactement le public n'est pas écrit correctement. Ils deviennent publics statiques, génèrent toutes les mises à jour. Et c'est fondamentalement exactement la même chose que nous avons fait avec la liste des bâtiments à l'intérieur de la classe de bâtiment. Donc, c'est le résultat égal à la nouvelle liste de bâtiments. Retournons ce résultat. Vas-y. Et puis on remplira ça assez tôt. Tout d'abord, faisons le chèque ici. Donc, si la variable statique réelle est égale à null, alors nous, nous devons d'abord la définir avec exactement la méthode de toutes les mises à niveau. Droit ? C' est comme je l'ai dit, certains d'entre eux nous l'avons déjà fait pour les bâtiments eux-mêmes. Donc ça ne devrait pas être aussi fou de surprise. Maintenant, la grande question vient, eh bien, quel genre de choses sont à l'intérieur d'un labo ? Quelles sont les propriétés d'une mise à niveau ? Eh bien, tout d'abord, évidemment, nous allons avoir un type de mise à niveau, non ? Et cela va être un type de mise à niveau avec un getter et un ensemble privé. Juste pourquoi pas ? Ensuite, nous aurons aussi un modificateur public. Ceci est le modificateur, le modificateur, le 0. C' est le modificateur que nous allons à temps était de multiplier avec le gain de fromage réel que nous aurons. Donc, c'est le modificateur de B, aura un qui. Ensuite, nous avons également bien sûr un coût associé à cela. Endroit privé ici. Et puis une autre chose, et ce serait un bool public et ça s'appelle un bot. Donc, cela vérifie simplement si oui ou non ce particulier, il a été acheté car les améliorations que nous allons créer ici ne pourront être achetés que ceux et ensuite ils sont partis. Et puis pour ces choses, bien sûr, nous avons aussi besoin d'un, nous devons générer un très bon constructeur. Nous pouvons le faire, bien sûr, en appuyant sur le point de contrôle de point de contrôle. C' est des points de contrôle bien sûr Générer, Constructeur et type de. Ce sont exactement toutes les choses que je veux ici. Et il y a aussi une chose que nous voulons. En fait, j'ai complètement oublié ça. Wow, c'est embarrassant. Nous devons savoir pour quel bâtiment c'est. Donc, nous voulions réellement commencer à utiliser l'espace de noms des bâtiments de point clicker de fromage. Et puis on veut une prise de bâtiment pour la construction. Et cela a un get et un set privé à nouveau. Et c'est là aussi. Donc la construction. Et puis pour la construction, non ? Et nous ne voulons pas est acheté par le fait, parce que c'est quelque chose qui est toujours faux au début. Et puis pour la construction, ce sera pour la construction, pour la construction, pour la construction. D' accord. Qu'est-ce que c'est ? Quel est le processus de pensée derrière cela ? Eh bien, bien sûr, une mise à niveau est toujours spécifique pour un type de bâtiment spécifique. C' est pourquoi cela a une référence de bâtiment ici. Et l'est acheté dit simplement, ok, c'est faux au début. Et puis une fois que nous l'achetons, donc une fois que le vide public par méthode est refroidi, et nous allons dire est acheté est égal à faux. Plutôt vrai. Désolé, voilà. Bien sûr, tu y vas. Donc, une fois qu'on achète ça, on l'achète. Et avec ce tableau, nous vérifions, ok, pouvons-nous en quelque sorte acheter ce que nous voulions juste avoir ce Soviet, nous savons, ok, cette mise à niveau a été achetée et cette hausse n'a pas été achetée. Et à l'avenir, par exemple, nous pourrions dire, Hey, toutes les mises à niveau achetées et puis filtrer facilement pour est acheté en cela, ce serait l'une des choses que nous pouvons faire. Mais maintenant, nous pouvons réellement créer ces mises à niveau à l'intérieur de cette liste ici. Maintenant, ce que je vais faire, c'est que je vais copier. En fait, je vais créer une nouvelle mise à niveau ici, et ensuite je vais copier sur le reste d'entre eux parce qu'ils sont un peu plus compliqués que les bâtiments. Donc, nous avons des résultats point ajouter, puis une nouvelle mise à niveau. Et maintenant, au lieu de cette mise à niveau, nous avons d'abord besoin d'une mise à niveau de type bronze Clicker. Ensuite, nous voulons le modificateur, dans ce cas, le moteur Fire par exemple. En fait, retournons ça. Donc, nous allons tout d'abord obtenir le coût, puis le modificateur, sinon, la copie ne fonctionnera pas. Le coût, disons que le bronze coûte 25 et il va en fait doubler les choses que nous allons obtenir à partir du clic réel. Et puis pour quel bâtiment ? Eh bien, nous pouvons obtenir les bâtiments une fois de plus en faisant un bâtiment, une instance de bâtiment. Et puis un 0 ici. Parce que cela fonctionne bien sûr parce que c'est une fois de plus le clicker et c'est spécifiquement pour le clicker. Et maintenant, nous pouvons simplement copier. C' est en fait assez facile aussi. Et dis « Silver Clicker ». Celui-ci coûte alors, disons 500. Donc, c'est un peu plus cher. Et puis il double aussi le, il double le gain de fromage. Et puis nous avons le cliqueteur d'or. Celui-ci coûte 1000 500. Ce sont, bien sûr, des nombres arbitraires, n'est-ce pas ? Vous pouvez choisir le vôtre et les changer également. Et ce sera le cliqueteur platine avec 5000 et cela va parfois pour elle. Maintenant, ce sont bien sûr, multiplicatifs. Donc si j'ai le bronze et le cliqueteur d'argent, on en aura quatre fois plus, plus de fromage. Et puis si j'ai ça, on va regarder huit fois et on aura 32 fois si j'ai toutes les mises à niveau. Donc, ces échelle très rapide en fait. Maintenant, les autres que je vais vraiment obtenir et nous allons le faire d'une manière différente. Donc, et nous en fait, comme vous pouvez le voir, Collection est l'initialisation. Là, vous allez, peut être simplifié. Et nous allons juste cliquer sur ceci et nous allons voir que cela a l'air un peu différent de ce que nous avons vu auparavant, mais dans l'ensemble, ce ne devrait pas être trop fou. Donc, nous avons fondamentalement juste le genre d'initialisation en ligne ici. Au lieu d'ajouter ceux avec la méthode add, nous pouvons juste avoir ceci ici. Et puis ça rend mon travail un peu plus facile en copiant simplement ça ici. Il s'agit de construire des instances. La copie n'a pas tout à fait fonctionné. Voilà, tu y vas. C'est ce que c'est, non ? Une fois de plus, vous pouvez bien sûr choisir votre propre mise à niveau vers les coûts et les modificateurs ici. Dans notre cas aussi, le modificateur serait un entier. Parce qu'on a commencé par une interview. Bien sûr, les deux peuvent en faire un flotteur et ensuite fondamentalement juste avoir le résultat plus tard. Soit le sceller, soit le faire, soit le florid, n'est-ce pas ? Pour que vous puissiez l'arrondir vers le haut ou vers le bas. Mais en ce moment, je pense que c'est bien comme exemple, disons. Et la dernière chose, il y a deux dernières choses que nous voulons. Eh bien, une des choses que nous voulons, c'est. Et fondamentalement, nous voulons une méthode statique qui nous permet d'obtenir fondamentalement les modificateurs pertinents. Donc, c'est le modificateur pertinent. Et c'est pour un bâtiment particulier dans ce cas. Alors qu'avons-nous, que voulons-nous ici ? Eh bien, fondamentalement, tout d'abord, faisons le modificateur égal à 1, puis retournons modificateur. Donc, l'idée est que compte tenu d'un bâtiment particulier, nous voulions le modificateur qui y est associé. Donc, si nous avons le clic Bronze sur le Clicker d'argent, alors si nous donnons cette méthode au bâtiment du Clicker, alors ce que nous voulons récupérer est fondamentalement le modificateur que nous devons appliquer à cela dans ce cas alors pour, donc, pour cela, nous allons faire une nouvelle boucle pour qui passe par toutes les mises à niveau, nombre de points. Et une fois que ça passe par toutes les notes optiques, ce que nous allons faire, c'est que nous allons demander, d'accord, si la mise à niveau réelle que nous recherchons en ce moment, je ne pourrais pas l'être. Oui, faisons une boucle foreach en fait c'est un peu mieux. Donc, ce serait une mise à niveau. Refroidi, non nul, désolé. Non, toujours pas juste. Mise à niveau. D'accord. Faisons ça comme ça. Mise à niveau, mise à niveau dans toutes les mises à niveau fonctionnera l'ego. Je ce que nous allons dire c'est si la mise à niveau est pour la construction, donc si nous obtenons le bâtiment et ensuite nous allons le faire, ce que nous allons faire, c'est que nous allons utiliser la méthode get type. Ceci simplement, vous pouvez essentiellement obtenir, prendre la méthode de type get appelée égale sur cela et ensuite dire que le point de construction obtient le type aussi. Et cela compare ensuite le type de type, la classe en fait ainsi avec ce bois, donc il y a un type de point système, comme vous pouvez le voir, qui est le type de retour. Et cela simplement une comparaison de la classe ou du type de données, pour ainsi dire. Donc, il compare si ce bâtiment qui a été donné est, par exemple, le clicker. Et si ceux-ci correspondent, fin, la mise à niveau est achetée. Donc c'est aussi un peu important. Donc c'est là que nous avons demandé si oui ou non spot. Alors ce que nous allons faire est de modifier notre temps égal à la mise à jour du modificateur de point. Voilà, tu y vas. Donc, alors nous serons réellement en mesure de multiplier le modificateur à elle. Ouais, dans l'ensemble, je veux dire, ça ne devrait pas être trop fou. On cherche juste le bâtiment en particulier. Si les améliorations ont été achetées et si elles ont été achetées pour ce bâtiment, alors nous allons simplement ajouter ou non cela au modificateur, mais le multiplier au modificateur, n'est-ce pas ? Et pour ajouter cela, sorte que cela fonctionne réellement. On doit changer le cliqueur et le poste de traite ici. Et ce ne sera en fait pas trop fou. En fait, nous faisons simplement un total qu'elle a gagné ici, et ce sera le gain de fromage que nous avons. Donc, la peau de mouton de la station de traite, ce cas fois. Et puis faisons l'utilisation. Mises à niveau des points Flickr, nous devons utiliser cet espace de noms. Ensuite, à l'intérieur d'ici, nous pouvons voir mis à niveau enseigné, obtenir modificateur pertinent pour cela. Et c'est pourquoi j'aime la création de cette méthode, parce que cela rend très facile à faire. Et puis on peut juste dire un gain total de fromage. Et on peut copier ça, mettre ça ici, et ensuite dire un gain total de fromage. Ils y vont. Et aussi s'assurer que nous utilisons l'espace de noms correct est apparu. Elle fait des mises à niveau de points cliquables. En ce moment, le flux de trésorerie lui-même devrait déjà fonctionner. Donc, modifier le flux de trésorerie par les mises à niveau ici devrait fonctionner totalement bien. Le seul problème est que nous ne pouvons pas encore acheter les mises à niveau et que nous allons faire une nouvelle mise à niveau. En fait, je vais faire ça. Juste pour l'enfer. Alors je t'entends. Je donc c'est l'interface utilisateur de mise à niveau. Je vais faire ça un peu différemment. Je sais que c'était un peu trop rapide. Maintenant, il va ouvrir une autre instance visuelle de Studio. Juste une seconde. Un aller. Fermons ça à nouveau. Merci. Ouvrez ceci dans le bon, s'il vous plaît. Voilà, tu y vas. C' est bien sûr, sous votre œil et nous allons certainement utiliser l' espace de noms de points clicker de fromage. Laisse-moi jeter un coup d'oeil ici. Donc la première chose dont nous allons avoir besoin est une liste publique de Sprite. Donc maintenant, nous allons avoir un sprites associé à lui. Celles-ci, bien sûr, sont disponibles en tant que ressource et nous allons les voir sous peu. Ensuite, nous allons avoir un dictionnaire similaire aux bâtiments. Nous allons avoir une mise à niveau vers le dictionnaire d'objets de jeu ici. Et nous allons aussi l'appeler comme ça, passer à un objet de deux jeux. Objet. Ils vont avec un getter et un secteur privé. Et puis dernier but non moindre, nous aurons un objet public qui sera le préfabriqué de l'interface utilisateur de mise à niveau. Mais nous n'aurons pas cela avec une année de soulignement, juste comme ça. D' abord, le dictionnaire des objets de jeu de mise à niveau sera initialisé ici dans la méthode start. Alors ce qu'on va faire, c'est avant, à l'intérieur du panneau des bâtiments, on a ajouté la pénalité particulière nous-mêmes, donc manuellement. Et nous allons maintenant avoir les particuliers générés cette fois-ci. Donc on va dire panneau, et on va juste ajouter un petit panneau ici. Et nous allons simplement les générer. Donc, nous allons ce serait le panneau de mise à niveau. Panneau de mise à niveau. Voilà, tu y vas. Ajoutons l'interface utilisateur de mise à niveau. Et puis ajoutons aussi les sprites. Alors faisons à la place de nos sprites un nouveau dossier. Ce seront les mises à niveau. Nous allons également créer un nouveau dossier appelé bâtiments de construction, et simplement ajouter tous nos sprites à eux. Et à l'intérieur des améliorations, nous allons ajouter toutes les choses d'or. Comme je l'ai dit, toutes ces ressources sont disponibles en tant que ressource. On les copie et on me laisse vérifier rapidement, non ? Tu n'as pas besoin de changer quoi que ce soit pour eux. Comme vous pouvez le voir, Bronx glisser ou mauvaise machine d'éperlan, Flickr, cette machine. platine et l'argent aussi. Oui. Une fois de plus, ceux-ci sont bien sûr disponibles en tant que ressource. Et puis voyons, panneau de mise à niveau. Donc fondamentalement, nous ne voulons pas vraiment créer quelque chose d'année folle. Et avec la création, je suis vraiment méchant comme si on allait créer ça. Donc, l'interface utilisateur de mise à jour elle-même ne devrait pas être trop folle. Nous devrions créer celui-ci. Donc nous avons le préfabriqué et ensuite nous pouvons mettre le préfabriqué là-dedans. Donc, cela va simplement être une image de celui-ci. Donc, c'est une image. Rendons ça un peu plus petit. Ça va probablement se passer bien. Et puis cette image va être l'interface utilisateur de mise à niveau. Et cela aura également un bouton associé. Donc ça va être un bouton ici. Et je crois que c'est déjà cela fondamentalement. Et puis nous avons juste besoin de changer des choses dessus. Donc, la mise à niveau de vos îlots, mettez ceci à l'intérieur du préfabriqué ici. Donc, en tant que préfabriqué, maintenant, c'est là. Et nous pouvons ensuite fondamentalement supprimé et nous assurer que le préfabriqué de l'interface utilisateur de mise à niveau ici est défini à l'intérieur du script. Et puis je crois que cela devrait être tout. Ensuite, nous avons simplement besoin de le créer en faisant une nouvelle méthode, vide privé créer, mettre à niveau les interfaces utilisateur avec un index particulier ici. Voyons voir. Voilà, tu y vas. Parce que nous voulons appeler cette méthode à l'intérieur d'une boucle for. Donc, en gros, va passer par toutes les mises à niveau particulières que nous avons. En fait, toutes les mises à niveau en quelque sorte du week-end font déjà cela. Donc, pour la boucle avec i et puis c'est la mise à niveau, les mises à niveau, le nombre de points. Donc nous allons passer en revue toutes les mises à jour, les mises à jour, ou atteindre sa diagonale. Et on va dire Créer, évaluer vos yeux. J' y vais. Et à l'intérieur d'ici, nous allons créer ça. Donc, objet de jeu 30, ou disons terme de mise à niveau est égal à instancier ces préfabriqués de l'interface utilisateur avec l'aide de cette transformation ici. Je vais dire que la mise à niveau va être. Donc, tout d'abord, obtenez l'image du composant. Nous avons besoin de l'interface utilisateur ici, bien sûr. Donc, en utilisant le moteur Unity wi, ce serait très bon. Et puis l'image, nous n'avons pas vraiment vu ça comme je l'ai dit avant, mais ça va se passer. Donc, le sprite ici peut être configuré comme avec le, fondamentalement le rendu sprite sprite. Et puis ce serait l'indice. Donc on va juste mettre le sprite à un index particulier ici. Et puis nous allons faire quelque chose que nous n'avons pas vu auparavant. Et nous allons fondamentalement changer ce qui se passe quand on appuie sur le bouton. Donc, avant que nous avons vu est que nous venons d'ajouter le. Une fonctionnalité de bouton par si nous regardons cela, si nous regardons cela, Il y a aussi un bouton. Nous avons ajouté le onclick et nous avons eu la chose particulière ici et froid une méthode ou une fonction particulière là-bas. Mais ce qu'on va faire maintenant c'est qu'on va le faire par code. Et pour ce faire, nous allons obtenir le composant bouton ici. Alors bouton Onclick. Donc, c'est exactement ce que nous avions là et le mouvement de charbon ajouter auditeur. Et donc cet écouteur d'annonce, nous devons ajouter une nouvelle expression lambda. Donc, ceci simplement si je survole cela, comme vous pouvez le voir, c'est un appel d'action d'unité. Et nous pouvons le faire comme une expression lambda. Donc tout ce que je mets après cela est fondamentalement ce qui obtient alors. Donc, mettre à niveau toutes les mises à niveau index point par. Donc, je veux appeler la méthode ici pour cette mise à jour particulière, une quand on clique dessus. Et ce que je veux aussi faire, c'est que je veux définir l'objet du jeu lui-même. Donc, la mise à niveau est l'objet de jeu actif sur false de sorte qu'il disparaît fondamentalement. Et puis dernier but non moindre, je veux mettre à niveau vers GameObject le dictionnaire. Je veux y ajouter les mises à niveau réelles. Donc tout d'abord, je veux dire, oui, c'est bon. Je veux dire, ce n'est pas trop mal. Toutes les mises à niveau. Index ici. Index. Oh, non, ce n'est pas tout à fait exact. Indexer un aller. Et puis aussi l'objet de jeu, qui est appelé Upgrade. Voilà, tu y vas. Droit ? Ce serait la création de l'interface utilisateur. Maintenant, il y a une chose qui est un peu, eh bien, je ne dirais pas un problème, mais ça va créer tous les Y sur l'autre, ce qui, bien sûr, n'est pas tout à fait ce que nous voulons. Ce que nous voudrions, c'est bien sûr e, qu'ils soient séparés un peu. Alors essayons juste ça. Permettez-moi de voir que cela devrait réellement fonctionner déjà et au moins les générer. Bien sûr, nous devons mettre les sprites ici, et nous devons les mettre dans le bon ordre. Donc c'est le clicker de bronze. Faisons ça. Clicker. Et puis le cliqueteur d'argent. Je crois que maintenant cela ne fonctionne certainement pas très bien. Alors faisons-le comme si vous alliez à l'argent cliqueteur, puis nous avons le cliqueteur or et ensuite nous avons le cliqueteur platine. Oui, voilà. Et puis bien sûr, la machine à médaille de bronze, machine d'argent. Nous avons la machine à lait d'or et enfin, le platine. Voilà, tu y vas. Donc, bien sûr, ceux-ci doivent être réglés aussi. Et puis je crois que cela devrait au moins générer les objets de jeu réels. Voyons si cela fonctionne déjà. Il crée les objets du jeu. Maintenant, comme vous pouvez le voir, ils sont tous à la même position. Si on entre en scène comme vous pouvez le voir, on est sur la même position. Vous auriez besoin de les séparer comme ça. Bien sûr, ça ne marche pas tout à fait. Ce n'est pas tout à fait ce qu'on veut. Mais oui, comment ça marche ? Alors, comment pouvons-nous faire ça ? Eh bien, nous pouvons, par exemple, dire, eh bien, faisons la mise à jour point, transformer la position des points. Et puis fondamentalement juste égal. Eh bien, nous pouvons aussi dire que plus est égal au nouveau vecteur 3. Disons que quelqu'un comme Arnold, 15 F 0. Eh bien, ça marche aussi. Voilà, tu y vas. Quelque chose comme ça. Voyons à quoi ressemble celui-ci, si cela le changerait ou non. Mais il vaut mieux prendre la position locale. Parce que, bien sûr, nous sommes actuellement sous Nouvelle transformation. Voyons si cela fonctionne réellement. Cela va bien sûr bouger tout dans ce cas, parce que nous avons besoin de fois cela par l'index. Donc index fois ça. Et cela doit certainement être un peu plus. Alors disons quelque chose comme 25. Maintenant pourquoi, Qu'est-ce que c'est ? Qu'est-ce qu'on fait ? En gros, en fonction de l'indice. Donc, bien sûr, pour la première mise à niveau, nous allons avoir un index 0. Donc, ce sera à, la position elle-même sera à 000 000 000. Et puis la prochaine mise à niveau, la position sera à 25 000, puis l'indice deux sera de 50 000 000, 000 et ainsi de suite et ainsi de suite. Maintenant, ça va certainement être hors du, de ce panneau en haut à droite. Nous allons fondamentalement ok, Il est en fait besoin encore un peu plus, mais c'est très bien. Nous pouvons essayer cela un peu et trouver un numéro qui fonctionne ici. Nous devons le faire, Disons d'une manière si peu compliquée parce que nous n'avons pas encore vu comment nous pouvons avoir la mise en page d'une interface utilisateur se générer elle-même. C' est quelque chose que nous allons voir quand nous examinerons le réel, ce que nous vous disons un peu plus en profondeur. ce moment. Je pense que ça va se passer. Il n'a pas l'air le mieux, mais il est fonctionnel en ce moment. Une autre chose que nous devons faire dans l'interface utilisateur de mise à niveau ici, nous voulons réellement que cette couleur surlignée soit un peu plus perceptible. Alors, ajoutons en fait ceci ici. Notez que nous n'avons pas besoin d'ajouter le serveur, c'est très bien. Faisons juste des couleurs normales, complètement blanches. Et puis cette couleur surlignée un peu plus sombre. Et le reste des choses se passera bien. Voyons si cela ajoute un peu plus d'effet. Oui, maintenant on peut voir si on survole ça, ce qui marche. Et puis si je clique sur eux, ils devraient déjà fonctionner. Maintenant. Nous pouvons les cliquer à chaque fois, mais cela devrait fonctionner. Alors essayons en fait ça. Alors nous allons juste nous donner dix fromages au clicker. Et maintenant, bien sûr, cela va augmenter d'un à chaque seconde. Et si je reçois le Clicker de bronze, alors cela devrait maintenant augmenter de deux. Et comme vous pouvez le voir, cela fonctionne parfaitement. Si je clique maintenant, il devrait augmenter de quatre et il le fait. Pas de soucis. Et maintenant je peux, bien sûr, obtenir les autres clickers aussi. Et j'allais augmenter de 32, je crois que c'était chaque seconde. Donc c'est assez fou. Donc, comme vous pouvez le voir, travailler vraiment, très bien. Bien sûr, ce dont nous avons encore besoin, c'est essentiellement de vérifier si cela peut être acheté ou non. Ainsi, la mise à niveau peut encore être achetée. Pour ça. Bien sûr, la seule chose que nous devons vraiment faire est que nous étions d'abord, nous voulons mettre toutes ces capacités intactes à bien, sans être insolubles. Donc, nous pouvons simplement faire le bouton Get Component. À la troisième fois ici, nous pourrions presque penser à prendre cela et à en faire une variable. En ce moment, ne pas le faire parce que ce n'est pas le cas. Nécessaire, mais ce serait quelque chose qui aurait probablement du sens. Donc, nous allons juste régler le bouton pour ne pas être intractable. Et puis à l'intérieur d'ici, nous allons dire une fois de plus, quand le fromage a changé sur les tricheurs changés va être mise à jour, mise à jour, cliquez sur la mobilité. Et cela va faire exactement la même chose que nous avons fait dans le, implémentons cette méthode de génération. Mets ça en bas ici. La même chose que nous avons fait avec l'interface utilisateur de construction sur le cliquabilité de mise à jour. Donc, nous allons simplement les parcourir rapidement, aller copier cela parce que nous avons déjà vu cela fondamentalement déjà. Nous allons juste passer par les paires de valeurs clés dans les objets de jeu ici. Et si c'est interactif, alors nous allons interagir avec lui. Si, si l'interactible, si le coût est plus petit ou égal à la nouvelle quantité de fromage qui est disponible. Et maintenant cela devrait fonctionner aussi bien. Faisons la Buchla. Nous devrions être en mesure de le voir immédiatement. Oui, maintenant la couleur est désactivée comme vous pouvez le voir. Et une fois que j'ai mes dix fromages, en fait, j'ai besoin de 25, je crois, pour la première mise à niveau, puis il devient rouge ou, vous savez, il devient normal pour que nous puissions effectivement cliquer dessus. Et une fois que nous avons cliqué dessus, il a disparu et maintenant le clicker est là. Mais comme vous pouvez le voir, il n'a en fait pas enlevé ou de fromage. Bien sûr, ce n'est pas ce que nous voulions. Nous voulions enlever notre fromage. Donc, ce que nous pouvons faire est que nous pouvons soit l'ajouter ici ou nous pourrions l'ajouter à l'intérieur du bouton Mise à niveau. Cela aura probablement le plus de sens. Donc on peut dire stockage de fromage, instance de point, point, enlever les arbres. Et ce serait ce coût de point. Et c'est déjà cela que nous, tout ce que nous avons vraiment besoin de faire parce que la méthode de liaison est appelée quand nous achetons la mise à niveau, puis le fromage sera soustrait de cela. Supprimé plutôt, oui. Alors, vous savez, ou vous pouvez aussi faire le plus ici, appelez ceci, et puis les 25 arbres sont enlevés. La mise à niveau, comme vous pouvez le voir, l'interface utilisateur ici a été définie pour activer fondamentalement parce que la hausse a été achetée, c'est fait. Et oui, c'est fondamentalement comment ajouter les mises à niveau. l'ensemble, le jeu lui-même ne semble pas trop grand, et il ya quelques autres choses, bien sûr, qui pourraient être repassés. Mais je crois que c'est en quelque sorte ce que je vous laisserais à ce stade. Il y a encore une chose. Il y a les barils, bien sûr, que vous pourriez ajouter. C' est une sorte d'exercice suggéré que j'ai aussi où vous ajoutez un peu plus de vos propres bâtiments et si vous plus de vos propres mises à niveau fondamentalement. Mais c'est en quelque sorte l'état que je vous laisserais avec ce jeu particulier. Il peut être joué dans son intégralité. Et peut-être que ce qu'on va faire, c'est quand on regarde l'interface utilisateur, on pourrait vouloir changer quelques choses ici. Donc, nous allons probablement jeter un coup d'oeil à la fois à la mise à niveau et au panneau des bâtiments juste pour que ceux-ci soient commandés correctement. Donc, à la fin de la section de l'interface utilisateur de ce cours, mais en ce moment je dirais que c'est une sorte de cela pour le clicker du xi. J' espère que tout le processus de construction vous a été utile. Je sais qu'à certains moments, c'était beaucoup. Donc, ce n'est pas comme si c'était quelque chose que vous pourriez être capable de digérer immédiatement dans son intégralité. Surtout si vous êtes complètement nouveau dans la programmation Unity, alors c'est probablement, vous savez, c'était un peu. Mais soyez assuré que ce que je dirais est la meilleure chose à faire, vous savez, jouer avec ce que vous avez ici. Je dirais que c'est une excellente occasion pour vous de simplement ajouter quelques bâtiments. Fais des trucs que tu veux faire. Pensez à, peut-être quelques idées que vous, à ce que vous voulez ajouter. Peut-être que ce que tu veux faire c'est que tu vas y ajouter d'autres visuels. Donc, si vous ajoutez, vous obtenez des clickers, alors peut-être réel comme des souris apparaissent. Et si vous l'avez fait, si vous cliquez sur la station de traite, peut-être que vous voulez que le son joue ou quelque chose comme ça. Donc, il y a tellement de choses que vous pourriez être en mesure d'ajouter ici. Et je veux que vous utilisiez ce projet essentiellement comme une très bonne introduction en quelque sorte, c'est le genre de jeu, non ? Donc, vous avez une excellente base. Je pense que vous pouvez développer. Et c'est en quelque sorte ce que l'idée du cliqueteur de fromage est vraiment. Donc, tout ce projet fondamentalement. Mais oui, c'était tout pour cette conférence et le clicker au fromage lui-même, comme je l'ai dit, nous allons certainement revenir à cela une fois de plus après avoir passé l'interface utilisateur et ensuite nous allons faire ça un peu. Je ne dirais pas plus jolie, mais rendre un peu plus facile de trier fondamentalement l'interface utilisateur elle-même. Mais ce serait tout pour ça. Et comme toujours, j'espère que vous l'avez trouvé utile. Et s'il y a des questions, alors n'hésitez pas à poser et je serai sûr de répondre. Et oui. 71. (Unity UI) Ajouter une toile de toile: Très bien, Bienvenue à l'Unité vous, je vous présente ici pour le cours d'unité. Et dans cette conférence, nous allons jeter un oeil aux toiles ou à l'objet de jeu Canvas, disons. Et tout d'abord, bien sûr, dans un nouveau projet, comme toujours, nous allons créer notre bon vieux dossier de scripts. Et puis mettons immédiatement dans un nouveau dossier, L1. Ça peut, appelons-le Canvas. C' est très bien. Et là, Faisons immédiatement le script aussi. Maintenant, le script ne va pas être aussi intéressant dans ce cas, parce que généralement c'est juste quelque chose que j'ai personnellement vu. Vous ne changez pas beaucoup de toiles. Au moins, je ne change pas vraiment beaucoup de choses sur Canvas via des scripts. Mais j'ai préparé quelque chose ici où nous avons quelques commentaires plus tard après nous en avons fini. Donc, la méthode de mise à jour n'est pas nécessaire. Et nous allons examiner ça assez tôt. Mais pour l'instant, ce que nous allons faire, c'est d'ajouter une toile à la scène. Donc, tout d'abord, nous allons, renommons cette scène en L1 Canvas peut cela, puis rechargeons ceci. Donc maintenant, nous sommes à L1 Canvas et cliquez avec le bouton droit de la souris sur l'interface utilisateur, puis ajoutez un canevas ici. Maintenant, nous avons vu un peu de cela déjà quand nous avons ajouté le texte dans l'interface utilisateur très simple, regardez, disons qu'ils le sont. Nous avons ajouté le texte et le Canvas a été généré automatiquement. Donc c'était quelque chose qui était intéressant. Mais maintenant regardons en fait les composants de canevas Canvas ici. Qu' est-ce qu'on a ? Donc, tout d'abord, nous avons le mode aléatoire. Et il y a trois modes aléatoires disponibles. Maintenant. Auparavant, nous l'avons effectivement mis à l'écran de la caméra spatiale. Mais qu'est-ce que la superposition de l'espace d'écran ? Eh bien, bien sûr, la valeur par défaut qui commence par. Et l'idée est que vous pourriez mettre comme des affichages tête haute ici. Et c'est un mode de superposition fondamentalement. Donc on peut zoomer un peu. Comme vous pouvez le voir, c'est géant, non ? Donc c'est une toile géante en ce moment parce que c'est exactement la taille ici. Et juste pour que nous ayons quelque chose à regarder, nous pouvons juste ajouter un texte ici, juste sinon nous ne voyons même rien. Faisons comme un texte géant ici au milieu pour qu' au moins nous ayons quelque chose sur la toile que nous pourrions voir. Maintenant, comme vous pouvez le voir ici, les textes affichent réellement le calque droit au milieu de la caméra. Dans ce cas, parce que la superposition est exactement cela. Il s'agit d'une superposition sur l'écran essentiellement. C' est pour ça que, tu sais, les balançoires comme les écrans de tête haute. Peut-être que quand tu as joué à Minecraft, tu connais le Tao, le petit bar en bas, quelque chose comme ça, non ? Donc, affichage tête haute que vous pouvez utiliser pour afficher certaines choses, C'est là que la superposition basée sur les écrans peut fonctionner. La caméra de l'espace écran, dès que nous le mettons et montre le choix de la caméra principale ici. Comme je le vois, il devient très, très petit. En outre, ce qui est très important lorsque vous êtes dans la superposition de l'espace d'écran, vous ne pouvez pas. Modifiez la transformation directe ici afin que vous ne puissiez pas redimensionner le canevas lui-même. Ici. Cependant, ici vous pouvez également écrire, sorte que certaines choses sont faites par la toile. C' est à cause du facteur de mise à l'échelle, que nous allons examiner dans un peu de temps. Et donc pour l'instant rien n'a vraiment changé. Comme vous pouvez le voir, l'idée des superpositions que cela fonctionnerait pour chaque appareil photo. Et celui-ci ne fonctionnerait que pour une caméra particulière que vous êtes. Fondamentalement mettre ici. Aussi la superposition, superpose sur tout et la caméra de l'espace écran. Tu peux vraiment chercher ça. Voilà, tu y vas. Vous pouvez réellement mettre la distance de l'avion là-dedans et y avoir également une couche de commande. C' est si vrai. Donc, ils sont tous essentiellement rendus à une certaine distance de la caméra. C' est personnellement une de mes préférences. D' habitude, j'utilise presque toujours la caméra spatiale de l'écran. Il y a aussi un espace mondial et il va de l'espace, comme vous pouvez le voir, nous pouvons maintenant changer le direct ici. Et si on va dans le Canvas et qu'on le déplace, et que tu vas voir ça, ok, la toile est là. Mais si je déplace maintenant la caméra vers la droite, comme vous pouvez le voir maintenant un peu dans l'espace du monde. Donc maintenant, si nous avons cet espace mondial, alors la toile réelle est un objet GameObject qui fait partie d'un monde. Vous pourriez, par exemple, imaginer si vous avez des ennemis qui marchent autour et ont comme des barres de santé ou une barre de nom au-dessus de leur tête. Cela fonctionnerait, par exemple, avec ce nœud aléatoire de l'espace mondial. Droit ? Revenons à l'espace de l'écran ici juste pour des raisons d'argument en ce moment. Et oui, le reste devrait être presque explicite. Donc, la distance plane est juste la distance de la, essentiellement la position y. Donc, cela prendrait une fois de plus en compte le plan d'écrêtage de la caméra principale, que nous avons déjà vu. Mais donc si quelqu'un est plus proche de 0.03.3, alors il ne sera pas rendu. Donc c'est exactement celle-là. Et la distance en avion ici, une centaine serait bien. Dans l'ordre dans la couche fonctionne également avec le moteur de rendu sprite. Donc, si cela est en dessous d'un certain rendu sprite qu'un composant d'un autre objet de jeu, alors il serait au-dessus de cela. Si c'est en dessous de cela, alors non, ce serait en dessous de cela. Donc, cela fonctionne exactement comme ça aussi. Vous pouvez également mettre ici des canaux de trader supplémentaires. Je n'ai pas vraiment joué avec ça trop. Et pour l'instant, je ne m'en inquiéterais pas. La mise à l'échelle, cependant, c'est en fait, il y a une chose de plus, ce pixel parfait. J' ai failli oublier. En fait, c'est un peu important. Le pixel-perfect est, comme vous pouvez le voir, il est disponible dans les deux espaces d'écran, mais pas dans l'espace du monde, mode aléatoire. Et le pixel parfait est fondamentalement eu l'idée que le Canvas va aligner avec les pixels parfaitement. C' est pour ça que c'est parfait pixel. Et si vous activez cela, fondamentalement peut rendre certains éléments plus nets et empêcher le flou dans les éléments. Cependant, ce qui est vraiment important, c'est si vous avez une sorte d'animation à l'intérieur de votre canevas. Et vos éléments, essentiellement les éléments de l'interface utilisateur, alors il pourrait être préférable si vous le désactivez car il peut être lisse ou sans elle. Parce que s'il doit s'aligner parfaitement avec le pixel, alors le mouvement peut parfois être un peu bizarre. Mais d'habitude, c'est bien. Ouais, c'est ça pour la toile elle-même. Puis vient le détartreur de toile, qui est vraiment le pain et le beurre ici. Donc, le mode de mise à l'échelle de l'interface utilisateur, il y en a trois aussi, taille de pixel constante, nous avons l'échelle avec la taille de l'écran et la taille physique constante. Alors pourquoi devons-nous nous soucier de la mise à l'échelle de quelque chose ? Eh bien, voyons ça. Donc on a la fenêtre de jeu ici, non ? Si nous, par exemple, devions retirer ça et si je peux vraiment y arriver, oui, maintenant j'ai ceci indépendamment, donc je peux l'adapter correctement ? Et comme vous pouvez le voir, eh bien, tout est bien et bien, le texte réel reste là peu importe ce que je fais. Donc, en fait, ce n'est pas déjà trop mal. Mais ce que cela a, c'est que cela a une taille de pixel constante, donc cela restera comme ça. Et parce que la résolution ici est si élevée, ce n'est pas un problème. Mais si nous disons, passons à trois aspects. Maintenant, c'est notre vrai Laisse-moi voir. Allons-y. Oui, basse résolution. Donc, comme vous pouvez le voir maintenant, eh bien, c'est la même taille de pixel, quel que soit l'aspect. Donc si nous en sommes à, ne faisons pas, pas plus bas. Donc 1609 et 1610, eh bien, ça marche un peu mieux, mais pas vraiment. Donc, comme vous pouvez le voir, en fonction de la taille maintenant, parce que maintenant l'aspect doit être le même. Les textes réels, il n'y a pas vraiment très bien à l'échelle de ce que nous avons. Donc si on a un écran téléphonique, je veux dire, alors tout juste, ça ne marche pas. Donc une taille de pixel constante peut être utilisée, non ? Cependant, comme je l'ai dit, les éléments de l'interface utilisateur qui sont ci-dessous sur ce canevas conservent essentiellement leur taille de pixel indépendamment de ce que fait l'écran. C' est pour qu'ils ne se mettent pas à l'échelle. L' échelle avec la taille de l'écran est très intéressante. Et ils sont, ils sont fondamentalement à l'échelle avec une certaine résolution de référence. Donc généralement si vous en avez un, 1920 par 1080 par exemple. Et puis tout d'un coup, celui-ci est très intéressant parce que l'aspect est toujours 16 à neuf. Mais comme vous pouvez, bien sûr, vous y allez. Maintenant, il s'adapte réellement avec elle. Maintenant seulement après qu'il a effectivement pris cela. Donc, vous pouvez voir que cela fonctionne déjà assez bien. Vous pouvez également regarder ce qu'il est censé correspondre. Donc, soit la largeur ou la hauteur. Vous pouvez également le mettre à 0,5 et puis il va fondamentalement le faire de sorte que les deux correspondent à la largeur et à la même hauteur. Là. Vous pouvez également mettre une expansion et aussi mettre en rétrécir ici si vous le souhaitez. D' habitude, je le garde à, si je peux faire fonctionner ça, voilà. Je le garde généralement à 0,5 correspondance avec le mode de correspondance de l'écran de largeur ou de hauteur. pixels de référence sont. Voyons si nous pouvons réellement obtenir l'un ou l'autre ego est un sprite, a les pixels par unité de réglage d'un pixel dans le sprite, nous allons couvrir une unité dans l'interface utilisateur. Donc, c'est en fait devrait être très explicite. Si vous vous souvenez, nous avons regardé les sprites et là nous avons pu définir essentiellement nos pixels par unité pour certains de nos sprites. Et le dernier est la taille physique constante. Donc, cela signifie qu'il va réellement regarder les centimètres, millimètres, pouces points, ou nous choisir sur place sur l'écran. Cela signifie qu'il faudra la taille physique d'origine. Donc, vous pouvez littéralement sortir une règle, la mettre sur votre écran, et cela va toujours prendre la même taille. Maintenant, dans leurs articles ne sera pas vraiment à l'échelle aussi bien. Mais si vous voulez, par exemple, quelque chose soit exactement comme un pouce par un pouce, sorte sur un écran mobile ou même sur un écran de PC, alors ce serait le mode que vous auriez besoin de choisir. Personnellement, je pense que l'échelle avec la taille de l'écran est celle qui a le plus de sens. Il fait encore un peu de drôle, surtout si nous entrons dans différents aspects, non ? Parce qu'en ce moment nous avons pris un aspect 1920 en 1080, ce qui serait de 16 à neuf. Et si nous devions aller à 16 à 10, eh bien, ça fonctionnerait encore en quelque sorte. Mais si c'est comme un fou ou des aspects comme si nous avons un aspect libre ici, alors à un moment donné, cela va certainement échouer, comme vous pouvez le voir. Donc, si nous avons comme un smartphone plus ou moins, alors, vous savez, ça ne marche pas tout à fait si, vous savez, selon le type de smartphone qu'il pourrait être. Mais ouais, dans l'ensemble, c'est toujours le détartreur de toile là-bas. Et laissez-moi remettre la fenêtre de jeu et la remettre à, disons 16 par 9 aspect. C' est bon, non ? Voilà quelques-unes des choses que nous pouvons faire ici. La meilleure chose, vous savez, généralement, vous obtenez aussi de bonnes info-bulles ici aussi. Donc, c'est en fait aussi très sympa. Et j'ai aussi ceci une fois de plus, si je viens d'ouvrir le script réel, je vous conseille certainement fortement de regarder le script qui est déjà fait. Donc, cela est fourni dans le, dans le paquet exporté parce que cela aura fondamentalement tout cela à l'intérieur aussi bien. Et puis bien sûr, nous avions aussi besoin de la toile ici, le go. Donc juste quelques petits trucs et astuces et astuces fondamentalement. Donc il y a quelques choses ici juste pour que vous compreniez chacune de ces choses. Nous, bien sûr, avons également besoin d'utiliser l'interface utilisateur point du moteur Unity. Voilà, tu y vas. Et puis le détartreur de canevas peut également être accessible. Dernière chose, ou plusieurs toiles. Il y a donc un peu de débat qui se déroule essentiellement. D' accord. Est-ce mieux si vous avez plusieurs toiles ou est-ce mieux si vous en avez beaucoup ? Une toile et tout est là-dedans ? Eh bien, ça dépend, et c'est le truc. Donc tu peux y penser comme ça. Si un élément change, le canevas entier doit être redessiné. Donc, si j'ai comme 1000 textes sur cette toile et qu'ils changent comme chaque seconde, ça n'a pas d'importance, même si j'ai 1000 photos dans le changement, elles ne changent pas. Ils doivent encore être redessinés. Par conséquent, cela a du sens. Vous avez plusieurs toiles. Je l'ai emmené ici. Par conséquent, il est logique de diviser éléments dynamiques et statiques sur différentes toiles. Donc, si vous avez une interface utilisateur qui ne change jamais, alors vous pouvez le mettre sur un Canvas. Et puis l'interface utilisateur où vous voulez peut-être afficher votre santé ou une sorte de systèmes, alors ce serait quelque chose que vous mettriez sur une toile qui ne change pas. Donc diviser les éléments dynamiques et statiques de l'interface utilisateur, n'est-ce pas ? Mais ce serait déjà pour cette conférence. Il n'y a rien d'autre à voir. Nous pouvons aussi simplement ajouter ce script à la toile ici. Mais il n'y a pas de raison d'essayer ça. Juste met fondamentalement tout sur chacun des modes possibles ici, juste pour que vous puissiez voir que vous pouvez, par exemple, mettre ceci ou changer ceci via un script. Personnellement, je n'ai jamais vraiment fait ça. C' est toujours une chose que vous mettez fondamentalement le canevas dans la configuration que vous voulez et que vous le laissez seul. Mais oui, peut-être que votre kilométrage peut varier. Alors qui sait ? Mais ce serait déjà le cas pour la conférence Canvas. J' espère que vous avez trouvé cela utile et que vous apprenez quelque chose de nouveau. Comme toujours. S' il y a des questions, n'hésitez pas à les poser. Je serai sûr de répondre. Et oui. 72. (UI) Panneaux et texte de Unity: D' accord, continuons avec l'introduction de l'interface utilisateur Unity ici pour le cours Unity. Et dans cette conférence, nous allons jeter un oeil aux panneaux et au texte. Donc, ce que nous avons déjà vu en termes de textes était un, vous savez, ajouter le texte puis le changer par script. Et les panneaux que nous avons ajouté ce que nous n'avons pas vraiment parlé de ceux-ci. Alors jetons un coup d'oeil à ça. Tout d'abord, nous n'allons pas créer une nouvelle scène, mais nous allons dupliquer ce Control D tout en le sélectionnant. Et puis nous pouvons faire du texte des panneaux L2. Bien sûr, pourquoi pas. Et puis double-cliquez pour l'ouvrir en gros. Et au lieu du dossier des scripts, nous allons faire un nouveau dossier, L2 panneaux texte à l'intérieur de cela aussi bien. Bien sûr, un nouveau script. On va aussi appeler le texte de ce panneau, non ? Et puis ouvrons cela aussi. Et fermons le script exemple de canevas. On n'a plus besoin de ça. Nous n'aurons pas besoin de la méthode de mise à jour une fois de plus. Et à l'intérieur d'ici, nous pouvons déjà commencer à utiliser l'espace de noms wi du moteur Unity, parce que c'est l'espace de noms dont nous allons certainement avoir besoin parce que nous allons utiliser l'exemple de texte. Faisons un exemple de texte. C' est très bien. Et puis nous allons voir comment cela fonctionne dans un peu de temps. Mais d'abord, revenons à notre toile ici. Supprimons simplement ce texte. Pourquoi pas ? Et puis ajoutons un nouvel élément d'interface utilisateur. Et ça va être un panel ici. Donc, un panneau est fondamentalement juste une toile de fond avec une certaine image de fond ici. Et certains certains, certains spécifiques déjà, vous savez, rempli des valeurs pour certaines variables ici que Donc la couleur est déjà mis un à seulement un 100 en termes d'opacité. Donc il y a quelques choses qui sont mises ici. Et il est fondamentalement devrait servir de toile de fond, non ? Donc, si je veux dire que je veux avoir comme une interface utilisateur ici, alors je pourrais le mettre ici. Et comme vous pouvez le voir maintenant, j'ai une sorte de marqueur visuel ici, un arrière-plan. Et c'est essentiellement pour cela que les panneaux sont utilisés parce que maintenant si j'ajoute un nouvel élément, le nouvel élément de l'interface utilisateur pour travailler sur le panneau lui-même, alors il est ajouté en tant qu'enfant au panneau. Et comme vous pouvez le voir maintenant, c'est fondamentalement que je ne dirais pas que cela dépend du panel. Je peux aussi le mettre là-bas, mais c'est un bon moyen de structurer votre interface utilisateur générale. Vous devriez avoir quelques panneaux et ensuite avoir leurs enfants toujours au-dessus d'eux. Droit ? Ce qu'on peut faire, c'est faire quelques choses cool. Et ce serait ce qui suit. Donc ce que je veux vous montrer, c'est que maintenant on l'a mis ici. Et avec toute la mise à l'échelle précédente et tout cela. Eh bien, ce qui pourrait arriver, c'est que cela va évoluer avec elle. Donc c'est plutôt cool. Si nous avons cet aspect libre. Maintenant, il est parti, je suppose. Ce n'est pas ce n'est pas la meilleure chose. Si je peux avoir la fenêtre de jeu dehors d'ici, alors ce que nous allons voir, c'est que, vous savez, ça marche en quelque sorte, mais ça ne marche pas comme toujours. Donc c'est un peu bizarre, non ? Donc avec les textes qui ont assez bien fonctionné, mais maintenant si nous avons un aspect libre, ça va être un peu de bière, et c'est là que la Transformation Rect entre en jeu. Je veux juste montrer ça rapidement. Il y a beaucoup de choses qu'on peut mettre ici. Mais comme vous pouvez le voir, c'est absolument affolant. Lisez ça a l'air fou. Et je suis d'accord avec vous parce que nous pouvons aussi tenir Shift et tenir Alt pour avoir deux choses différentes. Ainsi, nous pouvons déplacer définit également le pivot et devrait également définir le positionnement. Donc, nous pouvons fondamentalement le faire de sorte qu'il soit ancré à un certain point. Maintenant, dans notre cas, ce que nous voudrions, c'est que nous voudrions que cela soit ancré en bas à droite ? Parce que pour le point final sorte de devient le, que diriez-vous ? Ça devient le, l' ancre et aussi le point de référence, non ? Donc, cela devient donc un point de référence. Donc, si je devais définir, par exemple, ceci ainsi que le pivot vers le bas, à droite. Donc rien n'a changé en ce moment. Tu vas être comme eux, ok, que rien n'a changé. Mais si je devais maintenant prendre cette fenêtre de jeu une fois de plus dehors, maintenant comme vous pouvez le voir, même si je redimensionnais ça, ça va rester en bas de l'écran. Et c'est aussi une des choses. Et ça va évoluer avec l'écran réel. C' est donc l'une des façons dont vous pouvez également faciliter le placement correct de vos éléments d'interface utilisateur. A cela n'a pas besoin d'être des panneaux, peut aussi être des textes et toutes les autres choses. Et bien sûr, si je devais maintenant, par exemple, si je tiens Alt, alors la position sera également définie. Et si je mets la position à, par exemple, en haut à gauche, comme vous pouvez le voir maintenant, elle est placée en haut à gauche de son premier parent. Donc, il ne reçoit pas, le texte lui-même, n'est pas mis en haut à gauche de la toile, mais en haut à gauche du panneau. C' est donc très important de noter ces ancres. Je ne dirais pas que nous allons regarder ça trop longtemps. Globalement. Ils peuvent être un peu intimidants parce que ça pourrait être comme, Oh mon Dieu, je ne sais même pas ce qui se passe ici. Totalement compréhensible. Mais je ne m'inquiéterais pas trop. Et pour l'instant, je voulais juste mentionner que vous pouvez fondamentalement ancrer l'objet du jeu à une partie spécifique de l'écran essentiellement. Eh bien, continuons avec le reste du panneau sera, c'est fondamentalement une image comme vous pouvez le voir. Donc, cela a simplement un composant d'image. Des milieux particuliers. Il s'agit donc de l'arrière-plan, de l'arrière-plan du panneau, et il a une couleur prédéfinie. Et puis toutes les autres choses qu'une image a aussi. Donc, c'est essentiellement ce que le panneau est et le texte que nous avons déjà vu. Il y a beaucoup de choses qui devraient vous être familières si vous avez utilisé un programme de traitement de texte comme Word par exemple, ou je ne sais pas, comme Google Docs. Vous pouvez définir une police. Vous pouvez modifier le style de police, la taille, même l'espacement des lignes. Alors rendons ça un peu plus grand. Par exemple, l'espacement des lignes peut être modifié, ce qui, bien sûr, ne fait rien parce que nous n'avons qu'une seule ligne à ce stade. Nous avons un alignement pour le texte lui-même. On peut aussi dire le meilleur ajustement. Ensuite, il va fondamentalement redimensionner la taille de la police à ce que nous voulons qu'elle soit. Nous pouvons spécifier une taille minimale et une taille maximale. Nous pouvons également changer la couleur du texte réel. Maintenant, cela, bien sûr, peut également être changé via un script. Alors mettons simplement le texte des panneaux sur l'objet de jeu réel lui-même. Et ouvrons ça. Et juste pour des raisons d'argument, disons que le texte de l'exemple est égal à ce point get texte du composant. Donc, là, la méthode du composant est une fois de plus utiliser l'exemple text dot txt. Donc, c'est 1 seconde je juste le changement du texte via un script que nous avons déjà vu auparavant, où nous changeons le texte de 100 à 300. Et bien sûr ce que nous pouvons aussi changer la couleur. Et puis ici, nous pourrions, par exemple, dire HSV couleur de point aléatoire, et puis que cela soit en fait, nous allons juste mettre dans la méthode de mise à jour ici aussi bien. Si l'entrée schottky vers le bas keycode point c. Et puis nous pouvons fondamentalement juste changer la couleur à nouveau. En ce moment, je ne vais pas vraiment extraire cela à une méthode différente. Je voulais juste montrer que c'est, par exemple, quelque chose que nous pourrions aussi faire. Maintenant changé de sommet. Nous sommes à l'écran. Si j'appuie sur la touche C, alors la, la couleur du texte changera également. Donc c'est plutôt cool, en fait. Un peu drôle. Oui, mais c'est la façon normale d'accéder aux éléments ou aux propriétés de ce composant particulier. Et oui, ce serait déjà le cas pour le texte normal et les panneaux. Et dans la prochaine conférence, nous allons en fait jeter un oeil à un meilleur texte même. Et cela va être du texte Mesh Pro, que je vous conseille d'utiliser à la place des textes normaux parce que parfois les textes normaux peuvent être un peu. Eh bien, je veux dire, je dirais juste qu'il n'y a pas autant d'options. C' est quelque chose que nous allons voir dans la prochaine conférence. Pour l'instant, C'était pour le texte et les panneaux. Comme je l'ai dit, les panneaux ne sont en fait rien de trop compliqué là-bas. Juste une image qui devrait en quelque sorte être utilisée comme arrière-plan et le texte. Eh bien, on en a déjà vu une partie. Et le reste est fondamentalement juste normalement accessible via un script. Et certaines choses. Par exemple, le meilleur ajustement peut être vraiment utile pour encore redimensionner le texte au fur et à mesure, n'est-ce pas ? Alors c'était tout pour cette conférence. J' espère que, comme toujours, vous l'avez trouvé utile. Et s'il y a des questions, hésitez pas à poser et je serai sûr de répondre. Et oui. 73. (UI (Unity TextMashPro pour obtenir un texte meilleur texte: D' accord, continuons l'introduction de l'interface utilisateur Unity ici pour le cours Unity. Et dans cette conférence, nous allons jeter un oeil au texte Mesh Pro. C' est essentiellement un paquet qui vient avec Unity lui-même, où vous ne pouviez pas avoir un meilleur contrôle sur votre texte. Donc, nous allons juste dupliquer la scène de texte de ce panneau une fois de plus, contrôler D tout en l'ayant sélectionné. Et L3 va être, faisons du texte Mesh pro. Oui, TMP, sonde en maille txt. Et ouvrons aussi, en nous assurant que c'est la scène sur laquelle nous travaillons. Et nous allons simplement ajouter un nouveau texte Mesh pro à la, aux candidats. Donc, cliquez avec le bouton droit sur l'interface utilisateur du Et au lieu de choisir du texte, nous allons choisir le texte, la sonde de maillage de texte. Et ce qui devrait arriver, c'est qu'une année de fenêtre particulière devrait ouvrir cet importateur TMP que nous allons importer sont les éléments essentiels. Donc, vous cliquez simplement sur ce bouton et puis il va faire quelque chose, peut-être ouvrir Visual Studio, mais ce n'est en fait pas nécessaire. Et voilà. Donc maintenant, il devrait être importé. Comme vous pouvez le voir ici, texte Mesh Pro. Et on peut refermer ça. Et maintenant, nous avons ce texte entre et puis entre parenthèses TMP ici. Et comme vous pouvez le voir, ce texte de l'interface utilisateur semble un peu différent. Donc, cela n'en fait pas partie, mais cela en fait partie. nombre de choses, comme vous pouvez le voir qui sont différentes. Donc, tout d'abord, nous avons un peu plus de deux pour la taille de la police. Nous avons également quelques atouts plus friands eux-mêmes. Celles-ci viennent avec des matériaux. Ceux-ci sont, nous allons aimer ignorer rapidement pour le moment. Il y a aussi des textiles que nous pourrions choisir. Par exemple, les en-têtes, les en-têtes particuliers. Ici. On peut avoir des citations, ce sont des titres et des trucs comme ça. Il y a des paramètres principaux. Ce sont principalement la police. Nous pouvons faire souligner l'italique d'écriture de style de police. On peut même avoir une ligne directe, tout en majuscules, tout en minuscules, quelque chose comme ça. La taille fonctionne également de la façon dont la taille automatique fonctionne. C' est un peu que je ne sais pas. Ce n'est pas aussi bon ici. Vous devez parfois rendre l'inspecteur un peu plus grand afin que vous puissiez choisir le Min et le max correctement. couleur du sommet, encore une fois , est simplement le, le réel, nous allons effectivement désactiver les gadgets pour un moment est simplement la couleur du texte. Dans ce cas, il y a aussi un dégradé de couleur. Nous pouvons donc mettre des gradients ici aussi. Donc je ne sais pas quelque chose comme le vert en haut à gauche et puis on a comme un rouge qu'ils sont. Et puis comme un bleu, ils sont. Comme vous pouvez le voir, on peut faire des effets fous ici. Si nécessaire. Il y a aussi un dégradé vertical et un dégradé horizontal ou juste un seul, non ? Nous pouvons remplacer la taxe. Je ne suis pas sûr à 100% si le paramètre de couleur remplace la balise de couleur. Je n'ai jamais joué avec celui-là. Donc, je ne peux même pas vraiment dire ce que cet élément est utilisé pour les options d'espacement. Donc, fondamentalement, si j'ai quelque chose écrit ici, je peux aussi probablement le faire. J' ai donc un éditeur normal ici. Et puis l'espacement, l'espacement entre les caractères. Nous avons l'espacement entre les mots eux-mêmes. Nous avons l'espacement entre les paragraphes et j'espacement entre les lignes aussi. Donc, les options d'alignement sont fondamentalement toutes les mêmes. Nous avons également l'option justifiée, une option de rinçage, et même une option de centre géométrique. Donc, il y en a quelques autres ici aussi, en plus d'avoir la ligne de base, ligne médiane et la ligne de plafond si cela est nécessaire. Donc, si vous avez besoin de beaucoup plus, fondamentalement, le contrôle sur votre texte que le texte Mesh Pro est un must. Mode d'emballage signifie simplement, ok, fait-il, comment est-ce envelopper ? Donc maintenant ça ne fait rien. Mais si je l'active maintenant, comme vous pouvez le voir, il s'enroule automatiquement à la ligne suivante ici. Même avec le débordement. Il y a quelques choses que vous pouvez faire avec le débordement ont des ellipses, elles sont masquantes, ne font rien de tronqué, donc ça ne le montre pas. Donc il y a quelques choses que vous pouvez faire là-bas. Et ensuite la cartographie horizontale. Alors à quoi ça ressemble ? En fait, ça ne change rien en ce moment. Mais ce qui est vraiment intéressant, c'est maintenant les paramètres supplémentaires ici. Il y a donc des marges que vous pouvez mettre. Donc fondamentalement la marge en termes de GameObject lui-même et il y a un tri géométrique. Je ne crois pas que ça fasse quoi que ce soit, non. Et ce qui est intéressant, cependant, c'est le texte riche. Je voudrais certainement utiliser le texte enrichi, leur ensemble, c'est une sorte de choses intéressantes dans les paramètres supplémentaires. Ce qui est très intéressant ici, c'est aussi le matériel. Donc, le matériel, nous ne allons pas aller trop dedans, mais le matériel qui fondamentalement change aussi une partie du, certains du texte lui-même. Ainsi, par exemple, la couleur ici peut également être choisie avec le matériau lui-même. Et ce que vous pouvez aussi faire maintenant est d'avoir un contour qui est vraiment, vraiment cool. Ainsi, vous pouvez, par exemple, avoir un contour ici, comme vous pouvez le voir, maintenant ce texte a réellement un contour ou une sous-couche. Je crois que c'est une sorte d'ombre, je crois. Voyons si je peux. Oui, voilà. Donc, vous allez avoir une ombre sur votre texte aussi. Voilà, tu y vas. Ce serait la sous-couche, non ? Il y a donc quelques choses que vous pouvez faire avec ce matériel, que vous pouvez aussi changer. Donc, l'ensemble, les projets de maillage de texte vous donne un contrôle énorme sur votre texte. Et aussi ce qu'il est généralement un peu plus net à l'intérieur du jeu. Donc, si nous devions juste, rendons ça un peu plus grand ici. Habituellement, il est lisible. Un peu plus lisible, non ? Nous allons aussi juste pour des raisons d'argument, rouvrir le texte des panneaux ici et je vais juste ajouter le texte Mesh Pro, eh bien, idée à elle. Donc, généralement, nous avons utilisé le texte que nous ne pouvons pas manger plus utiliser pour d'autres manuels scolaires sonde nous devons être en utilisant TMP Pro ou TM Pro. C' est l'espace de noms que nous devons utiliser. Et pour obtenir le texte, nous devons utiliser le texte de soulignement TMP. Donc c'est le TMP txt. Fondamentalement, faisons-le comme ça. Tmp txt. En fait, faisons-le comme ça. Ouais, c'est mieux. Mais dans l'ensemble, le texte lui-même est pratiquement le même. Ainsi, comme vous pouvez le voir, nous pouvons choisir la couleur du dégradé, activer et le désactiver. Nous pouvons changer la police et point txt une fois de plus est simplement la chaîne qui est associée aux textes. Donc changer de texte est la même. Voilà, tu y vas. Donc, c'est tout ce que nous avons vraiment besoin de savoir à ce sujet que nous n'utilisons plus la classe de texte, mais la classe de taxe de soulignement TMP. Mais si vous gardez cela à l'esprit que tout autre est vraiment le même, nous pouvons toujours changer fondamentalement toutes ces choses ici, nous aimerions écrire et ce serait déjà pour cette conférence. Juste un rapide Montrer que le texte Mesh pro texte est fondamentalement un supérieur dans presque tous les sens au texte. Cependant, si vous avez vraiment seulement besoin d'utiliser des symboles similaires, ou si vous voulez vraiment seulement déboguer quelques choses en termes de texte d'interface utilisateur, alors les textes normaux suffiront également pour cela. Mais oui, le TMP txt vous donnera beaucoup plus de contrôle sur l'apparence de votre texte, non ? Alors c'était tout pour cette conférence. Comme toujours, j'espère que vous l'avez trouvé utile et que vous apprenez quelque chose de nouveau. S' il y a des questions comme toujours n'hésitez pas à poser et je serai sûr de répondre. Et oui. 74. (Unity UI) Ajouter des images à notre UI: D' accord, continuons avec l'introduction de l'interface utilisateur Unity ici pour le cours Unity. Et dans cette conférence, nous allons jeter un oeil aux images de l'interface utilisateur ou comment ajouter des images à votre œil. Nous l'avons vu aussi en très peu de temps lorsque nous faisons notre interface utilisateur pour le clicker de fromage. Donc ce qu'on va faire, c'est d' abord ajouter un nouveau dossier ici, et ça va être notre dossier sprites. Nous allons ajouter le clicker. Par exemple. Vous, bien sûr, pouvez également ajouter un élément différent ici. Vous pouvez donc ajouter un élément différent. Et je vais juste définir le mode de filtre à pointer et la compression à zéro. Et puis ce que je peux faire est, par exemple, sur ce panneau, tout d'abord, bien sûr, nous allons dupliquer la scène. Ce serait des images L4. Ouvrons cela et passons sur notre panneau à un nouvel élément de l'interface utilisateur. Et ce serait l'image ici. Et voilà, l'image. Et ça va être fou, mais c'est assez similaire au rendu sprite. Donc si on met ça ici, le sprite, comme vous pouvez le voir, il est là. Et je veux dire, c'est fondamentalement tout. Je veux dire, je ne veux pas être trop fou à ce sujet, mais dans l'ensemble, c'est fondamentalement, vous pouvez le redimensionner ici aussi. Donc, si nous allons image, maintenant nous pouvons le redimensionner. Que ce soit, tu sais, de la folie ou tout simplement normal. Maintenant, nous pouvons aussi, bien sûr, changer la couleur. Donc, c'est une sorte de couleur de superposition sur le dessus de tout le sprite réel est. Et c'est vraiment la seule chose intéressante pour les images. Nous allons jeter un oeil à un nouveau script aussi. Donc L4, je n'ai pas eu ce nouveau dossier L4. Voilà, tu y vas. L4. Ce serait des images. Et puis ce serait l'image. Faisons un exemple d'image, n'est-ce pas ? C' est un bon nom. Exemple. Oui. Ajoutons aussi cela à l'image elle-même. Ils y vont, puis ouvrons et voyons ce qu'on peut voir. Eh bien, l'idée ici est qu'une fois de plus, nous avons, par exemple, tout d' abord, nous avons besoin de la, nous devons utiliser le moteur Unity que vous connaissez, pas l'accessibilité dans ce cas, mais l'interface utilisateur. Voilà, tu y vas. Et nous avons ensuite, par exemple, une image privée, l'image l'interface utilisateur, par exemple, l'image de l'exemple ici. Et puis nous pourrions aussi avoir un sprite par exemple, mais nous n'avons pas besoin de ça. Nous l'avons déjà. L' exemple d'image est égal à ce point get image du composant. C' est ainsi que nous obtenons le composant d'image. Cela ne devrait pas être trop surprenant du tout, parce qu'une fois de plus, l'image ici ils vont. L' image ici est encore une fois, juste un composant normal et il est en fait très facilement accessible. Alors, comment pouvons-nous changer ces sprites ? Eh bien, on fait juste dot sprite. C' est tout ce que c'est. C' est exactement le domaine auquel nous devons accéder afin de changer la propagation. Donc, c'est presque exactement la même chose que le moteur de rendu sprite. Donc, l'image elle-même n'est vraiment pas si compliquée du tout. Et il y a une chose intéressante, et ce serait l'image brute. Donc, si j'ajoute l'image brute ici, si nous regardons ceci en ce moment et que nous le déverrouillons. Donc, comme vous pouvez le voir, l'image brute ici est un peu différente car au lieu de prendre un sprite, cela prend de la texture. Donc, si vous, par exemple, et c'est quelque chose que nous n'allons pas examiner en détail, mais je voulais le mentionner. Donc, si vous, par exemple, avez une caméra que vous voulez alimenter, donc, une webcam, alors vous ne pourriez pas, je veux dire même un film fondamentalement, cela pourrait être affiché sur une image brute parce que cela peut être traduit en une texture. On ne va pas entrer dans les détails avec ça, mais c'est une des choses où l'image brute aurait plus de sens. Et comme vous pouvez le voir, pour qu'on puisse toujours mettre le clicker ici. Donc ce n'est pas un problème. Mais maintenant, ce serait une texture, n'est-ce pas ? Mais dans l'ensemble, ce serait déjà le cas pour les images. Je sais que ce n'est pas quelque chose de fou ou aussi. Oui, intéressant. Mais c'est ainsi que vous ajoutez une image à votre interface utilisateur. Tout comme avec tout le reste sur l'interface utilisateur, vous pouvez le centrer. Faites tout ce que vous voulez avec le recteur, transformez, déplacez-le et tout ce jazz. Mais dans l'ensemble, il est très, très similaire au moteur de rendu sprite. Droit ? Et ce serait tout pour cette conférence. Comme je l'ai dit, un peu plus court. Mais ce n'est pas trop mauvais parce que les images le sont, au moins en termes d'interface utilisateur après avoir vu le rendu sprite. Pas si compliqué, non ? J' espère, j'espère toujours que vous avez trouvé cela utile. S' il reste des questions, hésitez pas à les poser et je serai sûr de répondre. Et oui. 75. (UI (Unity Les touches clics peuvent être amusants: D' accord, continuons avec l'introduction de l'interface utilisateur Unity ici pour le cours Unity. Et dans cette conférence, nous allons jeter un oeil aux boutons. Nous avons donc déjà vu un composant de bouton la dernière fois dans le clicker de fromage, où nous avons fait quelques boutons sur lesquels nous avons pu cliquer. Et maintenant, nous allons en fait ajouter un bouton normal à partir d'ici. Donc, faites un clic droit sur le panneau, par exemple, u, i, puis choisissez le bouton. Nous allons utiliser le bouton normal ou le texte Mesh Pro pour cet exemple ici. Et oui, donc une fois que cela est réellement ajouté ici, nous pouvons fondamentalement le redimensionner comme n'importe quel autre objet normal fondamentalement. Et le composant intéressant sur ce bouton est fondamentalement le composant chignon juste ici. Maintenant, nous en avons déjà vu un peu, mais pas trop. Le texte qui est affiché sur le bouton est un autre composant de texte en dessous, essentiellement en tant qu'enfant. Et on peut agrandir ça. Et par exemple, dites Click Me, Quelque chose comme ça, non ? Faisons ce meilleur ajustement. Voilà, tu y vas. Donc maintenant il est dit Cliquez sur moi Si nous regardons dans le jeu là il est, il y a le bouton. Et nous pouvons en fait avoir quelques choses que nous pouvons fondamentalement mettre en place. Donc numéro un, nous pouvons définir si c'est insoluble ou non. Donc, si ce n'est pas interactible, obtient fondamentalement cela, obtient la couleur désactivée qui est notifiée ici. Voyons juste la couleur désactivée ici. Donc nous pouvons aussi dire, oh, eh bien nous voulons le rendre rouge, mais je pense qu'il est logique d'avoir ce genre de gris dehors. C' est ce que la plupart des gens attendent pour un bouton désactivé. Il y a aussi quand nous l'allumons à nouveau, nous avons la couleur normale. Ensuite, nous avons une couleur qui est mise en évidence. Donc, si nous survolons dessus, alors cela devient cette couleur est alors que j'appuie sur la touche de la souris, par exemple. La couleur sélectionnée est si, par exemple, nous nous déplacons avec les touches fléchées sur le clavier, parce que nous pouvons essentiellement sélectionner différents types d'éléments d'interface utilisateur avec les touches, euh, là aussi. Nous avons également un multiplicateur de couleur et une durée de fondu. Nous pouvons également changer la transition, sorte que nous pouvons effectivement avoir une animation particulière associée à elle. On peut même changer le sprite lui-même. Donc, si vous avez différents sprites préparés pour le bouton, alors vous pouvez également le faire aussi. Et la navigation ici, c'est exactement ce qui est fondamentalement, donc les touches fléchées de votre clavier afin que vous puissiez basculer entre certains boutons, par exemple. Donc, si je devais dupliquer ce bouton Contrôle D, et je vais le mettre ici, alors nous pouvons réellement regarder la navigation visualisée. Et comme vous pouvez le voir, si j'appuie sur la flèche droite, je passerais à celle-ci. Si je quittais arrive passerait à celui-ci en ce moment ce sont les seuls boutons interactibles, vous savez, qu'il y a. C' est ce que la visualisation montrerait. Mais alors nous avons aussi bien sûr, l'onclick, qui est la seule chose que nous allons vraiment jeter un coup d'oeil rapide. Donc, nous allons voir que c'est un grand, Nous avons en fait pas changé Le nous avons doublé la scène et changer quelque chose. Incroyable, Ce n'est pas quelque chose que nous pouvons faire. Donc, faisons réellement l'image réelle ici, boutons L5. Nous allons recharger ça et ensuite la scène dupliquée que nous allons juste prendre comme elle est. Et ça va se passer aussi bien. Alors les boutons L5, que pouvons-nous faire ici ? Créons un nouveau script, boutons L5. Et nous allons en fait créer deux scripts dans ce cas ici. L' un d'eux est juste un bouton. Donc, je vais montrer quelques choses que nous pouvons faire dans les scripts avec des boutons. Et puis il y a un autre script, c'est juste la sortie de l'exemple. Disons, appelons ça quelque chose comme ça. Et nous allons créer un nouvel objet vide ici, qui va être la sortie de l'exemple. Et mettez-le à 000 et mettez l'exemple de script de sortie là-dessus. Et puis si nous descendons sur le bouton du panneau, ajoutez le script des boutons sur celui-ci. L' ego, il est là. Et pourtant, ouvrons ces deux et voyons ce que nous pouvons faire ici. Donc, le premier va être, regardons la sortie de l'exemple. Fermons les autres. A l'intérieur d'ici. En fait, nous allons seulement avoir un vide public. Et puis disons une sortie, sortir quelque chose qui est le nom de la méthode. Et cette méthode va simplement se connecter fondamentalement, j'ai quelque chose de sortie, j'ai quelque chose de sortie, quelque chose. Voilà, tu y vas. Et c'est essentiellement la chose que nous pourrions ajouter à ce bouton. Donc, si vous regardez à nouveau le bouton, alors nous pouvons ajouter manuellement un événement sur clic. Ça arrive si on met un plus. Et ici, nous pouvons réellement mettre tout pour que nous puissions soit le mettre, comme vous pouvez le voir, nous pouvons mettre dans des scripts, nous pouvons mettre différents, presque tous les objets que nous pouvons essentiellement tirer là-dedans. Mais ce que nous voulons mettre dans est cet exemple, sortie GameObject. Et si nous mettons ça là-dedans, alors nous pourrons accéder à toutes ses fonctions. Ainsi, par exemple, les fonctions de l'objet de jeu, nous pouvons changer le nom. Nous pouvons soit le mettre activé soit désactivé. Donc, c'est aussi un peu utile pour certaines choses où vous n'avez pas besoin de faire nécessairement de nouvelles méthodes pour cela. Nous pouvons définir la transformation afin que nous puissions faire quelques choses ici aussi. Et aussi nous pouvons accéder au script de sortie de l'exemple de composant, qui a alors aussi la méthode de sortie Something ici que nous pouvons essentiellement mettre là, non ? Donc, si nous cliquons maintenant comme vous pouvez le voir, j'ai sortie quelque chose. Donc, la méthode sur cet exemple, la sortie est en fait appelée aucun problème. Maintenant, il y a une autre façon d'ajouter de nouvelles fonctionnalités à un bouton via le script. Et nous allons jeter un oeil à ça maintenant dans le script de bouton, en quelque sorte le script Bund. Tout d'abord, bien sûr, nous devons utiliser le framework UI point moteur Unity, le framework UI, ou plutôt l'espace de noms que vous allez. Et puis nous pouvons en fait tout simplement un bouton privé. Donc c'est le bouton, disons. Et celui-là va être réglé sur ce bouton point get Component. Donc, c'est une analyse de ce composant ou de la méthode du composant qui brille à travers et le bouton. Nous pouvons alors avoir essentiellement ce onclick et c'est un événement click comme vous pouvez le voir. Et nous pouvons y ajouter des auditeurs. A l'intérieur d'ici. Comme vous pouvez le voir, les paramètres doivent être une action « Unity Events », « Unity ». Et nous pouvons le faire en faisant une expression lambda ici. Donc, par exemple, nous pourrions dire déboguer le journal des points et ensuite quelque chose comme quatre bruits. Pourquoi pas ? Faisons une année plus drôle. Pourquoi je n'aurais pas raison. Donc, cela aurait alors à son tour simplement appeler ceci. Nous pouvons aussi, si nous avons une autre méthode ici, vous pouvez aussi dire privé. Disons éviter le bouton de test ou quelque chose comme ça. Journal des points de débogage. Encore une fois, j'ai appuyé sur le bouton. Et nous pouvons également ajouter cela en faisant un écouteur sur clic. Et puis nous pouvons simplement mettre dans le bouton de test comme une sorte de juste le nom de la méthode sans qu'il ait été dans un appel de méthode. Donc, ne mettez pas entre parenthèses ici, mais juste le nom réel de la méthode. Et cela fonctionne aussi. Donc, cela va alors appeler cette méthode lorsque le bouton réel est cliqué. Voyons si ça marche. Donc, ce que nous devrions nous attendre voir, c'est que nous voulons voir que j'ai quelque chose de sortie pour les bruits, puis l'IF a cliqué sur le bouton. Voyons si c'est vraiment le cas. Au fait, nous ne pouvons pas voir les changements onclick ici. Mais ce qu'on ne voit pas, c'est les quatre bruits et j'appuie sur le bouton. Donc, ceux-ci sont alors appelés pas de problèmes par le bouton clic. Et c'est essentiellement l'auditeur de la publicité ici. Peut être incroyablement utile si vous voulez définir les différentes fonctionnalités pour le bouton, peut-être selon si quelque chose est ouvert ou fermé ou même si vous avez différents, vous savez, panneaux de contrôle ou quelque chose comme ça. Donc, il y a une certaine fonctionnalité et une certaine utilité pour cela, certainement. Mais dans l'ensemble, c'est déjà pour le bouton. Ce n'est pas si excitant. Encore une fois, il y a bien sûr quelques choses où nous pouvons changer les couleurs et quelque chose comme ça et l'intractabilité. Mais nous avons également vu les changements à la fois de l'intractabilité et un peu pour l'ajout de nouveaux auditeurs. Ils sont dans le cliqueteur de fromage. Et dans l'ensemble, ce serait bon pour le bouton. Il n'y a rien de trop fou à ce sujet. C' est fondamentalement juste un élément d'interface utilisateur que vous pouvez cliquer. Et ce serait tout pour cette conférence comme toujours, j'espère que vous l'avez trouvé utile et que vous apprenez quelque chose de nouveau. S' il y a des questions, bien sûr, comme toujours, n'hésitez pas à poser et je serai sûr de répondre. Et oui. 76. (UI) Unity Toggles Beaux diapositives et diapositives: D' accord, continuons l'introduction de l'interface utilisateur Unity ici pour le cours Unity. Et dans cette conférence, nous allons jeter un oeil aux bascules et aux curseurs. Donc, tout d'abord, nous allons dupliquer notre L5 vu jusqu'à en faire L six curseurs totaux. Et nous allons aussi, ouais, en fait, nous n'avons pas besoin de créer de scripts pour cela parce que ceux, eh bien, je veux dire, la plupart de cela va en fait être assez explicite. Et vous allez accéder aux composants spécifiques, champs et aux propriétés des composants. Tout ce que nous avons vu jusqu'à présent, donc, ouais, à l'intérieur de la toile, ajoutons d'abord un nouveau panneau ici. Donc ici un panneau. Et mettons ceci sur le côté droit de l'écran. Donc panneau, Mettons aussi tourner le dos sur les gadgets qui, ce serait un peu utile un ego. Et oui, c'est bon. Nous pouvons également éloigner un peu le texte. Et puis le début de ce panneau, nous avons deux éléments d'interface utilisateur à ajouter. L' un d'eux va être le bascule en premier. Alors rendons ça un peu plus grand et je vais jeter un coup d'oeil à ça. Et puis nous allons aussi immédiatement lui ajouter les curseurs. Et nous pouvons en fait agrandir et voir immédiatement quelque chose. Donc c'est plutôt cool. Jetons donc un coup d'oeil au bascule d'abord. Donc, le bascule, l'objet de jeu réel a le composant total à lui. On va jeter un coup d'oeil à ça dans un petit moment. Mais nous allons d'abord jeter un oeil à l'arrière-plan de la coche et l'étiquette. Donc, l'étiquette est un objet texte normal, qui est généralement ce qui vous montre ce que fait ce bascule particulier. Maintenant, on peut juste dimensionner ça pour voir ce qui se passe ici. Même avec l'arrière-plan et la coche. Ce sont tous les deux ces deux sont juste une image. En gros. À la fois l'arrière-plan et la coche, juste une image que vous pourriez éventuellement remplacer même. Vous pouvez bien sûr également mettre à l'échelle celui-ci. Donc, tout d'abord, disons que la taille, la taille de l'arrière-plan, puis la coche peut également être dimensionnée X2. Allons frapper celui-là. Et puis si nous appuyons sur la touche Alt pendant que nous le redimensionnons, alors nous pouvons le redimensionner sous tous les angles. Cela dépend si vous voulez ou non une telle marque de bascule. Mais bien sûr, c'est quelque chose que vous pourriez, par exemple, faire. Et donc c'est fondamentalement juste la coche en arrière-plan là juste pour très facilement comprendre les images. Et l'étiquette sera, comme je l'ai dit, est juste le texte. Et puis le bascule est celui qui est intéressant. Donc, une fois de plus, interactible afin que nous puissions réellement l'activer et le désactiver. La transition est la même. Nous pouvons être assistés par une couleur ou nous pouvons changer le sprite ou avoir une animation associée à elle. Donc, c'est fondamentalement tout ce que nous avons déjà vu dans le bouton. La différence ici est juste que nous avons une valeur inconnue changé. Fondamentalement méthode qui est appelée lorsque la valeur change. Mais c'est en fait aussi un événement auquel vous pourriez, par exemple, abonner à ce que nous avons vu avec nos propres événements. C' est l'un de ces événements en théorie avec lesquels nous pourrions le faire. Et ici, nous pouvons simplement ajouter aussi. Ainsi, par exemple, sortie d'exemple. Encore une fois, quand il change, nous pouvons, par exemple, dire sur la sortie de l'exemple de basculement et de fonction, puis dire quelque chose de sortie. Cela, bien sûr, fonctionne également si nous avons la méthode que nous voulons appeler. Si cela a réellement un paramètre booléen, alors il va également passer le paramètre booléen que nous changeons, le bascule dans. Donc c'est plutôt cool. Est activé est fondamentalement exactement le booléen que nous voulons vérifier. Donc, c'est activé, fait apparaître une tique, et si ce n'est pas le cas, alors dans ce cas, l'est sur booléen est faux et il n'y a pas de tique là. Donc, nous allons juste utiliser le bascule une ou deux fois. Donc, comme vous pouvez le voir, je peux cliquer dessus et comme vous pouvez le voir, j'ai quelque chose de sortie. Et puis, si nous changeons à nouveau, cela se produira une fois de plus parce que pour l'instant, nous ne cherchons que sur le changement de valeur. Donc, nous cherchons seulement si cette valeur change réellement de true à false ou de false à true. Ainsi, par exemple, si nous changeons l'étiquette, cela pourrait, par exemple, être quelque chose comme une option de mort perma. Par exemple, quand il s'agit du curseur, cette lettre est, je dirais, en quelque sorte, autour de la même complexité. C' est un peu plus complexe. Nous avons donc une fois de plus une image. Il s'agit simplement de l'image d'arrière-plan du curseur. Je conseille de garder cela comme une sorte de la même longueur. La zone de remplissage à la zone de remplissage sera affichée une fois que nous avons réellement déplacer cette poignée, poignée, légère zone et la poignée, essentiellement la poignée que nous pouvons déplacer, que vous ne devriez pas déplacer la poignée indépendamment du curseur. Parce que le curseur ici, quand nous regardons la valeur ici, si nous changeons cela et comme vous pouvez le voir, le curseur change réellement. Et la chose vraiment cool à propos de ce curseur ici est que nous pouvons réellement dire, OK, tout d'abord, dans quelle direction il va de droite à gauche, de gauche à droite, haut en bas, ou de bas en haut, puis de haut en bas. On va le garder de gauche à droite. Maintenant, une fois de plus, toutes les choses habituelles qui peuvent être faites, transition interactible les couleurs, vous savez, c'est, c'est une sorte de chose. Et la valeur Min et max d'autres choses qui sont vraiment intéressantes. Parce que l'idée ici est que si nous bougeons fondamentalement cela, nous pouvons , par exemple, dire, eh bien, nous voulons que la valeur minimale soit 0 et la valeur maximale soit 100, par exemple, non ? Ensuite, vous pouvez changer cela. Et comme vous pouvez le voir maintenant ce nombre change ici de 0 à quelque chose comme ça. Et nous pouvons aussi dire, eh bien, nous voulions que ce soit seulement des nombres entiers ou nous ne voulons pas que ce soit des nombres entiers. Donc, vous pourriez, par exemple, je crois que si je mets 10.5, alors cela fonctionnerait. Si j'ai des nombres entiers, alors seuls les entiers sont la chose qui fonctionnerait sur la valeur ici. Donc c'est plutôt cool. On peut dire qu'on peut aussi être négatif, non ? Ça marche bien. Donc, c'est vraiment cool pour envoyer des valeurs différentes pour cela. Donc, cela pourrait, par exemple, être A1 et FMV ou quelque chose comme ça. Si nous voulons un texte pour cela, nous devrions l'ajouter nous-mêmes. Mais ça ne devrait pas être un problème. Donc, nous pouvons, par exemple, simplement dire le texte de l'interface utilisateur, puis l'ajouter ici, à l'arrière, puis le rendre un peu plus grand. Dites quelque chose comme f de v par exemple. Et puis nous avons un texte ici. Donc, cela fonctionnerait aussi comme un exemple. Et oui, on peut aussi changer ça. Donc, à l'intérieur de notre jeu, quand nous avons ceci, si nous sélectionnons le curseur et vous pouvez voir en ce moment la valeur est 35. Et si je clique dessus et que je le change réellement, et comme vous pouvez le voir, la valeur change aussi. Je peux aussi croire, ok, Scroll prêt ne fonctionne pas comme ça, mais vous pouvez utiliser les touches fléchées pour déplacer fondamentalement de gauche à droite pour la valeur. Et encore une fois, il y a un autre événement ici que vous pourriez vous abonner. Donc, sur la valeur a changé. Et cela vous donne la valeur avec elle comme paramètre. Donc, en théorie, vous pourriez avoir une méthode y'll qui a, qui évalue le changement ici. Et si c'est quelque chose de particulier, alors quelque chose pourrait arriver là. Droit ? Et ce serait en fait essentiellement pour les bascules et les curseurs. Je pense qu'ils sont principalement utiles dans les menus d'options. En dehors de ça, je ne suis pas sûr à 100% de l'endroit où vous les utiliseriez, mais je crois que beaucoup de gens pourraient trouver d'autres moyens créatifs pour vous permettre de les utiliser, non ? Mais ce sera pour cette conférence comme toujours, j'espère que vous l'avez trouvé utile et que vous apprenez quelque chose de nouveau. S' il y a des questions, comme toujours, hésitez pas à poser et je serai sûr de répondre. Et oui. 77. Mise en page de Unity UI) en page en page en forme de Unity Unde Unde Unde UI): D' accord, continuons avec l'introduction de l'interface utilisateur Unity ici pour le cours Unity. Et dans cette conférence, nous allons jeter un oeil aux mises en page. Donc, c'est essentiellement là que nous examinons bien, les mises en page et comment automatiser la mise en page de votre interface utilisateur. Et pour cela, j'ai déjà créé la mise en page L7 en tant que scène, donc vous pouvez le faire aussi. Et à cela, nous allons ajouter une nouvelle toile ici. Bien sûr, cette toile va être sous caméra spatiale mondiale, caméra principale. Et puis nous allons également nous assurer qu'il a le même scalaire ici. Donc, l'échelle avec la taille de l'écran, 1920 à 10 , 80 et 85, et les pixels de référence, nous allons le définir sur 200, juste pour l'enfer. Droit ? Et maintenant, nous allons ajouter un panneau. Voyons voir, voilà. Et puis nous allons dupliquer ce panneau trois fois pour que nous ayons trois panneaux. Et tous ces trois panneaux vont être des enfants du premier panel. Et le, celui-ci, nous allons juste redimensionner le panneau. Numéro un, nous allons le redimensionner et le mettre ici. Et puis nous allons redimensionner celui-ci aussi. Ne doit pas nécessairement avoir la même taille. Juste similaire. Et nous allons mettre ça au milieu juste ici. Et puis nous allons prendre le dernier panel et faire quelque chose de très similaire. Pour que nous ayons maintenant trois panneaux l'un à côté de l'autre. Et soudain comme ça, ça marche très bien. Réalisons cela un peu à l'échelle pour qu'ils soient en quelque sorte de la même taille, ne pas comme je l'ai dit, et je dois être la même taille parce que nous allons changer les tailles de toute façon. Le premier que nous allons regarder est la disposition verticale. Je vais donc appeler ça la disposition verticale. Et ce qui est assez cool, c'est que nous pouvons fondamentalement avoir un certain type de groupe de mise en page dans ces panneaux. Tout d'abord, nous allons créer une sorte de, un nouveau, eh bien je suis un peu comme un présentoir. Nous allons donc ajouter un nouveau panneau ici. Et on va faire ça comme ça pour qu'il soit plutôt centré. Et puis sur celui-ci, nous allons ajouter quelques détails. Ainsi, par exemple, une nouvelle image. Donc, vous pourriez penser à cela, peut-être comme ceci est peut-être un écran de sélection pour un élément particulier ou quelque chose comme ça. Donc nous avons une image ici. On ne va pas le remplir, on va le garder comme ça. Je veux dire, on pourrait le remplir avec un clicker, je suppose. Pas comme ça, mais comme ça. Ainsi, nous pouvons, par exemple, mettre le clicker là-dedans. Pourquoi pas ? Et puis sur le panneau, nous allons aussi ajouter un nouveau texte. Donc on va peut-être avoir un texto en haut, ce qui va être quelque chose comme un article vraiment cool, vraiment cool, non ? Et puis rendons cela un peu plus grand pour que nous puissions réellement le lire correctement. Faisons le mieux en forme. Oui, c'est bien. Et puis nous allons dupliquer ce texte et peut-être avoir une description ici. Donc on va juste utiliser quelque chose comme Lorem Ipsum pour celui-là. Alors voilà. Bon, donc maintenant nous avons un petit panneau sympa ici. Peut-être un panneau d'élément ou quelque chose comme ça, que nous voudrions, bien avoir cela affiché d'une manière verticale. Donc, nous voulons que cela soit affiché comme ça. Et puis la suivante ici et la suivante ici. Bien sûr, nous pouvons dupliquer ce contrôle D et ensuite déplacer le second un peu vers le bas. Et ainsi de suite et ainsi de suite. Mais cela ne fonctionne pas aussi bien que nous le souhaiterions. Et par conséquent, ce que nous pouvons faire est que nous pouvons simplement mettre une mise en page sur ce panneau ici. Et c'est ce qu'on va faire. Donc, nous allons aller à Ajouter un composant, euh, et ensuite mettre en page juste ici. Et puis nous allons utiliser la disposition verticale sur celle-ci. Maintenant, tout d'abord, comme vous pouvez le voir, tout se casse ici. Ne vous inquiétez pas pour ça. Nous allons utiliser, nous allons le faire et corriger ça dans un court moment. Donc, nous pouvons revenir ici et comme vous pouvez le voir, certaines valeurs sont pilotées par groupe de mise en page verticale. Donc, cela signifie que cela change fondamentalement. Maintenant, on peut changer ça. Allons au panneau de l'article, non ? Euh, échangé un peu. Nous pouvons cependant, comme vous pouvez le voir, changer de position. Nous pouvons changer la taille ici, mais nous pouvons changer la position maintenant la taille n'a pas d'importance en ce moment à quoi elle ressemble. Parce que nous allons aussi dire utiliser l'échelle de l'enfant, que fondamentalement l'enfant, si nous en fait, ce n'est pas l'échelle, sa taille. Voilà, tu y vas. Donc, si nous faisons cela, donc si nous disons contrôle la taille de l'enfant, alors il sera taille jusqu'à exactement la taille de son parent. Donc, le panneau ici va taille jusqu'à son parent. Et maintenant, la chose cool avec le groupe de mise en page et le groupe de couches verticales pour cela aussi, nous pouvons dire un remplissage. rembourrage est essentiellement l'espace entre l'enfant et ses bordures parentales, pour ainsi dire. Donc si je suis parti ici, comme vous pouvez le voir, il devient plus petit à gauche. Ainsi, nous pouvons par exemple, disons 15, 15 et 15. Donc maintenant, il va être déplacé au milieu. Et en quelque sorte 15. L' espacement peut également être prédéfini. Alors mettons un 15. Et si vous deviez maintenant dupliquer ce panneau d'éléments, regardez ce qui se passe. Ils mettent automatiquement en page que, se positionnent ici avec un espacement de 15 entre eux et partout à partir de la frontière de nous avons aussi un 15 Yup. Unité. Fondamentalement espacement ou rembourrage. Dans ce cas. L' alignement de l'enfant dit simplement, Ok, où commençons cet alignement ? Dans ce cas, ça n'a pas vraiment d'importance. Où pourrait avoir de l'importance, c'est si vous mettez en bas alors nous compterions du bas vers le haut fondamentalement. Mais en haut à gauche, ça irait. arrangement inverse inverse simplement l'ordre de ceci, la mise à l'échelle et la taille, comme je l'ai dit. Donc, si vous mettez la taille, par exemple, pour la hauteur, moment, rien ne change ici, mais nous pouvons étendre cela. On peut forcer l'enfant à s'agrandir. Et c'est souvent ce que nous voulions faire. Parce que si nous ajoutons maintenant plus, comme vous pouvez le voir, maintenant à un moment donné, il devient un peu trop bondé. Mais pour, par exemple, fonctionne vraiment très bien et il a l'air vraiment sympa. Donc, ce serait la disposition verticale. Maintenant, ensuite, la prochaine est la disposition de la grille également utilisable ? Souvent, permet de copier l'un de ces panneaux d'élément et de le coller ici. Sur la mise en page de la grille et assurez-vous qu'elle est réellement centrée ici. Et on va faire ça un peu. Donc, nous sommes en fait mis la description en quelque sorte ici. Et puis, vous avez quelque chose comme ça. Alors mettons ça ici et puis le noeud tourne le bien. Et puis le texte du titre va monter en haut et peut-être le rendre un peu plus petit aussi, quelque chose comme ça. Et oui, on va voir si ça marche aussi. Donc peut-être un peu moins de texte et, ou un peu plus petit d'une image. Et c'est bon. Maintenant sur la disposition de la grille. Donc, une fois de plus, sous la mise en page, nous pouvons simplement dire disposition de la grille. Il redimensionnera immédiatement le panneau de l'élément ici. Et nous allons nous inquiéter à ce sujet dans un peu de temps parce que là, cette taille de cellule est exactement ce qu'elle fait. Donc, cela fait une taille particulière. Tout d'abord, regardez le rembourrage à nouveau, c'est le panoramique une fois de plus est exactement le même. Donc, si je dis 15, 15, 15 et 15 alors va avoir un rembourrage à la frontière du parent. Fondamentalement, la taille de la cellule spécifie exactement la taille de chacune des cellules. Donc, par exemple, nous pourrions dire quelque chose comme, eh bien, peut-être un 150 est suffisant, mais pourquoi il doit être comme 200. Et ça pourrait, ça pourrait marcher, non ? Ainsi, nous pouvons, par exemple, rendre cela un peu plus petit aussi. Donc on peut le rendre un peu plus petit, non ? Ensuite, cela correspondrait et rendrait cela un peu plus petit. Ça va être difficile à lire en ce moment, mais c'est bien sûr, juste un exemple de toute façon. Alors voilà. Donc ça ne fonctionnerait pas en théorie. Et puis si nous devions ajouter un nouveau panneau d'élément, nous pouvons immédiatement voir qu'il est ajouté ici à droite. Et si on en ajoute un autre de ce côté, il n'y a pas assez d'espace. Donc, il est ajouté à la rangée suivante, pour ainsi dire. Et si je développe cela un peu, alors comme vous pouvez le voir, maintenant il est réellement ajouté à la même rangée là-bas. Donc c'est plutôt cool. Nous pouvons aussi avoir un peu d'espacement. C' est donc l'espacement entre les éléments réels, les éléments de mise en page. On peut avoir des coins de départ différents. Ainsi, par exemple, nous pouvons commencer en bas à gauche ou nous pouvons commencer en bas à droite. Maintenant, ça ne marche pas. Je ne suis pas sûr à 100% pourquoi c'est. Je vais parce que l'alignement là vous allez. Donc, l'alignement fait également en sorte que là où cela commence, un horizontal ou vertical, n'est-ce pas ? Donc, nous pouvons d'abord remplir les colonnes, puis les lignes ou une colonne par colonne, ou nous pouvons aller ligne par ligne. Et les contraintes flexibles peuvent aussi être flexibles. Donc flexible signifie simplement que quoi que ce soit, il s'intègre. Si la contrainte est le nombre de colonnes fixe, alors nous pouvons dire, ok, nous avons seulement autant de colonnes, ou nous pouvons avoir un nombre de lignes fixe. Et puis nous pouvons fondamentalement changer combien de lignes il y a ou combien de colonnes ils doivent être. Il y a donc beaucoup à jouer avec la mise en page de la grille. Je ne peux que vraiment, je dirais des conseils pour jouer avec un peu. La mise en page de la grille est l'un de mes favoris et cela fonctionne vraiment, vraiment bien. Donc, si je recopie certains d'entre eux et que je vais dire que je suis en fait, je n'aime vraiment pas l'espacement de ceux-ci. Je peux juste ajouter l'espacement ici et tout fait juste ce qu'il fait. Donc c'est, je trouve ça assez cool. Et c'est aussi vraiment génial parce que lorsque vous générez des éléments d'interface utilisateur, l'idée est qu'ils sont automatiquement disposés d'une manière qui fonctionne. Et le dernier serait la mise en page horizontale. Mise en page. Copions aussi un de ceux-ci et mettez-le ici. Et la mise en page horizontale ne devrait surprendre personne, est également sur Mise en page sous mise en page horizontale. Et celui-ci signifie simplement, donc si j'en ajoute un autre, alors ils sont ajoutés de manière horizontale. Donc il n'y a pas de grille dans ce cas. Donc, vous pouvez aussi, par exemple, étendre ceux-ci pour être quelque chose comme un non, là vous allez, celui-ci pour être comme un vraiment long. Par exemple. Supprimons celui-là et refaisons celui-ci. Et puis nous pourrions dire pour la mise en page horizontale, encore une fois, le rembourrage du même espacement est le même entre ceux-ci. Et on peut inverser le, on peut contrôler la taille, non ? Cela fonctionne aussi. Donc, en contrôlant la taille une fois de plus, mélanger cela se développe pour être la taille entière. espacement devrait être explicatif sur le rembourrage plutôt à ce stade, espacement ou tout ici devrait en fait être explicatif. Si nous avons vu à la fois la disposition verticale et à la grille, ils sont tous très similaires mais font des choses légèrement différentes, non ? Et ce serait tout pour la mise en page. Conférence ici. La mise en page est incroyablement utile, surtout si vous avez une sorte de préfabs d'interface utilisateur que vous instanciez sur votre interface utilisateur. Par exemple, si vous avez, je ne sais pas, comme 10 éléments, alors vous voulez un exemple de 10 éléments ici, 10 choix sur lesquels vous pouvez cliquer. Et peut-être que si vous voulez, si vous avez 20 articles, eh bien, alors vous voulez 20 de ceux-ci, et ils devraient être disposés d'une manière particulière, alors vous pouvez essentiellement faciliter cela avec, par exemple, le, soit la verticale, la disposition de la grille ou la disposition horizontale. Outil donc incroyablement utile pour disposer automatiquement les éléments de l'interface utilisateur , à droite, et ce serait pour cette conférence. J' espère que vous l'avez trouvé utile. Si vous le faisiez, bien sûr, j'apprécierais vraiment une critique de votre part. Sinon, s'il reste quelques questions, alors bien sûr, n'hésitez pas à poser et je serai sûr de répondre. Oui. 78. (UI) Scrollbars et masques de Unity: Ou je, continuons l'introduction de l'interface utilisateur Unity ici pour le cours Unity. Et dans cette conférence, nous allons jeter un oeil aux barres de défilement et au composant détruit de défilement. Ce genre de travail main dans la main. Dans notre cas, ce que je veux vous montrer, c'est essentiellement comment il pourrait faire une sorte de point de vue. Et puis faites défiler vers le haut et vers le bas, ont fondamentalement plusieurs éléments présents en même temps. Et pour cela, nous allons simplement dupliquer la mise en page L7. Et nous allons nommer ces barres de défilement LH. Et ouvrons immédiatement ceci. Et à la surprise de personne, c'est exactement la même chose parce que nous venons de dupliquer la scène. Et nous allons en faire un exemple sur la mise en page verticale ici. Et la première chose qu'on va faire, c'est qu'on va agrandir ça. Donc le livre, nous ne voulons pas le déplacer, nous faisons seulement envie de le rendre plus grand. Donc, le panneau de disposition vertical réel lui-même va devenir beaucoup plus grand. Et puis nous allons juste dupliquer le dernier panneau d'élément ici et en avoir un peu plus. Ne les faisons pas courir hors de l'écran ou hors du panneau de mise en page réel, mais seulement comme ça, alors ça devrait aller. Et ce que nous voulons, c'est que nous allons définir ça. Eh bien, nous allons avoir une sorte de, un nouveau panneau de cette taille où il va agir en quelque sorte comme une fenêtre et le reste ne sera pas visible. C' est en quelque sorte l'idée ici. Et c'est comme ça que nous allons regarder la barre de défilement. La façon dont nous pouvons le faire est d' abord de faire quelque chose comme ça. Donc, nous allons faire un nouveau panneau, pas fondamentalement comme un frère au panneau de mise en page verticale. Et ça va être sous un panneau d'interface utilisateur. Maintenant, cela va être vraiment grand, mais c'est, nous pouvons le redimensionner à peu près la même taille que celle d'origine. Donc quelqu'un comme ça. Et puis on va lui donner un peu plus sur le côté droit pour qu'on ait un peu de salle de lecture pour notre barre de défilement. Dans ce panneau sera ce qui est en haut ici et nous allons appeler cela le panneau de défilement. Bien sûr. Et celui-ci en aura besoin. En fait, nous allons également nous assurer que cela est centré correctement. Voilà, tu y vas. Cela devrait très bien fonctionner. Et puis nous allons y ajouter deux composants. L' un d'eux va être le défilement érigé. Celui-ci a détruit le rouleau. Et puis l'autre sera un masque. Et dès que nous ajoutons le masque, vous verrez que cela va immédiatement changé quelque visuel. Nous ne les avons pas changés visuels. Pas encore de toute façon. Bien sûr, pas parce que nous devons encore prendre la disposition verticale et en fait l'avoir comme un enfant de cela. Et dès que nous le faisons, maintenant ça change quelque chose de visuel, visuel. Comme vous pouvez le voir, tout d'un coup, la disposition verticale réelle est une sorte de coupure à ce stade parce que la mise en page de défilement est maintenant un masque. Donc, tout, la taille de cela dépend en fait l' endroit où la plage visuelle de cela dépend de la taille de la disposition de défilement ici. Donc, plus la petite mise en page, la mise en page de défilement que plus la chose que nous pouvons réellement voir est grande. Et celui-là maintenant nous permettre. Donc, si nous devions déplacer cette disposition verticale à droite. Nous allons bouger ça, comme vous pouvez le voir maintenant, il se déplace en quelque sorte de haut en bas. Maintenant, si nous pouvons le faire avec une sorte de conjonction avec une barre de défilement, eh bien, je veux dire, alors tout fonctionnerait très bien. Et c'est exactement ce que nous allons faire dans le panneau de défilement sous ceci. Donc, en sélectionnant cette interface utilisateur, puis en ajoutant une barre de défilement, nous allons ajouter une barre de défilement ici. Maintenant, qu'est-ce qui est important ? Le composant de barre de défilement lui-même ressemble en quelque sorte au composant de curseur. Comme c'est le cas, c'est à peu près exactement la même chose. Pour nous, pour ce robot, ce que nous voulons c'est que nous voulons qu'il soit de haut en bas, je crois. Oui, c'est ce qu'on veut. Et puis nous pouvons aussi le redimensionner. Alors faisons quelque chose comme ça. Mettez-le à droite de l'écran ici. Faisons quelque chose comme ça et déplaçons le vers le bas. Voilà, tu y vas. C' est une sorte de barre de défilement. Je pense que c'est vraiment très bien fait. Et je suis la barre de défilement elle-même. En fait, on n'a pas vraiment besoin de changer quoi que ce soit. Ce que nous devons changer, c'est que les choses sur le parchemin se corrigent lui-même. Et les choses que nous voulions changer sur le rectus de défilement, tout d'abord, où nous voulions seulement un mouvement vertical ici parce que cela ne bouge que de haut en bas. Et puis nous voulons définir une barre de défilement verticale, qui est exactement la barre de défilement que nous venons d'ajouter. Et puis nous voulons aussi ajouter du contenu. Et c'est fondamentalement la Transformation Rect. Donc, ce serait un composant d'interface utilisateur qui a le composant de transformation de l'épave attaché à lui, que nous voulons déplacer. Et c'est exactement la disposition verticale ici. Après avoir ajouté ces deux, c'est en fait tout ce que nous devons faire pour avoir une sorte de mise en page verticale fonctionnelle, type barre de défilement deal. Et je crois cependant que, en fait, ce que nous voulons est de bas en haut, je crois, oui, la direction est en fait de bas en haut. Voyons si ça marche. Et oui, c'est le cas. Donc, si je fais défiler maintenant, il fait défiler vers le bas, mais comme vous pouvez le voir, ça va très lentement. Je peux faire deux autres choses. Je peux bien sûr, prendre la barre de défilement et la déplacer comme ça. Et je peux aussi cliquer sur le panneau de mise en page vertical et le déplacer seul. Et je peux aussi le laisser passer comme tu le ferais sur un smartphone. Maintenant, si je voulais monter, vous pouvez voir que c'est un peu rebondissant en haut. Cela peut être changé ici. C' est donc le type de mouvement. C' est élastique. Personnellement, je préférerais acclamé comme une sorte de comment presque toutes les autres barres de défilement fonctionnent. Et aussi je voudrais certainement conseil de mettre en place la sensibilité de défilement là. Quelque chose comme 25 devrait être, devrait suffire. Ouais, maintenant ça fonctionne beaucoup mieux, donc c'est un peu plus rapide. Avec une sensibilité de défilement d'un, vous êtes, je veux dire, vous faites défiler tout le temps. Ce n'est pas une très bonne idée. Oui. Et c'est en fait à quel point il est facile d'ajouter une barre de défilement avec un peu de fonctionnalité. Bien sûr, une fois de plus, toutes ces choses que nous avons déjà vu dans fondamentalement tous les autres éléments d' interface utilisateur interactibles, fondamentalement non ? La couleur et tout ça. Et ce, ce genre d'accord avec fondamentalement aussi vu quand nous avons regardé les curseurs. C' est exactement la même chose. Nous pouvons changer la valeur maintenant la valeur, bien sûr, nous ne pouvons pas changer parce qu'il est lié au défilement érection juste ici. Mais généralement, nous pouvons changer la valeur et ensuite nous pourrions aussi juste lire la valeur par votre script. Bien sûr, en mettant un de ceux là. Nous avons également cet événement ONE valeur changé où nous pouvons où nous obtenons fondamentalement le changement de la valeur. Oui. Et ce sera essentiellement le cas pour la barre de défilement. En fait, ce n'est pas trop mal. Et avec le masque et le composant rouge défilement, vous pouvez faire des choses assez cool comme une mise en page défilante là-bas. Et puis maintenant il pourrait l'être, vous pouvez ajouter à cette disposition verticale. Je veux dire, tout ce que tu veux et tu peux faire défiler et défiler. Et vous pouvez peut-être avoir, je ne sais pas, mille articles cool ici. À ce stade, il serait probablement préférable d'avoir la disposition de la grille, mais oui, ce serait pour la lecture de la barre de défilement ici. J' espère que vous avez trouvé cela utile comme toujours. S' il y a des questions, alors bien sûr, hésitez pas à poser et je serai sûr de répondre. Et oui. 79. (UI (Unity Dropdown Champs d'entrée: D' accord, continuons avec l'introduction de l'interface utilisateur Unity ici pour le cours Unity. Et dans cette conférence, nous allons jeter un oeil au menu déroulant, ainsi que le champ de saisie pour les éléments de l'interface utilisateur. Ce serait en quelque sorte les derniers éléments que nous devons examiner. Alors faisons une nouvelle scène, vraiment nouvelle scène L 9, appelant a laissé tomber entrée. Bien sûr. Pourquoi pas ? Ouvrons ça immédiatement. Et ajoutons aussi immédiatement un joli petit panneau ici. La toile, bien sûr, doit être changé pour la caméra de l'espace écran dans ce cas, et ajouté la caméra principale là-bas. Et nous allons immédiatement changer la référence. C' est en 1920 d'ici 1080. Et faites le match 0,5. Super. Ce devrait être tout ce que nous devions faire ici. Et puis au panneau, je vais juste le redimensionner un peu. Mettez-le en quelque sorte au milieu de l'écran. Et puis nous allons ajouter les deux types de derniers éléments d'interface utilisateur que nous n'avons pas examinés va être la liste déroulante. Rendons ça un peu plus grand. A aller, mettez-le ici. Et je vais également ajouter l'interface utilisateur pour le champ de saisie. Rendons aussi ça un peu plus grand. Voilà, tu y vas. Encore une fois avec ça, ce serait probablement tous, n'est-ce pas ? Nous avons vu essentiellement tous les autres. Le système d'événements est ajouté automatiquement. Et le ScrollView est fondamentalement ce que nous avons fait la dernière fois, plus ou moins. Jetons donc un coup d'oeil à la liste déroulante. Donc la première chose que nous allons regarder est cette étiquette ici. Donc, les étiquettes, bien sûr, peuvent être redimensionnées un peu, 38, C'est en fait assez bon à la flèche pourrait également être redimensionné un peu. Je pense que cela aurait du sens. Faisons-le comme un peu plus grand. Voilà, tu y vas. Oui. Cela semble plutôt bon pour un menu déroulant. Et il y a aussi ce modèle qui est actuellement désactivé. Donc, si nous l'activons et vous pouvez voir que c'est à ça que ça ressemble si nous appuyons sur l'autre. Donc, si nous cliquons dessus et alors nous allons avoir ce genre de modèle ici. Vous pouvez modifier le contenu particulier, sorte que l'élément ici est modifiable. Cependant, dans l'ensemble, je ne serais probablement pas gâcher avec trop parce que la, Je crois que cela est effectivement doublé. En fait, on peut. Alors rendons ça un peu plus grand que si oui, ça , c'est certainement un peu trop petit pour rendre l'article un peu plus grand. Voilà, tu y vas. Les continents à payer plus grand à la SDA il y a, puis l'article devrait redimensionner aussi. Voilà, tu y vas. Si vous appuyez sur Alt, alors il va le redimensionner des deux côtés à partir du milieu. Et puis nous pouvons également ajuster la taille de police particulière ici. Ceci ici sur la gauche est, comme vous pouvez le voir, ceci est une coche de l'élément. Et il y a aussi une coche, l'arrière-plan et l'étiquette de l'article. Et il y a une barre de défilement associée. Donc, c'est à peu près la même chose que les enregistrements de défilement. Vous pouvez voir qu'il y a une sorte de ce qu'on a construit la dernière fois. Juste que cela est déjà intégré dans le menu déroulant lui-même. Maintenant, c'est fondamentalement ce que nous avons déjà vu, mais ce que nous n'avons pas vu, ce sont les options ici. Et c'est fondamentalement une chose très intéressante. Nous avons l'option une, l'option, l'option a, l'option B, l'option C, et nous pouvons simplement ajouter des options à cela. Je pense que nous allons rester avec ça et nous allons aussi ne pas faire de sprite. En fait, nous allons faire du sprite dans le premier un clicker et les autres n'auront pas un tout divisé. Et on va voir à quoi ressemble celle-là. Jetons juste un coup d'oeil. Alors commençons ça et laissons tomber ça. Et comme vous pouvez le voir, que tout d'abord, nous pouvons les choisir. Et puis nous aurons cette petite coche. Ils doivent noter laquelle de ces options a effectivement été choisie. Maintenant, le modèle peut être modifié comme vous le souhaitez. Reggie peut le rendre plus petit ou plus grand. Ouais, fondamentalement, comme vous le souhaitez, le sprite lui-même ne va pas être affiché. C' est une sorte de quelque chose en arrière-plan. Vous avez encore une fois l'événement ici sur une valeur modifiée. Et bien sûr, les options que vous pouvez, avec le moins ici, vous pouvez fondamentalement les soustraire ou, vous savez, vous en débarrasser. Vous pouvez également les réorganiser ici. Et cela, les options ici seraient également possibles de changer ceux à l'intérieur du script lui-même. Cela fonctionne aussi. Jetons un coup d'oeil à ça pour le moment. Alors faisons un nouveau dossier. Ce serait L9. Ceci est une liste déroulante, liste déroulante. Entrée, entrées. Le, oh, c'est bon. Et que nous allons créer un nouveau, appelons cet exemple déroulant. Et laissons le recharger. Et puis on va commencer tout ça. Mais avant de vouloir changer quoi que ce soit, nous allons ajouter cela à la liste déroulante, juste pour ne pas oublier cela parce que ce serait fatal. Droit ? Encore une fois, nous n'avons pas besoin de la méthode de mise à jour et en utilisant Unity Engine dot, nous allons avoir un privé. Ce serait une liste déroulante. Et c'est alors juste appeler cette liste déroulante. Bien sûr. La liste déroulante est égale à ce point get composants. menu déroulant, explicatif celui-ci, et puis il a chuté. Et on y va. Options. Donc, comme vous pouvez le voir, il s'agit d'une liste de données d'options déroulantes. Ok, en fait, c'est plutôt cool. Nous pouvons également définir la valeur réelle. C' est, ce serait un entier. Donc, c'est fondamentalement l'index de la liste dans ce cas. Donc, l'index de l'élément de la liste que nous voulons. Mais par exemple, les options que nous pouvons y ajouter, comme vous pouvez le voir. C' est donc une liste normale. Donc ici, nous pouvons ajouter et dans ce cas, nous voulons, peut voir les données de l'option déroulante. Donc croyez que nous pouvons faire ça comme ça, oui, exactement. Ainsi, nous pouvons faire de nouvelles données d'option et comme vous pouvez le voir, nous pouvons lui donner une image, nous pouvons lui donner un texte, ou nous pouvons inverser les deux. Donc, en théorie, ce que nous pourrions faire est quelque chose comme l'option S. Nous allons juste appeler cette option S parce qu'elle a été générée par un script, quelque chose comme ça. Et voyons si cela fonctionne réellement. Nous avons l'option D, l'option a et l'option C. Et après avoir commencé, nous devrions nous attendre à ce que l'option S apparaisse également. Et si on fait défiler là, c'est le cas. L' option S est également disponible pour la sélection. Et maintenant il a disparu parce que bien sûr il a été généré via le script. C' est donc à quel point il est facile d'ajouter les options déroulantes via le script. Vous pouvez simplement créer une nouvelle instance de données d'option déroulante et l'ajouter aux options. Droit ? Et je veux dire que c'est essentiellement la folie de la liste déroulante. changer visuellement ne devrait pas être un problème. Nous avons vu beaucoup de cela fondamentalement déjà avec toutes les autres choses dans l'interface utilisateur. Donc, ouais, passons au champ de saisie. Donc, le champ d'entrée en fait aussi très facile. Il y a le champ d'entrée lui-même. Il y a l'espace réservé, puis il y a le texte. Donc, l'espace réservé, nous pouvons rendre cela un peu plus grand que vous pouvez le voir, c' est simplement un peu comme entrer du texte. Vous pouvez également changer cela en espace réservé ou si vous avez votre jeu peut-être sur une langue différente, alors bien sûr vous pouvez changer cela aussi en théorie. Et le texte lui-même devrait probablement avoir à peu près la même taille que celui-ci. Alors faisons ce 59 aussi. Et si on commençait ça et qu'on y aille, donc si je clique sur un de ça, je prendrai cette voiture. Et je peux taper Hello World. Et si je clique dessus, vous pouvez voir que les textes année change. Donc, en gros, c'est juste un composant de texte, n'est-ce pas ? Une référence à un composant de texte, qui est celui-ci. Et il lit juste le texte qui est ici. Donc, nous pouvons fondamentalement changer ce texte immédiatement. Et cela est également enregistré dans la variable de texte, directement sur le champ de saisie lui-même. Et c'est à peu près exactement d'où vous pouvez aussi le lire. Il y a aussi des choses assez cool que vous pouvez faire. Donc la carotte elle-même clignote, je pense que c'est un rouge clignotant normal. Vous pouvez également augmenter le taux de clignotement afin qu'il clignote plus rapidement ou plus lentement. Je ne sais pas si c'est nécessairement quelque chose dont vous avez besoin et vous pouvez également ajuster la largeur. Je crois que cinq est le plus gros, donc c'est un peu plus visible ici. Nous pouvons aussi en faire une couleur personnalisée, ce qui est plutôt cool, en fait, une sorte de rouge. C' est une chose soignée avec laquelle vous pouvez jouer. Et oui, alors vous pouvez également obtenir cette fois même deux événements différents ici sur la valeur a changé. Donc, c'est fondamentalement quand la chaîne elle-même change, puis à la fin de l'édition. Donc, c'est quand vous avez terminé l'édition. Et donc vous n'avez pas à appeler fondamentalement la valeur en la changeant à chaque fois. Donc, chaque petit, chaque type de caractère spécifique serait incontestée sur la valeur modifiée, puis sur édition, chaîne et une fin Edit, désolé, There you go. Sur et éditer fondamentalement vous donne juste cette bague une fois que vous avez terminé avec l'édition là-bas. Donc, ce seraient les deux événements auxquels vous pourriez ajouter vos appels de fonction ou des appels de méthode. Et oui, ça, c'est fondamentalement tout ce qu'il y a dans le champ d'entrée. Ce n'est pas quelque chose de fou ou oui, vous pouvez également définir une limite de caractères si vous le souhaitez. C' est quelque chose que vous pourriez faire. Et il y a d'autres choses comme la multiligne avec Submit. Vous pouvez également en faire une nouvelle ligne multi-ligne, et il y a aussi d'autres choses. Alors, quel est le type de contenu ici ? Une broche, un nombre entier. Alors il peut réellement lire ce nombre décimal, non ? Donc, ce serait quelque chose pour le type de contenu. Vous pourriez fondamentalement changer cela aussi. Mais dans l'ensemble, ce serait pour le champ de saisie, entrez dans le menu déroulant. Et cela conclurait le genre de regard, à travers tous les éléments de l'interface utilisateur Unity. Je vous les ai montrés essentiellement tous. Maintenant, pour faire de cela l'interface utilisateur assez bien, c'est un tout autre problème différent qui est certainement entre vos mains plus que la mienne. Cela a plus à voir avec une sorte de conception de l'expérience utilisateur. Et c'est difficile à apprendre vraiment. Je veux vous le dire, ou je veux vous enseigner les compétences techniques et ensuite ce que vous en faites. Je veux dire, j'espère que tu pourrais impressionner non seulement moi, mais peut-être même toi et beaucoup d'autres personnes avec ce que tu peux trouver, non ? Donc, ce serait tout pour l'introduction de l'interface utilisateur. Prochaine conférence, nous allons en fait ajouter quelques choses à la cliqueteuse de fromage. Donc, nous allons ajouter un définitivement au moins la mise en page. Et peut-être qu'on peut voir s'il y a peut-être une ou deux autres choses qu'on pourrait y ajouter, non ? Mais c'était tout pour l'interface utilisateur. Et dans ce cas, la liste déroulante, une conférence de champ d'entrée. J' espère que vous avez trouvé cela utile et que vous apprendrez quelque chose de nouveau. Encore une fois, s'il reste des questions, hésitez pas à poser et je serai sûr de répondre. Et oui. 80. (Unity UI) Ajouter des groupes de mise en page à notre légers légers de la panaches de fren: D' accord, comme promis, on se retrouve au crieur de fromage ici. Et c'est la dernière conférence ici pour l'introduction. Et nous allons simplement ajouter essentiellement aux groupes de mise en page, un pour le panneau de construction et un pour le panneau de mise à niveau. Parce que les deux en gros pourraient bien, je veux dire, en profiter. Et réfléchissons à ça. Ainsi, le panneau de construction lui-même, nous pouvons simplement aller au composant Ajouter un composant, panneau de construction application, puis ajouter un groupe de mise en page verticale. Je pense que cela aurait le plus de sens. Et laissez tout contrôler également la taille de l'enfant et ensuite obtenir quelque chose comme 15, 15, 15, 15, 15, et puis espacement aussi 15. Je pense que ça marche vraiment bien. Et si nous devions avoir un troisième élément ici, alors cela fonctionnerait. Et au quatrième, nous devrions commencer à redimensionner un peu. Ou nous pourrions aussi penser à ne pas avoir mise en page verticale et peut-être avoir un groupe de mise en page de grille. On peut en avoir deux en même temps. C'est logique. Alors supprimons ça. Nous allons avoir un groupe de mise en page de grille. Et puis aussi s'assurer que c'est un peu plus grand, je suppose, parce que sinon ça ne va pas tenir. Donc quelque chose comme 300, 200, peut-être 300, 300, 300, en fait, fonctionnerait. Et puis aussi s'assurer que nous avons un peu de rembourrage ici. Voilà, tu y vas. Donc, cela fonctionnera aussi si nous devions changer avec les préfabriqués réels sont un peu. Mais je pense en fait que revenons au groupe de mise en page verticale à nouveau. Je pense que c'était bien. Et en fait, c'est bon, non. Et quand nous regardons le panneau de mise à niveau, bien sûr, ceux-ci sont générés via l'interface utilisateur de mise à niveau. En fait, ouvrons cela aussi. Parce qu'il y a une chose que nous devons bien sûr changer. Et ce serait la position locale transformée ici parce que nous étions en train de définir la position nous-mêmes. Maintenant, nous n'avons plus besoin de faire ça. Donc, nous pouvons fondamentalement supprimer cette ligne complètement. Et en fait, nous allons juste le commenter. Parce que sinon, qui sait, c'est peut-être mieux. Et puis nous pouvons rendre cela un peu plus petit et simplement simplement ajouter le groupe de mise en page de la grille. Si un peu de rembourrage, peut-être 10 ici, et puis la taille de la cellule, je pense en fait que la taille de la cellule d'un 100 devrait aller bien. On peut probablement le rendre un peu plus petit, même 8585, quelque chose comme ça. Et voyons à quoi ça ressemble. Maintenant, c'est bon. Je veux dire, un peu d'espacement serait aussi bien. Donc 10 espacement et puis je pense, bien, c'est vraiment très bien fait. Et si nous devions ajouter de nouvelles améliorations ici, nous pourrions bien sûr, le rendre un peu plus grand, quelque chose comme ça. Et puis les mises à niveau s'y adapteraient aussi. Donc c'est assez soigné. En fait. C'est ainsi que, c'est à quel point il est facile d'avoir une mise en page fonctionnelle. Et c'est vraiment sympa. Alors ajoutons le petit peu de fromage pour qu'ils s'allument. Juste pour l'enfer. Alors passons à 500 et oui. Oui. Donc, ils fonctionnent toujours très bien même s'ils sont en groupe superposé. Et l'autre chose la plus importante est que quand on clique sur l'un d'eux, ils sont désactivés, non ? C' est ce qu'on a mis. Ainsi, l'ensemble actif sur l'objet de jeu est défini sur false. Et si cela se produit, alors comme vous pouvez le voir, ils bougent simplement. Parce que le groupe de mise en page pose essentiellement son auto uniquement sur les éléments de jeu actifs. Donc, si nous devions réactiver cela, ça marche en fait. Donc, c'est vraiment bien que, cela fonctionne en quelque sorte intrinsèquement pour l'interface utilisateur dans le groupe de mise en page. Donc ça fonctionne sans aucun problème, non ? Et puis on pourrait ajouter une sorte d'autre panneau ici ou quelque chose comme ça. Ou vous pouvez également remplacer tous les textes individuels par des textes maillés Pro pour avoir une sensation plus agréable à elle. Mais dans l'ensemble, je pense que c'est très bien. C' est une sorte de ce que j'aurais imaginé ce que nous ferions pour le genre de mises en page différentes, non ? Le panneau de mise à niveau que j'ai trouvé être comme le plus intéressant. Et puis le panneau des bâtiments, si nous devions en ajouter quelques autres, nous devrions probablement réaligner notre bâtiment actuel comme le panneau de construction, le panneau de construction individuel un peu. Mais dans l'ensemble, ça fonctionnerait toujours très bien, non ? Et ce serait pour l'interface utilisateur. Pour l'instant. J' espère que vous avez trouvé cela utile et un autre tranchant de fromage avec qui serait un peu complet. Et j'espère que vous avez appris quelque chose de nouveau. Et si des questions restaient, bien sûr, comme toujours n'hésitez pas à poser et je serai sûr de répondre. Et oui. 81. (Intermédiaire) Ajouter une source audio audio: Très bien, et bienvenue dans la section des intermédiaires de l'Unité pour ce cours d'unité. Et dans cette conférence, nous allons jeter un oeil aux sources audio et essentiellement à la façon de lire l'audio. Et les options fondamentalement que nous avons avec ça. Tout d'abord, parce que nous sommes une fois de plus dans un nouveau projet, installons d'abord notre dossier d'actifs ici. Et en ce moment, nous allons vraiment avoir besoin de quelques choses de plus. Tout d'abord, bien sûr, les scripts une fois de plus, c'est un donné. Et puis nous allons juste dupliquer ceci avec Control D. Ensuite, nous avons bien sûr besoin des sprites aussi. Même si dans ce cas, nous n'allons pas utiliser de sprites dans cette conférence particulière, mais ceux-ci viendront. Pas de soucis. Nous aurons également besoin d'animations. On va juste ajouter ça déjà. Et puis l'une des choses dont nous aurons besoin, bien sûr, dans cette conférence, c'est que l'audio dans le dossier Scenes. Créons juste une nouvelle scène, pas un nouveau script, une nouvelle scène, bien sûr, ils y ont. Et c'est L, un, parce qu'une fois que vous obtenez la première conférence dans la section intermédiaire, et ce serait des sources audio. Et puis dans le dossier des scripts, nous pouvons créer un nouveau dossier, L1 audio. Et là, nous voulons un nouveau script. Et celui que nous allons appeler audio, exemple audio. Voilà, tu y vas. Comme c'est un assez bon déjà m. Et puis je crois qu'une fois que nous commençons les sources audio ici, je pense que nous avons tout ce dont nous avons besoin pour la configuration. Créons un objet de jeu vide. Ça va être notre source audio. Je l'ai mis à 000, bien sûr. Et puis nous allons ajouter le composant de source audio. Donc, sous audio, étrangement, et c'est le plus bas, la source audio. Et il y a un tas de choses que nous pouvons fondamentalement changer ici en termes de champs. Mais ajoutons d'abord les exemples audio ici aussi. Donc, le script à l'objet de jeu, et nous allons également ajouter nos fichiers audio. Donc celui-ci, bien sûr, est fourni. Vous pouvez également jouer avec votre propre fichier audio. Mais j'ai pensé que j'en aurais un qui est un peu comme un drôle de bruit de boing. On va l'entendre dans un petit moment. Et bien, il y a en fait un moyen très facile d'ajouter ceci. Vous avez cette année de référence du clip audio et vous pouvez simplement le faire glisser, puis il est là dedans. Maintenant, cela bien sûr, peut être changé comme avec, par exemple, le rendu sprite où nous avons changé le sprite comme celui-ci. Nous pouvons également modifier ce clip audio via un script. Dans ce cas, on ne va pas le changer. Ce que nous allons faire, c'est que nous allons jouer ça, le son réel via le script. Donc ce qu'on va faire, c'est d'abord, passons à travers ça un instant ici. Mélangeur audio, nous pouvons fondamentalement, donc comme vous pouvez le voir, c'est fondamentalement si le son doit jouer à travers un mélangeur audio d'abord ou directement l'écouteur audio. Nous n'allons pas utiliser une table de mixage audio dans ce cas. Donc, cela ne nous intéresse pas, simplement en sourdine les effets de contournement sonore. Donc si on a des effets sur ça. Sur la source audio réelle, nous allons simplement les ignorer si c'est sur l'effet d'écoute. Sur l'écouteur peut également avoir des effets. Nous avons des zones de réverbération et nous pouvons contourner. Donc, ce serait contourner tout ça. Jouer sur éveillé signifie simplement dès que cet objet de jeu particulier se réveille avec le composant de source audio dessus, alors il jouera le son une fois. Et les boucles signifie simplement qu'il va boucler une fois qu'il atteindra la fin du clip audio, il redémarrera depuis le début. La priorité ici, comme vous pouvez le voir, l'idée ici est que si nous étions juste lus cela définit rapidement la priorité de la source. Donc, cela a un peu de sens à la, chaque source audio a une priorité particulière. Dans ce cas, un soleil avec une valeur de priorité plus élevée sera plus susceptible d'être volé. Probablement être volé par des sons avec des valeurs de priorité plus petites. Comment ça, qu'est-ce que ça veut dire ? Eh bien, si nous avons deux choses à jouer en même temps, peut-être que quelque chose ne peut pas suivre. Parfois, nous devons en avoir une priorité. Je n'ai jamais vu cela vraiment entrer en vigueur. Mais je dois aussi admettre que je n'ai pas joué avec l'UO, avec autant de choses. Un volume devrait être explicatif. C' est simplement le volume du son. Il ne devrait pas non plus être fou. C' est simplement la fréquence et cela ralentira et ralentira et ralentira la vitesse du son. On va nous guérir dès que possible. Panoramique série, si l'encodage vidéo est correct, alors vous devriez également être en mesure d'entendre cela. Donc, c'est simplement si elle vient ou non du haut-parleur gauche ou du haut-parleur droit. Un mélange spatial est fondamentalement vous pouvez avoir de l'audio 3D. Dans notre cas, il y a trois REO n'a même pas de sens parce que nous sommes sur un, sur un jeu en deux dimensions de toute façon, donc ils vont et puis le mélange de zone de réverbération, Je ne suis pas sûr à 100% où cela va. En gros, je garde toujours ça sur un. Sur Paramètres audio 3D par défaut. Il y a assez cool. Donc, nous avons beaucoup de choses ici. Encore une fois, pour nous en ce moment pas besoin parce que nous ne traitons avec 2D de toute façon. Donc la 3D n'a pas de sens pour nous de toute façon. Droit ? Alors ouvrons notre exemple audio et décochons également le jeu sur éveillé. Parce que nous ne voulons pas que le ragoût joue à l'éveil. Nous voulions jouer seulement quand nous faisons quelque chose. Donc, la première chose, parce que bien sûr ce script particulier est une fois de plus sur les objets de jeu réels qui sont des sources audio sur aussi. On va faire une source audio privée ici. Et puis nous allons le définir en faisant ce qui suit est égal ce point Composant Audio Source, et c'était tout. Donc, parce que bien sûr, le script réel est sur le même objet de jeu que la source audio. On peut le faire avec cette commande. Sinon, nous pourrions avoir besoin d'obtenir l'objet de jeu, mais la méthode du composant Get assez facilement. Et puis ce qu'on va faire, c'est qu'on va dire si l'entrée Schottky descend la clé, en fait, l'ego a la clé. Et puis nous allons dire keycode espace point. Prenons de l'espace ici. Et puis aussi facile que vous pourriez le penser, point Source Audio, voilà. C' était ça. Cela, c'est en fait tout ce que nous avons besoin d'appeler cela la seule méthode que nous devons appeler pour jouer ce son. Et écoutons la gloire du son drôle de boing. Donc si je commence ça, rien ne devrait arriver. Et rien ne se passe. Et si j'appuie maintenant sur la barre d'espace, on y va, ça marche. Eh bien, c'est plutôt cool. Donc, je peux réellement jouer un son lorsque j'appuie sur la barre d'espace. Et jouons un peu avec ces choses. Donc, par exemple, si je tire un peu la hauteur ici, et comme vous pouvez le voir maintenant, c'est des morceaux vers le haut et la hauteur monte. Si je tire un peu le ton vers le bas, pas trop, alors ça ressemble à quelqu'un. C' est plutôt bien. Droit ? Donc c'est assez drôle. Le stylo stéréo, donc le stylo stéréo, si je joue cela, et il devrait maintenant avoir essentiellement bougé tout le chemin vers le haut-parleur gauche. Et si je rejoue ça, maintenant il ne devrait être que sur votre haut-parleur droit. Donc, si vous voulez contrôler cela fondamentalement, alors vous pouvez le faire aussi. Bien sûr, toutes ces choses peuvent également être contrôlées via le script. Donc, si nous jetons un coup d'oeil à ce point source audio par exemple, l'année de pitch est déplacé un get et un set. Et nous avons la stéréo panoramique, prenez un ensemble. Nous pouvons avoir un booléen, muet et toutes sortes d'autres choses aussi bien. Il y a donc un tas d'autres choses que nous pouvons faire aussi. Y compris, par exemple, le volume pourrait également être réglé de 0 à une et certaines des autres choses, mais la méthode de jeu est l'une des plus importantes. Il y a aussi un jeu prévu, sorte que vous pouvez fondamentalement avoir cela sur un moment particulier. On peut jouer un seul coup. Donc, cela joue l'audio, puis l'échelle vers le haut. Cela est en fait aussi, vous pouvez également lui donner un clip audio en fait. Et puis jouer retardé rend simplement retardé. Ce sont des choses très spécifiques. Habituellement, la lecture par point source audio est celle dont vous avez vraiment besoin, n'est-ce pas ? Et ce serait déjà pour l'idée de la source audio. Et vous pouvez simplement l'ajouter. Et ce qui est très important, c'est que le composant de la caméra a généralement l'écouteur audio. C' est l'un des composants dont vous avez besoin dans votre scène. Si vous n'avez pas cela, alors vous ne serez pas en mesure de fondamentalement ici de cette source audio et alors aucun son n'atteindra réellement. C' est donc très important de noter que, comme en fait sur votre appareil photo principal, il devrait venir avec la caméra principale. Donc, chaque fois que vous avez une caméra principale dans votre scène, cela devrait être immédiatement là. Mais si pour une raison étrange, ce n'est pas, alors, maintenant vous savez que c'est en fait aussi quelque chose que vous avez besoin de robot qui serait ce serait pour cette conférence. J' espère que vous l'avez trouvé utile et que vous apprenez quelque chose de nouveau. Comme toujours. Si des questions subsistent, hésitez pas à les poser et je serai sûr de répondre. Et oui. 82. (Unity Intermédiate) Ajouter des particules de l'unité: D' accord, continuons avec la section intermédiaire de l'unité ici pour le cours de l'unité. Et dans cette conférence, nous allons jeter un coup d'oeil sur le système de particules. Maintenant, le système de particules est probablement l'un des systèmes les plus étendus d'Unity. Il peut, je veux dire, vous pouvez presque tout faire. Eh bien, rien littéralement, mais disons en termes de particules au moins. Alors ajoutons une nouvelle scène ici, le système de particules L2. Ouvrons immédiatement ça aussi. Et puis n'avons pas besoin d'un autre dossier de script parce que dans celui-ci, nous n'allons pas utiliser les scripts, les scripts dans celui-ci du tout, n'est-ce pas ? Et celui-ci est sous effets. Donc, si nous faisons un clic droit et puis allons à Effets, nous avons un système de particules. Alors ajoutons ce système de particules et comme vous pouvez le voir, il s'éteint immédiatement et tire les particules comme des fous. Et la première chose qu'on va faire est de prendre ça et de faire glisser ça vers le bas pour qu'on puisse voir un peu plus de l'inspecteur ici. Et je n'ai pas fait de kit quand j'ai dit ça, c'était beaucoup de choses et il y en a encore plus pour que nous puissions en fait chacun de ces ou même plus de choses. Et l'une des choses que je veux mentionner est que nous ne allons certainement pas tout faire ici parce que trois heures plus tard, nous avons fini avec tout. Juste immédiatement au début, je veux dire que la meilleure chose que vous pouvez faire est juste de jouer avec ça autant que vous en avez besoin et que vous voulez. Parce que c'est la meilleure façon d'apprendre le système de particules. Certaines de ces choses devraient en fait avoir un sens inhérent. Donc quelque chose comme ça. Commencez par quoi ? Couleur de démarrage. Les particules commencent ? Quel genre de gravité modifié ou ils ont. Alors maintenant ils tombent, comme vous pouvez le voir, il y a une sorte de montée et ensuite ils redescendent. On peut changer la vitesse, non ? Alors maintenant, il se déplace plus vite. Ou on peut dire, en fait, rendons les choses plus lentes, alors c'est négatif deux. Faisons aussi celle-là. Et pas un 0, ce serait, oui, et ils sont vraiment, vraiment lents. Donc c'est une de ces choses où ça devrait vraiment avoir du sens. Assez facile. Donc rotation retournée, je ne crois pas vraiment faire quoi que ce soit. Et ce moment, non. Parce que ce qui est aussi important d'être dit, c'est que le, celui-ci fait quelque chose de sorte que cela fait tourner les particules réelles. Le système produit est généralement utilisé dans un espace tridimensionnel. Donc si je passe à l'espace tridimensionnel, comme vous pouvez le voir maintenant, ils vont là-haut. Mais il n'y a aucune raison pour que vous ne puissiez pas l'utiliser dans un projet bidimensionnel aussi que comme celui-ci, il n'y a en fait aucune raison de ne pas le faire. Droit ? Alors réfléchissons à ça. Il y a quelques choses ici. Donc la durée, je veux dire, vous pouvez aussi passer la souris dessus et obtenir une assez bonne estimation de ce que sont toutes ces choses. Je veux montrer certaines de ces choses que vous êtes ici. Donc, ce sont une sorte de fonctions que vous pouvez l'appliquer. Donc, par exemple, ce que j'aime vraiment quelque chose comme la couleur au cours de la vie. Donc, si je mets celui-là, alors je peux, comme vous pouvez le voir, avoir un mode couleur pour qu'ils puissent commencer, par exemple, en blanc. Et quand ils sont localisés est à 100, alors je peux dire, eh bien alors je veux qu'ils sorte de cupidité. Et que se passe-t-il ? Donc, plus ces particules s'éloignent de ma source, elles deviennent plus vertes. En fait, c'est plutôt cool. Et c'est essentiellement, vous pouvez le faire avec presque toutes ces choses. Vous pouvez le faire avec la taille, avec la vitesse. Même, vous pouvez même changer la couleur par la vitesse de la particule réelle. Comme s'il y avait un million de choses que tu peux faire ici. Vous pouvez ajouter du bruit comme vous pouvez le voir, c'est, je veux dire que c'est de la folie. Vous pouvez même ajouter des données personnalisées. Nous ne allons pas vraiment ne pas regarder les données des clients parce que c'est fou. Mais disons, par exemple, la vitesse au cours d'une vie. Ainsi, nous pouvons, par exemple, lui donner un peu plus de vitesses, par exemple, dans la direction z ou dans la direction x. Alors, nous pouvons réellement changer la trajectoire de ceci. Ce qui est plus important ou intéressant, c'est en fait la forme et non pas l'émission, mais la forme. La forme est essentiellement le type de contrôle où les particules sont générées. C' est donc la forme du cône et ensuite nous pouvons, par exemple, étendre l'angle. Et comme vous pouvez le voir maintenant, c'est un angle d'onde plus plat, de sorte que les particules se déplacent dans un angle plus plat ici. Nous pouvons également ajuster le rayon ici et aussi l'épaisseur. L' épaisseur ne devrait pas avoir autant d'importance. Parce qu'une fois de plus, c'est en 3D. Donc, si je vais en 3D, comme vous pouvez le voir maintenant, cela semble un peu différent, comme vous pouvez le voir qu'il l'a fait en deux dimensions. C' est pourquoi j'ai dit que le produit est génial, généralement utilisé en trois dimensions, mais il n'y a pas de problème. Vous pouvez aussi le faire comme ça. Et quand il s'agit des formes, ici, vous pouvez voir qu'il y a beaucoup de formes que nous pouvons utiliser. Donc, la sphère est, eh bien, simplement une sphère, donc elle va commencer au début et ensuite juste sortir. Nous pouvons également étendre le rayon à l'endroit où ils fraient. Avoir également un arc différent. Je crois que l'arc ici est, une fois de plus, un peu problématique en raison de la nature bidimensionnelle de cette question. Regardons un autre, le cône par exemple, en fait, le cône était ce que nous avons regardé dans l'hémisphère. Mais c'est une sorte de demi-cercle. Navire ouvert, plus grand rayon. Voilà, tu y vas. Quelque chose comme ça. Donc, comme vous pouvez le voir, il n'y a presque pas de fin à ça. Maintenant, nous pouvons avoir un peu comme un faisceau et nous pourrions, par exemple, avoir un, un autre prélèvement évolutif IFA, l'augmenter. Et par exemple, cela pourrait être, vous pourriez avoir ceci et dire, par exemple, avoir l'idée que nous pourrions avoir un où est-il la taille supérieure, disons à vie. En fait, faisons les particules maximales. Aussi, très important d'ailleurs. Mais je veux la vie, non ? Alors c'est quand ils meurent. Donc, vous pouvez dire fondamentalement, en fait, faisons-le. Laissez-les mourir à 1,5 ou quelque chose comme ça. Et puis tout d'un coup bam, vous avez un peu comme un effet de téléportation cool pour un téléporté 2D. Je veux dire, c'est aussi facile que pour le système de particules comme exemple ici. C' était juste une idée qui m'est venue à l'esprit pour la boîte, par exemple. Et puis vous pouvez également avoir vos propres sprites personnalisés là comme le genre de zone de frai, vous pouvez avoir un cercle. Maintenant, le cercle est fondamentalement un problème parce que c'est une fois de plus la façon qui est tourné dans ce cas. Mais oui, c'est une sorte d'aspect général du système de particules. Je dois être honnête, il y a tellement de choses que tu peux faire avec ça. Mais je suggère fortement d'essayer tout un tas de trucs ici parce que je, ça ne vous mène nulle part si vous regardez une sorte de conférence de trois heures sur, ok, qu'est-ce que chacune de ces choses fait ? Je veux dire, la plupart d'entre eux sont très bien décrits couleur par vitesse, ok, donc la particule change de couleur par la vitesse qu'elle a. C'est tout ce qu'il y a. Et oui, encore une fois, qu'est-ce qui est fou aussi ? Toutes ces choses peuvent également être modifiées via un script. Donc, vous pouvez fondamentalement aussi changer toutes sortes de choses par script. Donc peut-être que vous avez un prompteur qui ressemble à ceci quand il est rouge, donc vous pouvez vous téléporter et ensuite vous le rendre vert quand vous ne pouvez pas téléporter quelque chose comme ça, juste comme une idée. Donc il y a tellement de choses que vous pouvez faire avec ça. Oui, je veux te laisser avec ça. Jouez autant que vous en avez besoin. Le système de particules est incroyablement vaste et il peut faire beaucoup de choses. Mais comme je l'ai dit, la meilleure chose à jouer un peu avec ça. Je voulais juste te montrer quelques choses ici. Et donc l'essentiel de tout ça, n'est-ce pas ? Donc ce serait tout pour cette conférence. J' espère que tu apprendras quelque chose de nouveau. Si des questions restent, bien sûr, hésitez pas à poser et je serai plus court. Né. main. Oui. 83. (Unity Intermédiate) Paramètres du projet de projet de l'unité: Bon, continuons avec la section intermédiaire de l'unité ici pour le cours de l'unité. Et puis cette conférence nous allons jeter un coup d'oeil sur les paramètres du projet. Donc il y a quelque chose où nous n'avons même pas besoin d'une nouvelle scène 4. Nous allons juste aller pour éditer ici, puis dans Paramètres du projet. Et puis nous allons être frappés avec beaucoup de choses que nous allons juste faire un peu de glandes. Quelques-unes de ces choses et les paramètres du projet que nous les avons vus une fois auparavant dans l'introduction C tranchant pour la génération C, C-Sharp Project pour l'espace de noms. Donc, ici, nous avons été en mesure de mettre fondamentalement dans un espace de noms. Et maintenant, nous sommes inondés de toutes sortes de paramètres que nous pouvons mettre en place. Nous avons des paramètres audio, nous avons des gestionnaires de paquets, physique personnalisée. En fait, c'est un peu. Et d'habitude, ce que je suggère est de ne regarder certaines choses que si vous en avez vraiment besoin. Nous allons donc examiner quelques choses que je pense utilisables et raisonnables d'avoir vues auparavant, mais généralement aucune d'entre elles n'est vraiment nécessaire. Donc je suis, une de ces choses est, par exemple, les graphiques. Vous pouvez avoir différents niveaux de graphiques. Et les valeurs par défaut, je dirais que notre meilleur reste comme ça. Vous savez, il y a des paramètres de shader là-dedans. Je ne m'embêterais pas avec ça, surtout nous sommes en 2D. Je dirais certainement que les graphismes devraient rester tels qu'ils sont. Vous pouvez en fait avoir un gestionnaire d'entrée. Nous n'en avons pas vraiment parlé auparavant. Gestionnaire de paquets, on va sauter la physique, ne nous intéresse pas. Nous sommes intéressés par la physique à D, et c'est le premier qui est très intéressant ici. Donc, tout d'abord, nous pourrions, par exemple, avoir une gravité personnalisée. Bien sûr, la gravité dans notre monde est de 9,81 mètres par seconde au carré. Et c'est la même chose qu'ici. Mais si vous, par exemple, voulez avoir une gravité qui est appliquée différemment, alors vous pouvez la changer ici, un projet large fondamentalement. Et il y a aussi tellement d'autres choses que vous pouvez aussi changer dans l'année aussi. L' idée étant qu'il y a, la physique sont fondamentalement complètement personnalisables. Donc c'est plutôt cool. En fait. Les paramètres du joueur est une autre de ces choses qui sont très intéressantes. Donc, ici, vous pouvez fournir un nom de société et aussi un nom de produit, ainsi qu'une version. Vous pouvez également remplacer l'icône de votre EXE essentiellement. Et vous pouvez également remplacer le curseur. Ensuite, il y a aussi quelques paramètres, par exemple, pour le PC ici. Cela serait aussi ici l'icône sur la version PC pour votre EXE. Ensuite, vous avez quelques options de résolution et de présentation de base. Donc, vous pouvez dire quel est le mode plein écran de base ? Personnellement, je pense qu'une fenêtre plein écran est fondamentalement la meilleure. Vous pouvez avoir une résolution native par défaut en arrière-plan est également possible. Donc, comme vous pouvez le voir, ce serait l'idée de si vous cliquez en dehors de la fenêtre, si le jeu continue ou non en arrière-plan. Et puis quelques autres choses qui fonctionnent également fenêtre redimensionnable seraient quelque chose qui pourrait être intéressant. Et oui, ça marcherait. Ensuite, il y a aussi des options d'image de splash. Donc, c'est essentiellement le début du jeu. On peut prendre un aperçu pour ça. Donc, au début du jeu, vous aurez, vous verrez cela fait avec Unity. Vous pouvez également y ajouter vos écrans de démarrage personnalisés. Donc si je fais ça, ils vont, vous pouvez fondamentalement ajouter des logos et ensuite vous pouvez dire, Hey, où est ce, vous savez, vous le voulez avant le logo de l'unité après, et ainsi de suite et ainsi de suite. Vous pouvez faire votre propre image d'arrière-plan, tout cela. Donc fondamentalement, c'est quelque chose que vous auriez si vous avez vraiment une sorte de, un, un vrai peut-être même Studio. Et puis vous avez votre logo et vous le montrez et puis vous faites, a un logo d'unité et puis tout autre logo dont vous pourriez avoir besoin, peut-être pour un éditeur ou quelque chose comme ça, serait alors fondamentalement ici. Mais une fois de plus, beaucoup de ces paramètres de projets sont vraiment pour les gens qui sont beaucoup plus avancés dans même leur jeu. Oui, et puis il y a d'autres réglages aussi. Habituellement, la plupart d'entre eux peuvent être laissés tels qu'ils sont. Et c'est certainement ce que je recommanderais. Comme vous pouvez le voir encore une fois, qu'il y a tellement de choses que vous pouvez avoir ici que c'est en fait de la folie. La prochaine chose très intéressante. Donc, à la fois le gestionnaire prédéfini ainsi que la qualité, fondamentalement, nous ne nous soucions pas aussi bien que les modèles de scène. Ceux-ci pourraient être intéressants pour créer une sorte de modèles pour les scènes. Mais actuellement, ce n'est pas vraiment nécessaire pour notre cas d'utilisation ici. Ce qui est intéressant, cependant, c'est le service d'exécution de script. Et c'est l'une des choses auxquelles j'ai fait allusion dans une conférence précédente où nous avions deux choses où un objet GameObject était défini par un script et le script lisait cet objet de jeu. Et le problème était que, eh bien, peut-être l'un des autres, l' un d'eux va être exécuté en premier et l'autre deuxième. Donc, ici, nous pouvons fondamentalement ajouter des scripts. Par exemple, ajoutez simplement l'exemple de script audio. Et puis nous pouvons dire, eh bien, quand est-ce que ça va être exécuté en gros ? Il s'agit donc d'un ajout de scripts à l'ordre du client et faites-les glisser pour réorganiser les scripts et le client peut l'exécuter avant ou après l'heure par défaut. C' est donc l'heure par défaut et exécutée de haut en bas. Donc fondamentalement, d'abord et puis, puis, à un moment donné, nous arriverons à l'échantillon audio. Donc, c'est quelque chose où vous n'avez pas nécessairement besoin d'avoir l'éveil et la fonction de démarrage ou une méthode. Utilisez-les plutôt pour savoir lequel est exécuté en premier parce que peut-être nous avons deux choses qui sont exécutées dans la méthode awake sur deux scripts différents. Et nous sommes comme, Ok, ce script doit s'exécuter avant ce script. Et c'est une façon dont nous pouvons l'assurer. C' est pourquoi l'ordre d'exécution du script peut être vraiment, vraiment important. Les services, appliquons effectivement cela. Les services sont encore une fois quelque chose que je dirais personnellement. Nous allons sauter une fois de plus parce que c'est quelque chose qui est beaucoup plus avancé car vous avez réellement un vrai projet en cours que vous pourriez vouloir avoir. Que voulez-vous collaborer ? Et soit avoir des achats intégrés à l'application, des builds Cloud, et tout cela. Pas vraiment intéressant. Les balises et les calques sont quelque chose que nous allons regarder plus tard dans la ligne. C' est dans une conférence future, en particulier les tags ou ce que nous allons regarder. Un Pro très intéressant basé sur le texte qui est tout simplement l'écran que nous avions lorsque nous importons un texte smash bro la dernière fois, le minuteur aussi être quelque chose qui est important ou intéressant. Nous avons essentiellement quelques étapes de temps fixes ainsi que l'échelle de temps. C' est essentiellement ce que nous obtenons si nous appelons une échelle Time.Deltatime. Et nous pouvons, en passant, aussi changer cela dans le script VA et puis le temps s'arrête fondamentalement. C' est donc quelque chose que nous pouvons aussi faire. Et toutes les autres choses ne sont pas intéressantes pour nous. La seule chose qui pourrait être intéressante est le rôle divergent avec les fichiers métalliques visibles, que nous pourrions vouloir activer fondamentalement pour notre je ne sais pas pourquoi il a commencé. Tout d'un coup, c'est bizarre qu'on veuille avoir les mésophiles visibles ici. Parce que peut-être que ce que nous voulons c'est que ça soit sur GitHub et que les mésophiles visibles aient du sens, non ? Et ce serait essentiellement le cas pour un examen rapide des paramètres du projet. Comme je l'ai dit, je voulais juste vous donner un bref coup d'oeil sur certains d'entre eux, surtout l'ordre d'exécution peut être très, très intéressant et important. Et la physique 2D que vous pouvez fondamentalement personnaliser ceux-ci est également assez cool. Je vous conseillerais certainement s'il y a certaines choses, alors vous pouvez également regarder vers le haut toujours chercher certaines choses que vous voulez. D' habitude, je ne sais pas. Donc, par exemple, ça aurait pu être que, Hey, en fait, je veux avoir le temps de dormir soit plus grand ou je voulais régler l'échelle de temps à quelque chose de plus d'un, et c'est exactement ce que vous devriez faire. Donc, au cas par cas, je vous conseille de rechercher les paramètres du projet dans l'unité dans la documentation Unity. C' est la meilleure idée que je puisse vous donner pour cela parce que sinon, une fois de plus, comme avec le système de particules, sera là après trois heures. Et puis nous passerions en revue tous les paramètres du projet. Et puis les deux premières heures auraient été oubliées après la dernière heure. C' est pourquoi je voulais juste mentionner ces existent peuvent être utiles à un moment donné. Mais maintenant, je vous conseille de prendre ça. D'accord. Et puis passons à autre chose pour la prochaine fois, non ? Donc ce serait tout pour cette conférence. Encore une fois, s'il reste des questions , n'hésitez pas à poser et je serai sûr de répondre. Et oui. 84. (Unity Intermédiate) Ajouter des étiquettes à GameObjects: D' accord, continuons avec la section intermédiaire de l'unité ici pour le cours de l'unité. Et dans cette conférence, nous allons jeter un oeil aux tags. Et pour ce faire, tout d'abord, nous allons ajouter de beaux sprites à ce projet ici. Nous avons nos bonnes vieilles cartes que nous avons utilisées précédemment. C' est encore une fois les cartes multiples. Donc, nous allons juste mettre en gros quelques réglages ici. Point de mode filtre, nous allons mettre les pixels par unité à 16, ainsi que de mettre le mode sprite à multiple. Ensuite, nous allons l'appliquer à l'éditeur Sprite. Mettez le tranchage à automatique, c'est bon. Et puis trancher. Et puis nous avons nous-mêmes des cartes individuelles ici avec une largeur de 42 et une hauteur de 60. Cliquez sur Appliquer ici. Et puis on va bien. Et puis à l'intérieur d'ici, nous avons ces cartes , core 0, 1, jusqu'à 55. Et nous allons juste prendre la Cour 0 et le mettre dans notre petit monde entendu dans notre scène. Et je pense que 02 est une excellente position pour cela. En fait, rien de tout ça n'est un système de particules. Commençons par créer une nouvelle scène, bien sûr, pour garder tout beau et bien rangé. Et ce serait L4, qui ajoute des balises. Et c'est aussi ouvert ça. Et puis à l'intérieur d'ici on peut mettre la carte et ils vont à 0,5, non ? C' est génial. C'est une bonne position qu'ils sont. Et puis nous voulons un bon objet GameObject vide ici. Bien sûr, à 000, 000 ou Monaco, ces tags. Et puis à l'intérieur de notre dossier de script, un nouveau dossier. Non, ça n'a pas marché. Voilà, tu y vas. Scripts. Scripts, créer un dossier, balises L4. Et puis nous allons créer un nouveau script C Sharp. On va juste appeler ça aussi. Et cela sera ajouté à notre objet de jeu vide ici. Et puis nous allons jeter un oeil à ce que cela peut réellement faire pour nous. D'accord ? Donc tout d'abord, un tags, quels sont nos tags ? Eh bien, l'idée est que vous pouvez ajouter certains éléments aux objets de jeu, et c'est exactement ici. Donc, comme vous pouvez le voir, étiqueté et actuellement ce n'est pas étiqueté, c'est démêler. La caméra principale a en fait détecter la caméra principale. Et ce que nous pouvons faire, c'est que si nous allons là-dedans, nous pouvons effectivement voir qu'il y a quelques balises prédéfinies pour nous. Répondre éditeur de finition uniquement joueur de caméra principal et le contrôleur de jeu. Et puis il y a aussi la balise de bord, essentiellement la fonctionnalité sur laquelle on peut cliquer. Et puis dans l'inspecteur, nous obtenons ces balises et les couches sentiront que nous pouvons voir. Et au lieu d'ici, comme vous pouvez le voir, liste des taxes est vide. Donc, la liste de nos balises prédéfinies que nous avons définies est vide et nous pouvons frapper ce petit plus et ensuite nous devons spécifier un nom. Donc, par exemple, nous pouvons dire, eh bien, la cour, le nouveau nom de tag est carte et ensuite enregistrer ceci. Donc, ceci est maintenant marqué 0. Et puis nous pouvons, par exemple, ajouter des ennemis aussi. Et puis peut-être quelque chose comme. Ne savent même pas même la santé ou, ou, ou, ou, ou, ou des dommages, quelque chose comme ça. Alors, qu'est-ce que ça fait ? Alors, qu'est-ce que ça fait maintenant ? Allons donc au vecteur, à la carte. Tout d'abord, très important si vous ajoutez une attaque via cette somme, nous avons ce menu déroulant. Il n'ajoute pas automatiquement la balise à l'objet de jeu. Vous devrez ouvrir la liste déroulante, puis sélectionner fondamentalement ceci. Donc on va dire cordon parce que c'est une carte détachée, parce que c'est une carte. Et puis nous pouvons penser que c'est fondamentalement l' une des autres façons que nous pouvons voir, ok, est-ce ce GameObject est un certain type d'objet essentiellement, avant, quand nous pensons à l'endroit où nous avions le collisionneur de boîte, où nous utilisons les collisionneurs. Là. Nous avons pu comparer le nom de l'objet. Mais vous savez, parfois le nom change et peut-être que différents ennemis ont des noms différents. Et vous voulez avoir une sorte d'autre marque d'identification. Et cela pourrait, par exemple, être une étiquette ennemie. Et comment utilisons-nous cette balise ? Eh bien, cette balise est en fait juste une chaîne. Il est très facile à utiliser. Donc, nous allons juste faire un journal de points de débogage ici. Et puis nous allons dire GameObject dot find. Et nous allons trouver les accords 0 parce que c'est bien sûr le nom de cet objet de jeu dans ce cas. Et puis nous allons dire, par exemple, tag, comme vous pouvez le voir ici, est juste une chaîne. Et puis copions ceci avec Control C. Et puis il y a une autre fonction ou méthode vraiment sympa ici appelée balise de comparaison. Et puis à l'intérieur d'ici, nous pouvons, par exemple, dire carte. Et puis il y en a un autre, disons ennemi. Droit ? Donc idée d'être ici. Le premier, nous allons juste sortir le tag, comme vous pouvez le voir, tag de cet objet de jeu. Et puis la balise de comparaison est ce jeu d'objets chargés de n'importe quelle étiquette nous lui donnons comme un périmètre ? Cela va bien sûr être vrai parce que le cordon est exactement le tag sur lequel nous l'avons réglé. Un ennemi devrait être une fausse comparaison. Dans ce cas, il est préférable d'utiliser cette méthode de la méthode CompareTo au lieu de faire la nôtre une comparaison de chaînes, je crois qu'il y a un peu de débat à ce sujet. Mais généralement, la méthode CompareTo semble plus agréable de toute façon, au lieu de faire des points de balise égaux et ensuite mettre, c'est bien. La balise de comparaison est en fait une bonne méthode. Bon, donc en théorie, ça devrait fonctionner comme immédiatement, Voyons voir, carte, ok, tout d'abord, ça, c'est le tag que nous avons prédéfini ici. Et puis bien sûr, il est vrai que l'étiquette et le panier et le CT sont exactement la même étiquette. Et alors l'ennemi n'est pas en fait l'étiquette que cette cour a, cet objet de jeu, n'est-ce pas ? Et c'est en fait tout ce qu'il y a aux tags. Ils ne sont pas fous, compliqués, mais ils peuvent être vraiment utiles si vous avez certaines choses prédéfinies qui devraient fonctionner d'une manière particulière. Et ils sont vraiment utiles, surtout lorsque vous utilisez les planeurs. Nous pouvons simplement comparer les balises. Ils sont au lieu de comparer le nom comme nous l'avons fait. Et ils sont une chose normale qui fait partie d'un GameObject comme vous pouvez le voir. Donc, c'est une propriété normale de l'objet de jeu et vous pouvez y accéder et même le définir à l'intérieur du script si vous voulez écrire, et ce serait pour cette conférence une fois de plus, j'espère que vous l'avez trouvé utile et vous avez appris quelque chose de nouveau. S' il reste des questions, alors bien sûr, hésitez pas à poser et je serai sûr de répondre. Et oui. 85. (Unity Intermediate) 2D Raycasting in Unity: D' accord, continuons avec la section intermédiaire de l'unité ici pour le cours de l'unité. Et dans cette conférence, nous allons jeter un coup d'œil à un casting de rayons. Donc refonte, peut-être que vous en avez entendu parler avant. C' est essentiellement une façon de voir si oui ou non vous deviez tirer un projectile dans une certaine direction, si oui ou non cela a frappé quelque chose qui a l'une des choses où il est utilisé. Le plus souvent, je dirais que l'un de ses cas d'utilisation peut être essentiellement de faire la détection de frappe. Donc, plutôt que de générer une balle et avoir réellement le système physique sorte de calculer sa trajectoire et avoir un nouvel objet de jeu et une sorte de certains comme ça. En fait, on dessine juste un coût de rayon, ce qui est une sorte de ligne invisible. Nous sommes un vecteur invisible qui détecte alors en quelque sorte quand il frappe une certaine base de collision. Et nous allons jeter un oeil à ça. Ça semble une nouvelle scène. Ce sera la refonte du L5. Maintenant. Oh, en fait, c'est comme ça. Voilà, tu y vas. Et le, nous allons examiner la refonte en deux dimensions. Maintenant en trois dimensions, la seule chose qui change vraiment est le nombre de ce que vous devez mettre dans le vecteur. Donc, au lieu d'un vecteur d'avoir à mettre dans un vecteur de trois. Mais en dehors de ça, tout reste vraiment le même. Et puis un nouveau dossier à l'intérieur de notre dossier de scripts L5 refonte, ainsi qu'un nouveau script là-dedans. Et cela à la surprise de personne est aussi appelé coulée de rayons. Super. Alors maintenant ajoutons deux cartes ici. Alors ajoutons une sorte d'as de cœur. Et puis je vais juste choisir au hasard de ça. Maintenant, nous avons deux cartes ici. Et ce qu'on va faire, c'est qu'on va être semi-centralisé, donc négatif 6, puis on met le y à 0. Et je vais mettre celui-là en négatif. Et le X86, c'est génial. Et l'un d'eux va être bien détecté dans un peu de temps. Et l'un d'eux. Donc, l'as du cœur va en fait tirer un re-cast de lui-même. Et puis il va détecter fondamentalement cet accord ici. Et la façon dont nous pouvons le faire est d'abord, ajoutons un collisionneur de boîte à jeter. Donc, pour les cinq clubs, je suppose que ce serait une fois de plus dans Physics 2D puis juste un collisionneur de boîte de sorte qu'un bel encombrement de boîte est dessiné autour d'elle. Et puis à la 0 ou l'as de cœur dans ce cas, nous pouvons simplement ajouter notre script afin qu'ils re correct script casting va être ajouté ici que vous allez. Et l'autre a un boxplot. Ouvrons le script de casting et voyons ce qu'on peut faire ici. Et ce sera une chose assez facile à faire. Donc, tout d'abord, nous allons supprimer la méthode start car nous avons seulement besoin de la méthode update. Et à l'intérieur d'ici, input.txt obtient une clé. On va prendre le gardien, dans ce cas, pas la clé. Et nous allons prendre de l'espace dans cette affaire. Parce que ce que je veux faire, c'est que je veux toujours faire un nouveau. En fait, faisons la clé vers le bas pour l'instant d'abord et ensuite nous pouvons le changer plus tard. Si on veut. Une nouvelle méthode, vide privé, spawn, re-cast. C' est juste pour que nous puissions le lire un peu mieux. Donc, c'est pour des raisons de lisibilité ainsi que juste parce que c'est un peu plus agréable au lieu de mettre cela à l'intérieur du genre de l'instruction if. Et ce que nous voulons, c'est un nouveau hit 2D. C' est ce que nous voulons. C' est égal à un rayon. Donc, cela est appelé raid la variable, et ceci est égal à la physique 2D. Donc cette physique à D est un point re-cast de classe. Et cela prend, comme vous pouvez le voir, une origine et une direction. Et nous pouvons aussi fournir quelques autres choses. Donc, ce sera cette transformation de point, cette position. Et puis il obtient une direction. Dans notre cas, ce que nous voulons que ce vecteur dot-dot, n'est-ce pas ? Ensuite, nous pouvons également spécifier une distance, comme vous pouvez le voir, faisons 15 F pour l'instant. Et ensuite, on ira bien. Si vous ne spécifiez pas de direction, alors le rayon sera infiniment long. Et dans le même coup, ou nous allons faire, c'est que nous allons dessiner, donc déboguer dot draw ray. Donc, nous pouvons réellement dessiner un rayon coûts ici, comme vous pouvez le voir aussi. Dans ce cas, il faut en fait un vecteur tridimensionnel. Donc vecteur trois, ainsi qu'une direction. Cependant, ce n'est pas un problème parce que nous pouvons tout simplement l'adopter. Cette transformation de point, vecteur de position de point, le vecteur deux points, non ? Times 15, parce que c'est fondamentalement la longueur que nous avons spécifiée ici, non ? Cette direction et c'est la longueur. Et si nous les multiplions, et cela fonctionne très bien aussi. Et puis nous devons fournir une couleur. Faisons le bleu ici. Faisons le bleu. Et puis il y a une durée. Donc c'est pour combien de temps ce rayon sera réellement dessiné. Je vais prendre cinq secondes. Donc, c'est beaucoup comme une ligne de dessin, juste que c'est spécifiquement pour un rayon dans ce cas. Et puis ce que nous pouvons faire, ainsi que déboguer dot log re point collision. Donc c'est le GameObject, Voyons voir, collisionneur. C' est en fait le collisionneur 2D qui est attaché à l'objet de jeu que ce tableau a touché. Et je vais juste dire le nom pour l'instant, sortons juste le nom sur ce que le recast réel a frappé. Donc, si vous pensez à ce sujet, ce qui devrait arriver est que de la position négative 600, un re-cast 15 étapes de la richesse mondiale avec 15 unités mondiales le long frai. Et puis, dès qu'il frappe les tribunaux, 32, il devrait en sortir aussi. Voyons si ça marche vraiment. Donc, en ce moment, nous sommes dans le jeu et j'ai frappé la barre d'espace et vous pouvez voir les cœurs 32 obtient réellement la sortie. Et nous pouvons également voir cette ligne bleue très mince. C' est très, très, ce n'est pas vraiment très bon à voir. Retournons en arrière et rendons ça rouge. Peut-être que le rouge est un peu mieux à voir. C' est peut-être le cas. Voyons si ça marche. Oui, le rouge, c'est un peu mieux. Alors C, je vais juste faire une pause. Au lieu de notre scène ici, on peut la voir un peu mieux. Comme vous pouvez le voir du centre de la carte à l'extérieur, nous allons à droite, exactement 15 unités fondamentalement. Et nous avons frappé cet accord et ce rayon détecte ensuite, oh, j'ai frappé une carte et puis en sort le nom réel. Maintenant, on peut le faire plusieurs fois, non ? Donc, nous pouvons générer tableau. Maintenant, le rayon serait parti à ce stade parce que nous avons déjà touché quelque chose que nous avons fait, nous avons fini. Donc le visuel est un peu, eh bien, je ne dirais pas que c'est trompeur, mais le visuel reste un peu plus longtemps, juste pour que nous ayons un spectacle que nous pouvons réellement voir ce qui se passe. Si on devait prendre cette carte et la déplacer vers le bas. Ce que vous verrez, c'est que tout d'un coup nous obtiendrons une référence nulle parce que nous n'avons rien touché à l'intérieur de ce rayon. Donc, c'est aussi quelque chose que vous devriez certainement considérer que peut-être re point collisionneur va en fait être nul. Alors soyez conscient de cela. Et si on le remet et et on le frappe à nouveau, alors comme vous pouvez le voir, les cartes 32 sont sorties plusieurs fois. Donc, avec ça, on peut dire, d'accord, où est ça ? Nous pouvons aussi jeter un oeil à l'endroit où cela a été frappé et toutes sortes d'autres choses amusantes. Donc, le rayon a en fait quelques choses là-bas. Voyons ce que le rayon a aussi à offrir. Pour que nous puissions avoir le collisionneur. Nous pouvons également obtenir la distance qui est peut être vraiment utile. Et c'est la fraction C de la distance le long du rayon où le coup s'est produit. Cela signifie essentiellement que si le rayon est 10 unités de long et qu'il a été touché exactement dans la moitié de la longueur du tableau, alors cela obtiendrait 0,5 parce que c'est 50 pour cent de la longueur du tableau. Il y a un vecteur normal que vous pourriez obtenir qui pourrait être utile si vous voulez faire des choses fantaisie avec des vecteurs qu'ils sont. Vous pouvez également obtenir immédiatement le corps rigide qui est attaché à l'objet de jeu. Dans notre cas, nous n'avons pas de corps rigide attaché à lui. Vous pouvez également obtenir le point, le point exact dans l'espace du monde où le rayon frappe la cible. Donc ce serait, eh bien, dans notre cas, ce serait quelque part ici. C' est l'une des façons dont vous pourriez, par exemple, dire, Eh bien peut-être si ça frappe en haut ici, alors vous voulez peut-être que la moitié supérieure de ce noyau disparaisse. Et si ça frappe en bas vous, alors vous voulez que la moitié inférieure disparaisse quelque part comme ça. Ainsi, vous pouvez en quelque sorte vous faire sans dommages dans certaines parties de cette carte. Mais oui, c'est le chauffage de refonte de base. Il est vraiment utile car avec bien sûr, le collisionneur une fois de plus, vous pouvez très facilement obtenir le point GameObject comme vous pouvez le voir. Et puis vous avez le GameObject et cela, bien sûr, ouvre fondamentalement tout ce que le, que l'objet de jeu a des droits que vous pouvez obtenir, ne récupère le composant à nouveau, obtenir n'importe quel composant qu'il a, et faire toutes sortes de choses folles avec. Donc, vous pouvez le frapper et ensuite changer sa position ou vous pouvez changer sa taille, quelque chose comme ça. Donc, fondamentalement, les possibilités sont vraiment infinies dans celui-ci. Et le re-casting est tout simplement une façon de vous, que vous pourriez le faire fondamentalement. Et c'est un moyen assez, je dirais pas bon marché. Tout ce qui est considéré pour le faire. Donc, si vous avez une scène 2D de base où vous tiriez quelque chose, alors peut-être mettre en re-cast est un peu mieux. Eh bien, oui, il y a de nombreuses options de ce que vous pouvez utiliser les coûts re avec. Ce ne sont là que quelques-unes que j'ai mentionnées. L' un de ceux que j'ai utilisés, par exemple, était à l'intérieur de mon, J'ai eu un jeu 2D. Soyons semblables à Zelda, disons. Et je tournais dans une refonte de mon personnage à chaque fois que j'appuie sur la barre d'espace pour parler aux PNJ. Les PNJ avaient tous un collisionneur de boîte et ils avaient aussi une interface appelée un traçable. Et si le re-cast a détecté qu'ils avaient une interface tolérable pour les yeux essentiellement attachée à eux. Puis j'ai pu leur parler. C' était essentiellement la façon dont j'utilise le re-cast dans un exemple. Mais bien sûr, il y a tellement de façons d'utiliser la refonte que oui, je voulais juste vous montrer comment vous pouvez l'utiliser et plus vous l'utilisez pour, eh bien, c' est vraiment à vous de décider. Et ce sera tout pour cette conférence sur la coulée de rayons. J' espère que vous avez trouvé cela utile. Comme toujours. Si des questions restent, hésitez pas à poser et je serai sûr de répondre. Et oui. 86. (Intermédiaire) Préparer le décor pour enregistrer des données: D' accord, continuons avec la section intermédiaire de l'unité ici pour le cours de l'unité. Et dans cette conférence, nous allons jeter un oeil sur la façon de sauvegarder les données avec les préfs des joueurs. Et oui, donc fondamentalement comment vous pouvez enregistrer des données particulières sur le disque dur. Et puis, quand vous rechargez essentiellement un coffre-fort, par exemple, comment cela fonctionne-t-il ? Et nous pouvons le faire avec quelque chose qu'on appelle les Préfs des joueurs. C' est une classe que l'unité nous fournit dans laquelle nous pouvons fondamentalement protéger des entiers, des chaînes et des types de données normaux et primitifs. Maintenant, pour ce faire, nous allons réellement construire un assez grand vu dans cette conférence ici. Donc, ce sont les préfs du joueur L6. Et la raison pour laquelle je veux construire un peu d' une scène plus grande ici est parce que numéro 1, c'est une bonne pratique. Donc c'est plutôt bon. Et puis numéro deux, cela sera également utilisé prochaine conférence lorsque nous sauvegardons et chargeons avec des fichiers JSON. Mais nous y arriverons une fois qu'il sera temps, n'est-ce pas ? Si vous n'êtes pas intéressé par fondamentalement les peluches autour d'elle et de faire l'interface utilisateur ici, alors vous pouvez, bien sûr, aussi sauter cette conférence parce que la prochaine conférence est fondamentalement juste le mur, comment vous faites les préfs du joueur sur leur propre. Et vous pouvez simplement télécharger le paquet réel qui est fourni. Là. Tout est déjà mis en place la scène et les préfs du joueur et tous les scripts sont fondamentalement configurés. La seule chose qui n'est pas configurée est l'enregistrement et le chargement des données, que vous pourriez ensuite suivre fondamentalement. Je voulais juste mentionner cela parce que le joueur réel préfs est seulement environ cinq minutes de la conférence réelle. Le reste est en quelque sorte le truc autour. Je voulais juste le mentionner. Vous n'avez pas forcément à le mettre en place. Vous pouvez également simplement le télécharger. Donc oui, alors L6, joueur préfs. Et pour créer nos scripts, nous avons en fait quatre scripts, dans ce cas, celui de, le premier est appelé population. Et puis probablement, oui, voilà. Et puis le second est une donnée de joueur. Ce n'est donc qu'un exemple pour certaines données de joueur que nous allons utiliser. Ensuite, nous avons ces prefs de lecteur sûr qui va être le fichier réel ou le script qui va enregistrer les données. Et puis nous avons également un gestionnaire d'interface utilisateur qui va gérer l'interface utilisateur qui sera affichée. Alors ouvrons ceux-ci l'un après l'autre. Les données des joueurs de la population de base, sûr, préfs des joueurs, puis dernier mais non le moindre, le gestionnaire de l'interface utilisateur. La première chose que nous allons examiner est la population des tribunaux, ce qui va être très, très facile. Ce sera en fait le plus facile d'entre eux. Parce que celui-ci aura simplement une liste privée de Sprite. Non, pas le dessin printanier mais Sprite. Ils vont être froids, tous appelés sprites. Et puis nous allons faire ce champ sérialisé. C' est tout, C'est toute la population automobile a. Il s'agit simplement d'un comportement mono qui contiendra toutes nos cartes. Et nous pouvons immédiatement ajouter ceci comme un objet de jeu vide ici. Donc ce serait notre carte. Population. Et puis nous allons ajouter ceci à l'objet réel, puis nos cœurs que vous avez déjà importés. Encore une fois, nous allons, tout d'abord, nous allons enfermer ça ici. Donc, en sélectionnant la population de cartes GameObject, verrouillant l'inspecteur. Et nous allons sélectionner Accords 0, puis maintenez notre touche Maj enfoncée afin que si chaque carte sélectionnée, et ensuite nous allons simplement les faire glisser sur tous les sprites de cordon. Et maintenant, nous avons toutes les épouses de cour ici, parfaitement à l'intérieur de notre script de population de cartes. Et cela sera utilisé plus tard pour référencer fondamentalement un sprites de carte différent. Et oui, alors continuons et construisons d'abord une très belle interface utilisateur. Donc pour ça, nous allons ajouter un panneau de ce soir et ensuite la toile, tout d' abord, bien sûr, déverrouiller encore ça. Et puis la toile sera mise à l'écran de la caméra spatiale. Ajout de la caméra principale ici. Ça ne devrait pas être trop fou. Et puis le panneau sera en quelque sorte à la moitié inférieure de l', la moitié inférieure ou le tiers inférieur. Faisons la moitié inférieure, C'est bien du champ visuel. Et nous aurons aussi une carte. Donc, nous allons juste mettre dans un tribunal entendu se produire 0. Ça va être à 0.52. Je pense que c'est bon. Et ça va s'appeler le cordon du joueur. Donc c'est la voiture. Fondamentalement, le joueur peut choisir quelle carte est affichée ici et nous allons sauver ça. Et quand nous rechargeons les données, alors la carte changera réellement. C' est une des choses que nous allons faire. Nous devons aussi construire quelques choses sur la toile ici. Donc ça va être un peu plus étendu dans ce cas. Une des choses que nous allons avoir est une liste déroulante et nous allons utiliser le texte Mesh pro dans ce cas. Alors faisons l'importation TMP essentiel ici. Maintenant que nous avons la sonde de maillage texte essentiellement sur cela aussi bien. Alors rendons ça un peu plus grand. Quelque chose comme ça va probablement suffire pour l'instant. On pourra l'examiner un peu plus tard. Donc ce serait le menu déroulant de la carte, n'est-ce pas ? Donc nous allons renommer cette carte déroulante. C' est le menu déroulant à partir duquel nous pouvons essentiellement partir de laquelle nous serons en mesure de choisir les cartes. On va le remplir avec les tribunaux plus tard. Et puis nous aurons trois entrées. Donc, ce sera une interface utilisateur et un champ de saisie, également du texte Mesh Pro. Parce que pourquoi pas ? Faisons ça quelque chose comme ça. Essayons de le centrer plus ou moins. Et puis allons dans ce champ de saisie et redimensionnons simplement cette semaine cette taille automatique. Donc, l'espace réservé est la taille automatique et d'autres textes seront également la taille automatique. Et puis ce champ d'entrée va être l'entrée HP. Donc, je vais essentiellement, ouais, Eh bien, tout d'abord, nous allons construire ceci et ensuite nous allons construire les données dessus tout en sélectionnant ce Control D pour le dupliquer. Et puis ça va être traîné un peu vers le bas. Et ce serait l'entrée vide, par exemple. Et puis nous allons dupliquer ça aussi. Et puis cela va être l'entrée XP. Et le, Je vais aussi obtenir quelques étiquettes là-bas. Ce sera juste un texte Mesh Pro. C' est donc l'étiquette HP, par exemple. Faisons celui-là. Et nous allons bouger ça, en fait le rendre un peu plus grand. Déplacez ça ici. Et c'est HP, n'est-ce pas ? Nous pouvons également la taille automatique. C' est génial, c'est plutôt bon. Dupliquez-le encore une fois avec ici Control D et puis un autre, règle d. Celui-ci serait le label MPI, veillant toujours à ce que cela soit bien fait ici ainsi que les objets de jeu renommés portail correctement, ainsi que bien sûr, changeant également les textes qu'ils sont. Parce que cela va vous sauver beaucoup de maux de tête, surtout plus tard dans la ligne. Si vous voulez changer certaines choses, ils sont que vous serez heureux que vous renommez ceci correctement. Et puis deux dernières choses, et ce seront deux boutons. Un bouton juste ici. Ce sera une fois de plus un bouton Mesh texte pro. Et ce sera le bouton Enregistrer. Et puis dupliquons cela aussi. En fait changer le de sorte que vous pouvez juste revenir en arrière contrôle Z. Bien sûr, cela peut être le bouton de données sûr, puis nous allons copier cela. En fait. Faisons aussi la taille de l'auto, donc c'est encore mieux. Maintenant dupliqué. Mais il semble que ce soit le bouton Charger, le bouton Charger. Et puis changez également le texte ici pour charger les données. En ce moment, le premier panneau est mis en place. Et maintenant, nous voulons un deuxième panel. Et c'est essentiellement pour afficher tout ce que nous avons mis là va être votre panneau. Et puis le rendre un peu plus petit sur le côté droit ici. Nous allons avoir un panneau ici, qui va afficher le reste des données. Donc ça va être le panneau de données du lecteur. Et sur celui-ci, nous allons avoir un texte d'interface utilisateur tout en haut. Ce qui va juste dire, ce sera juste l'étiquette de données du joueur. Par exemple. Cela va juste dire joueur, une taille automatique de données de joueur, puis aussi le faire centre id, l'ego. Et puis on va avoir des textos. Ce sera le label HP chaque peal une fois de plus. Ainsi, par exemple, nous pourrions également les sélectionner et les dupliquer à nouveau. Emmenez-les au panneau de données du lecteur, puis faites-les glisser pour que nous n'ayons pas à lire. Nous le faisons parce que ce sont essentiellement les mêmes. Ce ne sont que des étiquettes qui vont rester exactement comme elles sont. Donc ils ne vont pas changer. Cependant, nous le ferons, alors nous pouvons fondamentalement les dupliquer à nouveau. Et puis ceux-ci, ces objets de jeu, vont en fait changer. Donc ça le serait. Valeur HP, texte de la valeur, par exemple. Et puis nous avons le texte de la valeur MPI et le texte de la valeur XP. Les entrées ici sont, je vais juste choisir n'importe quel numéro ici. Donc quelque chose comme ça. Cent, dix cents, cinq cents, et puis celui-ci sera 500. Maintenant va aussi élargir cela un peu. Donc, nous allons rendre cela un peu plus grand et aussi le faire aligner avec ceux-ci pour qu'il soit un peu agréable. Plus ou moins. Au moins, ils vont quelque chose comme ça. Une ligne là-bas et une ligne. Là. Tu y vas. Maintenant, c'est bon. Et puis celle-là aussi. Et là, et puis nous allons faire la même taille ici, ainsi que celui-ci sont de la même taille que le plus bas et le milieu. Voilà, tu y vas. Ensuite, ces trois seront aussi en quelque sorte ancrés à droite. Donc nous allons avoir l'alignement B sur la droite, et ceux-ci vont changer. Mais nous allons, nous allons comprendre pourquoi, comment ça marche dans un peu de temps. Tout d'abord, c'est la configuration ici. Donc ça marche très bien et c'est plutôt bon. Rendons ça plus petit. Et nous pouvons fondamentalement déjà ajouter quelques choses à cela. Donc la première chose que nous allons avoir est que nous allons avoir un créer un objet vide. Est-ce que le gestionnaire de l'interface utilisateur, nous allons faire beaucoup avec cela dans un peu de temps ainsi que nous aurons un, un autre objet vide, l'objet de données sécurisé. Cela va essentiellement sauvegarder nos données et charger également nos données afin que nous ayons cela disponible, non ? Je crois que c'est une sorte de configuration dont nous avons besoin pour le moment, et maintenant il passe aux différents scripts. Ajoutons également le, ajoutons le lecteur, le lecteur sûr préfs ici à l'objet de données sécurisé, et le gestionnaire d'interface utilisateur à l'objet gestionnaire, ainsi que la population cardiaque que nous avons déjà ajoutée. Et puis les données du joueur, n'est-ce pas ? Les données du lecteur n'ont pas besoin d'être ajoutées à quoi que ce soit parce que les données du lecteur ne vont pas être un comportement mono. Donc c'est là qu'on peut commencer. Donc, supprimons cela d'abord et avant tout. Et les données des joueurs que nous voulions sauvegarder sont quelques choses. Ainsi, par exemple, ce que nous voulons enregistrer est un entier public, HP, un MP entier public, et un entier public XP, ainsi qu'un index de carte int public. C' est donc l'index qui représente la carte. Bien sûr, ce qu'on pourrait faire, c'est sauver la carte elle-même. Mais pourquoi pouvons-nous sauver la carte elle-même ou le sprite si nous pouvons simplement dire, Oh, je veux dire, nous avons un index, nous avons une liste de cartes. C' est pourquoi le noyau de la population était une si bonne idée. Et nous pouvons facilement le faire. Et nous allons essentiellement rendre cela assez raisonnable. Donc, tout d'abord, nous allons avoir un délégué ici. Donc, cela va être un délégué public vide sur le changement de données du joueur afin que nous puissions essentiellement voir quand les données changent. Donc on va mettre chaque bit de données ici dans l'index de la carte, dans l'index cardiaque. Donc, c'est le vide, puis tous les paramètres sont à quoi l'événement réel ou la méthode à laquelle il est appelé par l'événement doit ressembler. faut donc lui donner les périmètres et il faut l'éviter. Et puis nous allons avoir un événement statique public de type sur le changement de données du joueur, qui est sur le changement de données. Et nous allons l'utiliser pour mettre à jour l'interface utilisateur une fois que les données ont changé. Donc encore une fois, au lieu de passer par l'intérieur d'une méthode de mise à jour, nous allons le faire comme ça, non ? On va faire un seul modèle ici. Donc, nous allons avoir une donnée LEA statique privée, qui va être l'instance qui au début va être nulle. Et puis nous allons avoir un joli petit ghetto en faisant une instance de données de lecteur statique. Ceci est écrit maintenant en majuscules. Donc, ce serait dans ce cas, dans ce cas est en fait une propriété. Et puis nous allons avoir une entrée ici où nous disons fondamentalement, Hey, si l'instance est égale à null, alors nous allons créer une nouvelle instance. Et si ce n'est pas le cas, alors nous retournerons simplement cette instance. Et à l'intérieur d'ici, nous voulons réellement instance est égale à une nouvelle donnée de joueur. Cependant, en ce moment, ce serait vide. Donc, nous allons d'abord devoir faire un nouveau constructeur. Maintenant, ce constructeur peut réellement être privé parce que nous ne voulons jamais que des données claires soient en dehors de n'importe où. Nous voulons toujours le créer à l'intérieur d'ici. Dans ce cas, parce qu'il n'y aura toujours qu'une seule donnée de joueur. Et cela va être enregistré dans cette variable d'instance accessible par l'instance de données du lecteur statique public. Maintenant généralement, ce n'est pas tout à fait la façon dont il fonctionnerait probablement à l'intérieur d'un jeu qui fonctionne réellement. Mais cela va être, je pense qu'il suffit pour ce moment parce qu'en fait, tout ce que nous voulons faire, c'est que nous voulons des données que nous voulons sauvegarder. Donc, notre constructeur aura un JMP XP et un index de carte. Nous aurions pu aussi générer cela automatiquement, mais je crois que cela va se passer aussi bien. Donc c'est, ce AHP, ce point AMP est égal à MP. This .Tab XP est égal à x b, puis cet index de carte à points est égal à la coordonnée x. il est égal à l'index de carte ils vont. Et ce que nous aurons aussi c'est, donc ce sont les données du joueur à l'intérieur d'ici. Maintenant, nous devons spécifier les choses que nous voulons. Alors faisons cinq cents, cent, dix cents à 507 000. Donc, ce serait le HP, Démarrage HP, le MP de départ, XP de démarrage, et l'index de carte que nous commençons par. Et nous aurons aussi un vide public, qui va être la méthode de données du joueur de jeu, qui définit fondamentalement les données du joueur. Donc, nous pouvons fondamentalement le changer. Cela va avoir exactement les mêmes paramètres que le constructeur. Et ça va faire exactement la même chose dans ce cas. Et puis nous appellerons également le changement de données avec un point d'interrogation invoquer de sorte que nous vérifions si oui ou non il est fondamentalement nul ou non. Et puis nous pouvons simplement mettre tous les paramètres que nous avions là-haut. A l'intérieur d'ici. Et cela appellera ensuite l'événement de mise à jour ou de changement chaque fois que nous définissons les données du joueur et fondamentalement les changer afin que nous puissions mettre à jour l'interface utilisateur une fois que nous avons fondamentalement mis cela dans notre gestionnaire d'interface utilisateur. Bon, alors allons dans le gestionnaire de l'interface utilisateur. Donc votre manager va avoir un, ça va vraiment être très intéressant. Cela va fonctionner comme suit. Donc, nous avons un tas d'éléments d'interface utilisateur à l'intérieur de notre scène en ce moment. Et nous aurons en fait tous ces types de explicitement mis dans notre gestionnaire d'interface utilisateur. Donc, nous allons avoir un, donc tout d'abord, bien sûr, en utilisant le moteur Unity wi, donc nous devons utiliser cet espace de noms. Nous aurons deux boutons ici. donc privé, bouton Enregistrer. Et puis nous pourrions simplement copier cela sur le contrôle C, puis enregistrer cela avec le bouton Charger. Maintenant, les deux vont être des champs sérialisés. Dans ce cas, je vais en fait mettre le champ sérialisé dans la même ligne que celle-ci, parce que sinon notre script va devenir très long. Il est maintenant déjà très long, mais cela va juste le rendre un peu plus facile à lire. Vous pouvez aussi le faire en passant, je le mets généralement en haut sur une autre ligne. Mais ça marche aussi. Nous utiliserons également TMP Pro ou TM pro pour notre pro dans ce cas. Et nous allons avoir un champ sérialisé de type privé de champ d'entrée TMP, entrée HP, pas d'entrée, HP en fait. Et puis cela peut être copié aussi. Donc contrôle C, contrôle V, contrôle V. Et puis nous avons entrée MP et XP. Il aura également un champ sérialisé, TMP privé, liste déroulante. Ça va être notre liste déroulante de carte appelée liste déroulante. Et puis nous avons sérialisé champ de TMP privé, txt. Ceci est le texte HP. C' est donc l'affichage réel des valeurs. Hp prend du texte vide et du texte XP. Et pour l'instant, ce qu'on aura c'est qu'on en aura. Donc, les données d'un joueur jouent référence de données ici auront également une population privée appelée, population centrale, de sorte que nous pouvons y accéder quand nous le voulons. Et puis dernier but non moindre, que nous n'avons pas mis en œuvre, que nous n'avons pas mis en œuvre, mais nous allons très bientôt à la prefs des joueurs sûrs, qui va être les prefs des joueurs sûrs. Voilà, tu y vas. Et maintenant, c'est tout un tas de trucs, non ? C' est dingue. C' est beaucoup de choses. Oui. Et ce que nous allons faire, c'est d'abord, nous allons mettre en place cela dans les méthodes éveillées que nous allons stocker cela dans la méthode wake et nous allons mettre en place quelques choses au début. Et ça va être les données des joueurs. Donc, les données du lecteur sont égales à l'instance de point de données. Donc, cela s'assure simplement que la variable de données du lecteur ici, la variable statique est en cours de définition. Et cela enregistre ensuite cela dans la variable de données du lecteur. Alors nous le ferons, puis nous dirons, oui, eh bien, nous trouverons toutes ces choses. Donc, les prefs de joueur sûr seront égaux à la recherche de points GameObject. Et en fait ce que nous allons utiliser un autre que nous allons utiliser trouver objet de type. Donc, c'est une sorte de la recherche de point GameObject et ensuite obtenir le composant tout en un. Cela va trouver un, un objet de jeu qui a ce script particulier attaché à lui. Et puis la population de voitures va être le même objet de jeu dot find, objet de type. Et ça va être la population de cartes, non ? Et c'est tout. Pour l'instant ce que nous allons faire dans la méthode éveillée ici. Il y a encore quelques choses que nous devons faire avant de pouvoir continuer avec ça. Et donc je crois que la méthode de mise à jour nous n'avons même pas besoin parce que comme je l'ai dit, nous ne voulons pas utiliser la méthode de mise à jour. Nous voulons réellement mettre à jour l'interface utilisateur réelle avec un, avec le charbon de l'événement. Et oui, on peut déjà l'implémenter. Donc, cela fonctionnerait avec l'interface utilisateur de mise à jour privée. Remarque non mise à jour, mais mise à jour de l'interface utilisateur, qui a bien sûr exactement les paramètres suivants. En MPI, en XP et index int. C' est l'index de la carte, bien sûr. Et alors ce que nous allons faire, c'est nous allons mettre à jour exactement ces choses ici. Donc, nous avons les textes HP XP, nous avons le texte vide et avec le texte XP je puis une autre chose que nous avons bien sûr besoin est le GameObject de la carte de joueur. Donc, ce que nous pouvons faire, c'est le rendu de sprite privé. Cela devrait être compréhensible dans un moment. Renderer de sprite de carte de joueur. Donc c'est le, ça va être une référence au panier ici. Donc, la carte de joueur que nous avons ici et pour le rendu sprite nous afin que nous puissions définir cela comme une mise à jour aussi. Et cela va être le rendu de la carte de joueur sprite égal à la recherche de point GameObject, carte de joueur, carte de joueur que vous allez. Dot get composant, pas obtenir composant chez les enfants, mais normal get composant que ego, sprite renderer lu. Donc, c'est la configuration. C' est quelque chose que vous devrez généralement faire quand vous configurez gros scripts et une sorte de façon imbriquée de le faire. Et maintenant, nous pouvons réellement définir les données déjà. Donc, l'interface utilisateur de mise à jour devrait maintenant fonctionner non, sans aucun problème. Donc, le moteur de rendu de sprite de joueur est égal à la population de voitures. Et puis Aya, Bien sûr, eh bien, la population de voitures en ce moment, revenons rapidement à la population centrale. C' est bien sûr privé maintenant, nous devrons le rendre public dans ce cas. Pour que nous puissions y accéder de n'importe où nous le voulons. Vous pourriez aussi penser à le rendre statique comme un singleton, mais ça va se passer aussi bien. Et maintenant, on peut y accéder. Et ça va être l'accord de l'index donné où nous allons mettre ce tube. Et puis les textes seront également définis. Donc, le texte HP, le texte est égal à chaque point p toString parce que ce sont des entiers, nous devons réellement les convertir avec la méthode toString. Et puis nous pouvons simplement copier ça. Donc, les textes MPI et expert TTX, XP et MPEG-2 chaîne. l'autre sens, ils vont MP et XP. Fais attention à ça. Cela pourrait arriver juste pour s'assurer que tout est dans le bon ordre là-bas. À droite. Et puis que voudrait-on d'autre ? Nous aimerions également une autre méthode qui va être appelée privée ou pas charger, pas sur le niveau chargé mais seulement charger. Et c'est là que nous prenons essentiellement les entrées et les définissons. Donc l'idée étant qu'en ce moment ils sont vides, n'est-ce pas ? Donc, en ce moment, la texture est vide et nous allons immédiatement définir ceci sur la valeur par défaut fondamentalement. Donc, nous allons essentiellement dire immédiatement, ok, entrée HP, qui est écrit là va être point de données de joueur, point, point à chaîne. Donc, à l'onload, je vais vous montrer ce que cela fait exactement dans un peu de temps une fois que nous commencerons ça. Mais il va fondamentalement simplement s'assurer que les entrées réelles sont également faites correctement. Une goutte de toux. Une valeur est égale à l'index de carte de points de données du joueur. Et puis la méthode onload va être froide. Eh bien, actuellement, nous n'avons pas besoin de l'appeler. Appelons ça au chargement juste ici, dans l'éveillé. Après le lecteur, cette instance a été définie. Et puis je crois qu'on n'a plus besoin de faire trop de choses. Nous devons remplir la liste déroulante des cours. Donc, c'est quelque chose que nous devons faire parce que maintenant nous pourrions le faire soit manuellement ou via le script. Parce que lorsque nous regardons le panneau ici, donc ceci est notre panneau de saisie, la liste déroulante de la carte en ce moment bien sûr n'a pas d'options, ou plutôt il a des options a, B et C. Mais ce n'est bien sûr pas tout à fait ce que nous voulons. Et ce que nous voulons, c'est essentiellement toutes les cartes là-dedans. Donc, nous voulons les sprites de la population de cartes là-dedans pour que nous puissions fondamentalement choisir l'un des cordons qu'ils sont. Et ce que nous allons faire, c'est que nous allons faire une nouvelle méthode pour cela. Donc ça va être un vide privé. Vide t'éclate tard, le cordon tombe. Et cela va faire ce qui suit. Cela va avoir une liste de données d'option déroulante TMP. C' est ce que nous avons déjà vu, la façon dont nous avons pu remplir notre liste déroulante avant qu'elle ne soit avec cette classe de données d'option fondamentalement. Et ça va être une nouvelle liste ici. Et puis nous allons simplement faire pour chaque sprite, sprite dans la population de cour, note de points points, population de cartes. Ce n'est pas juste. Population de cartes. Voilà, tu y vas. sprites à points. Nous allons faire le paquet data.table, puis faire une nouvelle donnée d'option ici avec le nom de point sprite particulier ainsi que le sprite lui-même. Et puis dans la carte de fin, liste déroulante. Et les options est fondamentalement où nous pouvons ajouter une liste d'options et ils sont, nous allons ajouter les données dans. Donc, cela remplit simplement le menu déroulant réel. Et nous allons le voir en action assez bientôt. Droit ? Donc, voyons nous allons aussi nous assurer qu'à l'intérieur de notre liste déroulante de cour que les options que nous avons déjà ou effectivement prises qui sont la liste facultative ici sont vides en ce moment. Sinon, nous aurons également ces options. Et cela, bien sûr, ne fonctionnera pas. D' accord. Je crois que pour l'instant nous sommes assez en avance ou nous sommes assez loin à l'intérieur pour pouvoir commencer ça et changer les choses. Actuellement, nous ne serons pas en mesure de sauver quoi que ce soit. Et pourtant, la dernière chose en fait, avant de commencer, c'est que nous devons dire sur, sont éveillés ici, au tout bas ici, nous allons dire que ce serait le changement. Donc c'est le, en fait, mettons ça ici. Donc, dès que le jeu de données du lecteur, cela va être des données du joueur, le changement de données ordinales plus égal à l'interface utilisateur de mise à jour. Nous allons donc mettre à jour l'interface utilisateur lorsque les données du lecteur changent. Droit ? Et ça devrait être tout pour celui-là. Voyons voir, Commençons ça, voyons si nous avons des erreurs. En fait, nous obtenons une erreur. Ce n'est pas la pire chose. En ce moment. En fait, on fait des choses très compliquées. Donc on peut voir ce qu'est Y0. Cette carte sera abandonnée aux options de données de sorte que quelque part quelque chose ici est une lecture nulle. On peut y penser. Donc, l'idée est que nous avons la ligne froide 38 dans le gestionnaire de l'interface utilisateur. Et c'est en quelque sorte nul ici. Donc ce que l'on sait probablement c'est que la carte a été abandonnée dans ce cas. Et réfléchissons à cela. Et c'est bien sûr vrai parce que nous avons manqué une partie cruciale de cela et c'est la définition de tous ces champs sérialisés. Donc, si nous regardons le gestionnaire de l'interface utilisateur ici, tout ici n'est pas en cours de définition. Et c'est bien sûr quelque chose que nous devons faire d'abord. Donc, c'est quelque chose qui est tout à fait normal peut arriver à n'importe qui, n'importe qui. Fondamentalement, parfois on oublie juste de mettre quelque chose. Donc c'est vraiment très important à penser. Il s'agit d'une erreur qui peut se produire à tout moment. Et maintenant, nous allons définir cela de sorte que l'insertion d'un panneau ici, bouton Enregistrer est le bouton Enregistrer, le bouton Charger. Et maintenant, comme vous pouvez le voir, le nom ici est très utile parce que nous savons ce que tout est. Entrée HP est entrée HB, entrée vide est entrée vide x entrée p est entrée EXP, désolé, exécuté avec l'ego. Et la liste déroulante de la carte est la carte déposée vers le bas. Ensuite, nous pouvons aller à notre panneau de données de lecteur. Et obtenez les textes de valeur. Donc, les textes de valeur HB, textes de valeur MP et les textes de valeur XP. C' est pourquoi le nom des objets du jeu est si important. Ne dis pas que je n'ai pas besoin de ça. Cela ne prend que quelques secondes et cela vous évitera beaucoup de tracas car maintenant si ceux-ci seraient entrée un, entrée deux, entrée trois, nous n'aurions aucune idée. Nous devrons cliquer dessus. Regardez ici. Pas plus facile. Nommez-les correctement et tout va bien mieux fonctionner. Ecrivez-le maintenant, nous devrions être en mesure de commencer sans aucune flèche. Voyons voir. Ok, il n'y a pas d'erreurs, donc c'est déjà sympa. Vous pouvez voir les champs de saisie ici. J' ai effectivement rempli avec les données du joueur qui était en arrière-plan. Et puis nous pouvons également choisir quelques-unes des cartes ici. Maintenant, ils sont, comme vous pouvez le voir, un peu entassés. Donc, nous pourrions vouloir regarder dans notre liste déroulante et juste rendre un peu plus grand ici afin que vous puissiez fondamentalement étendre ce modèle dans un peu. Et je crois que cela devrait déjà rendre ça un peu plus agréable. En plus de mettre le modèle ici, ayant la sensibilité de défilement un peu plus élevée. Donc peut-être que mettre cela à 10 fonctionnerait aussi, mais c'est quelque chose qui n'est vraiment pas incroyablement nécessaire. Ça va rendre notre vie un peu plus agréable. Alors maintenant, c'est un peu plus agréable. Nous pouvons encore voir, cependant, ce que nous pouvons choisir votre fin. Oui, on peut choisir une carte différente. Et en ce moment, rien ne se passe sur le, sur le choix ici. Mais c'est en fait quelque chose que nous allons mettre maintenant parce que ce sont les trois dernières choses. Avant de réellement enregistrer quelque chose, nous avons courbe doit, avoir à changer les données que nous voyons. Donc, fondamentalement, si nous changeons l'affichage ici, alors nous voulons que les cartes réelles changent. Et si nous changeons quelque chose ici, alors fondamentalement à la fin de cela, nous voulons changer ces choses de données ici ou les données de joueur pertinentes qui sont affichées. Et nous pouvons ajouter ceci en gros, faisons un autre vide privé. Et ce serait essentiellement sur, sur les changements de données, sur les changements de données. Et nous allons mettre ça en bas ici. Donc, c'est sur, sur les changements de données. Et cela va avoir quelques auditeurs supplémentaires ici. Donc ça va être la carte abandonnée. Mais oui, sur la valeur modifiée, ajoutez l'écouteur. Et puis à l'intérieur d'ici, nous avons essentiellement l'index donné. Et puis nous pouvons faire une autre expression lambda ici. Et ce que nous voulons réellement, c'est que nous voulons changer les données des joueurs qu'ils sont. Donc, la chose la plus facile que je pense à faire ici serait de, oui, En fait, faisons une méthode sûre du vide privé avec inch, HP et MP dans x être un index entier comme celui-ci, juste sans celui-ci. Voilà, tu y vas. Et puis nous allons simplement appeler les données du lecteur de jeu de points de données, sorte que c'était la méthode que nous avons définie auparavant. Chaque BMP. Et l'index. Et ça va être appelé ici. Donc, même si l'index change, nous allons changer toutes les données du joueur. Ce n'est pas trop mal. Toutes les choses considérées parce que, parce que, pourquoi pas ? Donc, ce sera, nous allons en fait faire un int. Ce serait l'entrée HP est égale à dans le texte point d'entrée HP parse point. Désolé, c'est l'entrée. HP. J'appelle cela l'entrée. Oui, définitivement. D' accord. Entrée HP est le, est un entier. Oh désolé, bien sûr, c'est la même chose, alors cela ne fonctionnera pas. Donc, entrez des textes HP points points points, ils vont. C' était donc le problème ici. Et nous allons copier cela, faire l'entrée MP et la valeur d'entrée X p. Cela peut être MP et XP. Donc fondamentalement, en ce moment, nous lisons tout ce que le texte est à l'intérieur de nos entrées ici. Donc l'entrée ici, l'entrée ici, et l'entrée ici. C' est le texte que nous lisons. Et puis fondamentalement l'enregistrer dans cette méthode sûre. Et cela va définir les données réelles là-bas. Donc, cela va être entrée chaque valeur de p, valeur vide d'entrée et valeur d'XP d'entrée ici. Voilà, tu y vas. Et puis nous avons aussi besoin de l'indice. Maintenant, l'index est en fait ce que nous sommes donnés avec l'écouteur ici parce que c'est la liste déroulante vous donne fondamentalement l'index du changement afin que nous puissions descendre et ensuite nous choisissons un élément particulier dans cela. Et on nous donne l'indice que nous changeons aussi. Et c'est exactement ce que nous voudrions ajouter à la méthode save ici afin que l'index de l'accord change. C' est donc l'un des auditeurs que nous voulions ajouter. Et nous voulons également ajouter des écouteurs pour le changement sur les entrées réelles qu'ils sont. Donc, l'entrée HP, um, qui est le champ d'entrée, il y a une modification de fin. Donc c'est une fois de plus, nous l'avons déjà vu. Cet événement qui est déclenché lorsque nous avons fini d'éditer le particulier, eh bien, tout ce qui est écrit là-dedans. Et puis à l'intérieur d'ici, nous allons en fait obtenir une chaîne. Donc, cela va être, appelons ceci le texte HP. Bien sûr, pourquoi pas chaque sommet ne change pas, pourquoi pas celui-là ? Et puis nous appellerons également la méthode save ici. Et au lieu d'utiliser la chose réelle qui a été analysée là-bas, nous voulions vraiment que chaque sommet change ici. Cependant, les autres valeurs que nous allons prendre du haut, elles sont la valeur d'entrée x p ainsi que l'index que nous devons également obtenir, bien sûr, alors ce serait int index égal à int point nulle part. Tu n'as pas besoin de faire ça. Nous pouvons faire une valeur de point déroulante. Voilà, tu y vas. Donc, ce serait l'index. Appelons ça l'index de la carte. Parce que sinon cet index et cet index pourraient être confus. Donc l'index de la carte. Et voilà. C' est maintenant bien sûr une chaîne. Donc, cela devrait être analysé à l'intérieur d'ici, est un peu bizarre, mais je pense que cela va bien se passer. Le texte change l'ego. Et puis allons en fait tirer ça ici pour que nous puissions, maintenant je pense que ça va bien. Et nous voulons le faire non seulement pour le HP. Donc, quand le, quand nous avons terminé avec l'édition HP, mais aussi avec le MP et l'édition XP. Maintenant très important que nous modifions également ces noms de variables. Donc, c'est NP et c'est le changement fiscal XB. Et puis nous ne voulions plus analyser le changement de HP ici. En fait, nous voulons prendre la valeur en haut. Nous voulons est de copier celui-ci dans l'analyse de points. Et là, c'est la même idée. Oups, non, ce n'est pas ce qu'on veut. Voilà, tu y vas. Cela va être entrée valeur HP, puis copier ce contrôle C. Et puis cela va être integer.parseInt, ceci et ceci. D' accord, passons à travers ça. Expliquons rapidement, rapidement, rapidement les listes. Alors, qu'est-ce qu'on fait ici ? Donc, sur les changements de données est simplement une méthode que nous appelons à la fin de notre méthode de poids ici. Et l'idée est qu'au début nous lisons tout ce pour quoi nous avons les entrées. Donc, nous lisons le texte du HP et mettons l'entrée MPI dans l'entrée XP, ainsi que la valeur actuelle qui est sélectionnée dans certains de notre menu déroulant. Ensuite, nous ajoutons des auditeurs à chacun de ceux-ci. Donc, fondamentalement, lorsque la valeur de notre liste déroulante change, donc si nous sélectionnons une valeur différente, alors ce que nous voulons, c'est que nous voulons que la méthode sûre soit appelée fin, soit transmise exactement ces valeurs. Maintenant, cela ne va tout simplement pas changer quoi que ce soit. Nous le sommes simplement, mais nous voulons quand même que ces valeurs soient transmises. Parce que dans notre cas, nous avons une méthode sûre qui a les quatre de ces valeurs en théorie, bien sûr, nous pouvons également aller aux données du joueur et fondamentalement définir les données du joueur individuellement afin que nous puissions définir des morceaux individuels des choses. Donc, si nous revenons à nos données de joueur ici, bien sûr en ce moment, nos données de jeu de joueurs sont quelque chose où nous devons définir chaque variable en même temps. Nous pourrions, par exemple, faire plus, surcharger cette méthode et avoir quelque chose comme définir données du joueur et ensuite seulement lui donner le HP ou seulement lui donner le MP, ou seulement l'XP et ainsi de suite. heure actuelle, je pense qu'il est plus logique d'avoir tout cela en un seul parce que nous pouvons accéder au reste de l'entrée réelle. Ils ne posent aucun problème. Et puis la prochaine chose serait que si nous étions à un, changer les champs d'entrée. Donc, si nous avons fini avec l'édition là que ce que nous voudrions, c'est que nous voulons définir la seule entrée que nous avons modifiée. Cela va être une chaîne de donc nous devons l'analyser aussi bien. Et puis le reste sera les valeurs par défaut, en quelque sorte parler. Donc ils vont rester comme ça. Et nous voulons le faire pour chacune des trois entrées. Droit ? Et maintenant, nous ne sommes toujours pas à économiser parce que, comme je l'ai dit, cela va être un peu plus étendu parce que je veux vraiment que vous compreniez en quelque sorte le cadre qui l'entoure. Il est le poids à cause de l'épargne elle-même va être vraiment facile. Tu vas être comme si c'était l'économie. Vous passez 30 minutes sur l'interface utilisateur et tout ça, puis comme quatre minutes à sauver des choses, c'est ridicule. Mais c'est fondamentalement, je veux avoir cela comme une sorte de, une façon vraiment agréable dans laquelle vous pouvez également jouer avec un peu. Donc, ouais, maintenant tout a été réglé. Voyons ce qui se passe. Alors tout d'abord, commençons ça. Et si nous devions avoir une carte différente sélectionnée ici, et comme vous pouvez le voir, ça change pour le Roi, ce qui est vraiment, vraiment cool. Et puis on peut changer une autre carte, 33, et peut-être qu'on veut descendre 41. Voilà, tu y vas. Maintenant, changeons le HP. Ainsi, par exemple, 8 mille. Et si je clique en dehors de cela, alors le HP sera effectivement changé aussi. Maintenant, ce que vous aurez remarqué ici, c'est que l'accord change en arrière et nous allons corriger cela aussi bien. Je viens de remarquer pourquoi ce serait le cas. Et la raison en est que cela sur les changements de données, bien sûr est appelé une fois. Et nous économisons essentiellement quelles que soient les valeurs réelles. Ceux ici, ce que vous pourriez dire, eh bien, ça ne va pas être un problème. Cependant, ce sera en fait un problème parce que c'est une sorte de chose unique, n'est-ce pas ? Donc, cela est appelé une fois, puis ces valeurs sont transmises à cela. Il y a donc deux façons différentes d'y faire face. On peut soit faire en sorte que ça prenne ces choses correctement, puis les mettre ici. Donc, il peut en gros avoir celui-ci, puis celui-ci, et ensuite celui-ci. Maintenant, vous pourriez vous demander pourquoi cela changerait-il ? Et casser ça comme ça pour qu'on puisse le voir. Vous pourriez donc vous demander pourquoi cela changerait-il pour fonctionner ? Et l'idée est que, eh bien, parce que le texte d'entrée change ici après que nous avons mis en cache cette valeur. Cette valeur ne change plus. Ceci est fixé dans la pierre fondamentalement. Donc c'est une sorte de chose qui est importante quand vous l'êtes. Je veux dire, ce n'est pas vraiment une sorte de parallélisme ou, vous savez, de travailler avec des choses parallèles. Mais c'est l'une des choses qui est très important à penser car parfois la mise en cache de ces valeurs ne fonctionne pas tout à fait. Donc, malheureusement, nous devrons prendre ceci et ensuite remplacer fondamentalement celui-ci et celui-ci aussi. Et puis nous pouvons prendre le texte vide et 87. (Intermédiaire) Enregistrer des données avec PlayerPrefs: Et maintenant, à la partie sauveuse, que tout le monde attend probablement depuis un certain temps. Et ce que nous aurons, c'est que nous aurons deux méthodes à l'intérieur de notre jeu, les préfs des joueurs sûrs. Cela va être un public éviter des données sûres, enregistrer des données, puis un vide public des données de charge, charger, charger des données. Voilà, tu y vas. Et aussi une variable de données de joueur privé ici jouer nos données. Ils y vont. La date du joueur de la variable va être définie pour jouer une classe de données égal à la couche de données égale dans l'instance de point devrait être raisonnable. Les données enregistrées vont simplement faire des préfs de joueur. Donc c'est exactement la classe dont je parlais dans laquelle nous pouvons sauver des choses et ensuite nous pouvons sauver des choses avec l'ensemble. Donc définissez, flottez, définissez et définissez la chaîne. Ce sont essentiellement les trois valeurs différentes que nous pouvons sauver. Donc ils seraient tous ins, donc c'est HP. Et puis en tant que deuxième paramètre, nous allons lui donner la valeur réelle. C' est donc tout ce que nous avons vraiment besoin de faire pour sauver cela. Et puis faisons ça pour tous. Donc MPI, pas seulement lui mais MP, EXP, et puis nous allons aussi faire la carte, carte à carte index. Et ça va être vide EXP, puis l'index de la cour. C' est donc l'économie faite. C'est ça. Maintenant, nous avons seulement besoin de nous souvenir de ces cordes, bien sûr, parce que ce sont les clés. Donc, vous pouvez penser essentiellement que le lecteur appuie comme un dictionnaire, un dictionnaire de clôture qui enregistre réellement cela sur un, sur le disque, sur le fichier. Alors pour lire obtenir ça, on peut le faire. Donc interrompre l'XP entier, le joueur, prefs de joueur, le point de prefs de joueur, entrer dans ce cas. Donc GetInt est fait de façon que vous passez la clé et ensuite vous obtenez à la valeur réelle. Vous pouvez également faire une deuxième chose où vous pouvez mettre une valeur par défaut. Donc, si cela n'est pas trouvé, alors vous sortez fondamentalement la valeur par défaut. C' est tout simplement pour fail-safe que si pour une raison quelconque vos choses ne sont pas définies, alors vous pouvez le faire comme ceci. Donc, copions cela plusieurs fois aussi. Mp XP, puis l'index de la carte. Et nous en avions un de 1500 pour le député et l'XP était 2500. Donc nous allons changer ça aussi. Is 0 pour les index de carte s'ouvriront comme ça. Index de la carte de l'ego. Donc maintenant que nous avons aussi les valeurs par défaut de base, juste au cas où elles n'existent pas. Parce que peut-être ce qui se passe est que nous cliquons sur le bouton de chargement des données et en fait les données n'ont pas encore été définies. Donc ce serait très bien. Et puis jouer un jeu de données de lecteur. Et puis là, nous pouvons mettre dans le HP, le MPI XP, et à l'index de la carte. Et c'était tout pour la sauvegarde et le chargement. On a seulement besoin de se brancher aux deux boutons. Et ce serait tout. Donc, nous avons seulement à faire le bouton de sauvegarde sur clic, Ajouter écouteur. Et puis là, nous pouvons simplement appeler Safe player prefs dot save data. Et dans le même jeton, en copiant ceci, nous pouvons dire le bouton Charger. Nous voulons charger des données. Et les préfs du joueur, préfs du joueur sécurisé ont été définis avec l'objet de recherche de type. Donc, cela devrait être réglé. Cela fera aussi bien. Cela pourrait donc être extrait dans une autre méthode. On va garder ça là pour l'instant. Mais dans l'ensemble, je crois que ce devrait être tout ce dont nous avons besoin. Faites-le. Tu sais, il y a d'autres choses. Donc, cette méthode onload, nous pourrions probablement nous rappeler cela à remplir le texte. Il y a beaucoup de choses que nous pouvons changer pour rendre cela un peu plus lisible. Mais dans l'ensemble, ça va se passer. Et voyons si nous pouvons réellement enregistrer et charger des données. Ce serait donc très cool et très intéressant. Donc on va commencer ça pour l'instant, et ensuite on va choisir un gentil roi. Ensuite, nous allons avoir quelque chose comme 12000 et ensuite nous en aurons beaucoup et ensuite quelque chose comme ça pour l'EXP. Ensuite, appuyez sur le bouton Enregistrer les données. Rien ne s'est passé, ce qui est plutôt bon parce que, vous savez , s'il y a une erreur, alors nous en aurions probablement entendu parler. Et puis sortons de là et tout le monde sait, toutes mes données sont perdues. Je ne sais pas. Je ne sais pas ce qu'on avait ici, comme 30000. Cliquez sur le bouton Charger les données et voyons si cela fonctionne. Et ça l'a fait. Donc c'est plutôt cool. L' une des choses qui n'a pas encore mis à jour est les textes HP, les textes et les textes XP ici. Donc, c'est quelque chose que vous auriez aussi besoin de penser. Parce que si nous devions changer la carte réelle ici, cela changerait parce que c'est la lecture de ceux tout le temps. C' est donc l'une des choses qui sont très importantes à penser, laquelle il faut réellement réfléchir. Je m'assure également que ceux-ci sont sauvés ainsi et qu'ils changent avec elle. Donc, ce que vous pourriez faire fondamentalement en théorie, qui pourrait fondamentalement faire est que vous pouvez simplement appeler la méthode de chargement à chaque fois que vous faites cela. Donc, fondamentalement, ce que vous faites simplement est au lieu de simplement lui donner la méthode unique, nous pouvons mettre dans un support bouclé ici et un support bouclé ici. Et puis assurez-vous que vous n'oubliez pas le point-virgule et puis dites au chargement. Donc maintenant, la méthode onload est appelée chaque fois que vous dites cliquer sur le bouton Enregistrer. Et puis nous pouvons faire la même chose pour le bouton Load aussi. Alors faites celui-là, et ensuite on peut dire « charge ». Et puis si le onload est appelé, bien sûr, alors nous allons toujours réinitialiser nos entrées à exactement cela. Et ça devrait être tout à fait bien. Voyons si ça marche maintenant. Les données doivent toujours être enregistrées car elles ont été enregistrées auparavant. Regardons donc ces données de chargement. Et comme vous pouvez le voir maintenant, toutes ces données ont également été définies. Et puis si nous changeons la carte, alors rien ne change à nouveau ici. C' est le dernier type de correction que vous auriez besoin d'implémenter pour que cela fonctionne. Et puis je peux changer ça en autre chose. 99, 99, quelque chose comme ça. Et puis, tu sais, je ne sais pas, quelque chose comme ça. Et si je garde encore ça, et maintenant, je vais tout changer, non ? Quelque chose comme ça. Et puis on va aller à une autre carte. Et si je devais charger maintenant, tout redevient exactement les données que j'ai enregistrées juste avant. Droit ? C' était donc une façon très ronde de montrer comment vous pouvez enregistrer des données. Je voulais faire cela dans un peu plus, disons le style dans un peu plus agréable et quelque chose que vous avez réellement cela pour que vous puissiez jouer avec elle. Peu importe si vous avez pris le si vous avez déjà importé le paquet et joué avec lui comme ça, ou si vous avez programmé, comprenez que c'est un peu plus compliqué, même si le se sauver, comme vous pouvez le voir clairement, est très, très facile à faire. Ce n'est pas quelque chose de fou. Il est juste deux méthodes quand fondamentalement juste la méthode set , puis la getMethod que nous faisons sur les préfs du joueur. Et oui, ce serait l'épargne. Mais je voulais avoir tout autour parce que la prochaine conférence, ce que nous allons regarder est d'enregistrer des données avec Jason fondamentalement avec des fichiers JSON. Et cela va être un peu plus compliqué, cependant, est-ce qu'un numéro un va être beaucoup plus robuste ? Et numéro deux, il va en fait nous permettre de sauvegarder classes entières au lieu de simplement enregistrer des entiers, des flottants et des chaînes. Ce qui est assez important, surtout si vous travaillez vraiment avec un grand projet. Ensuite, les entiers, les flottants et les chaînes peuvent vous obtenir un peu pour. Mais à un moment donné, vous allez être comme, mec, juste je ne veux pas mettre ça aussi les Préfs des joueurs ne sont pas la meilleure idée de tout sauver là-dedans. Ceux-là, Il est préférable de sauver fondamentalement. Ainsi, comme vous pouvez le voir, il stocke les préférences des joueurs entre les sessions de jeu. Comme son nom l'indique, il est plus ou moins préférable d'enregistrer une sorte de, vous savez, vos préférences pour votre joueur là-dedans. Alors peut-être des options, c'est une bonne idée d'enregistrer dans les préfs du joueur. Et puis au-delà de cela, ce n'est probablement pas, il n'est certainement pas recommandé d'enregistrer des données vitales là-dedans. Il est beaucoup mieux d'enregistrer cela dans votre propre fichier JSON et ensuite peut-être même votre propre format de fichier, mais c'est un fichier adjacent beaucoup trop avancé pour nous en ce moment à la prochaine conférence va suffire beaucoup donc cela va être plus de assez. Ce serait tout pour cette conférence. Comme je l'ai dit, c'était un peu plus étendu. L' épargne elle-même. Assez facile. Mais oui, ce serait tout pour celui-là. Comme toujours. Si vous l'avez apprécié et si vous apprenez quelque chose de nouveau, j'apprécierais bien sûr un commentaire de votre part. Sinon, si des questions restent, alors bien sûr, n'hésitez pas à poser et je serai sûr de répondre. Et oui. 88. (Unity Intermédiate) Enregistrer des données (personnaliser) avec des fichiers JSON: D' accord, continuons l'introduction de l'unité intermédiaire ici pour le cours de l'unité. Et dans cette conférence, nous allons jeter un oeil à la façon d'enregistrer des données dans un fichier JSON. La dernière fois, nous avons mis en place notre joli petit exemple ici, ainsi que des données de sécurité avec les préfs du joueur dans ce cas. Et maintenant, nous allons en quelque sorte ajouter à cela et fondamentalement avoir les données enregistrées dans un fichier JSON au lieu des préfs du lecteur. Donc, tout d'abord, créons une nouvelle scène. Cela va être en fait maintenant pas une nouvelle scène. Nous allons prendre les préfs du joueur L6, désolé, puis Control D pour les dupliquer. Et ça va être L8, Jason. Et puis à l'intérieur du dossier des scripts, un nouveau dossier, et c'est L8 enregistrement avec JSON ou juste Jason, c'est bien aussi. Et puis le nouveau script ici, et on va appeler ça le chargeur Jason. Parce que ce sera un solitaire qui charge Jason Wright. Et maintenant, nous allons également ouvrir le Jason est vu ici et puis basculer sur les données sécurisées. Donc, nous allons fondamentalement supprimer le script de sécurité des prefs de lecteur à partir de là et ajouter le script de chargeur JSON là-bas. Et puis nous allons ouvrir le script inférieur Jason ainsi que nous avons également besoin du gestionnaire d'interface utilisateur et les données du lecteur. Ce sont les deux autres dont nous avons également besoin parce que nous devons changer quelques choses là-dedans à propos en fait pas beaucoup. Donc, dans les données du lecteur, nous allons réellement ajouter System.out sérialisable en haut de la classe. Cela nous permet simplement de convertir ces données de classe dans un fichier JSON, pour ainsi dire. Donc, c'est l'idée qu'ils sont. Et la deuxième chose dans le gestionnaire d'interface utilisateur que nous devons faire est en fait pas trop mal. Nous voulons ajouter une, une autre variable privée ici, et ce serait un chargeur Jason privé appelé le chargeur JSON. Appelons ça comme ça. En fait, et c'est bon, c'est bon. Et cela sera réglé ici. Donc, ce serait le chargeur JSON est égal à l'objet de recherche de point GameObject de type Jason loader. Et ce serait bien. Et puis au lieu de faire ce qui suit, donc au lieu de sauvegarder et de charger avec les préfs du joueur, ce que nous allons faire, c'est que nous allons dire, d'accord, si les préfs du joueur ne sont pas nuls. Donc, s'il a trouvé dans la scène actuelle a, un objet avec le joueur sûr prefs. Alors nous le ferons. Et si ce n'est pas le cas, nous allons regarder si la trace et le chargeur est inégal à null sur égal null. Et si c'est le cas, alors on va faire autre chose. Ensuite, nous allons essentiellement tenir les données de sauvegarde de point du chargeur JSON. Alors ouvrons le fichier chargeur JSON ici. Et nous allons en fait garder ce comportement mono parce que nous l'avons déjà attaché. Et nous avons besoin une fois de plus aux données du lecteur ici, les données de couche comme une variable. Ceci, bien sûr, peut être très facilement obtenu avec l'instance de point de données de lecteur. Et puis comme avec les Préfs des joueurs, nous allons en fait avoir un voyage public, des données sûres et un vide public. Données publiques de chargement vide. Non, pas celui-là, mais charger des méthodes de données. Donc ceci, si vous avez vu cela et puis aussi le joueur préfs C-Sharp classe que nous avons fait. Vous pourriez dire, eh bien, nous avons des données sûres et des données de chargement sur ces deux. Ne pourrions-nous pas faire une interface pour ça ? Oui, c'est exactement exact. Ce serait l'un des, l' un des moyens que vous pourriez aussi faire cela. Donc, vous pourriez probablement mettre en place une interface pour chacun d'eux. sorte d'avoir ceci comme une donnée enregistrée ou une IA, IA data save ou quelque chose comme ça, cela fonctionnerait probablement aussi bien. Mais dans notre cas en ce moment, nous n'avons pas besoin de le faire. On veut juste savoir, d'accord, comment pouvons-nous réellement sauver ça dans notre adjacent et nous pouvons le faire ? Tout d'abord, ce dont nous avons besoin, c'est que nous devons également utiliser l'espace de noms System.out.Print Joe. Parce que c'est l'espace de noms que nous, que nous pouvons écrire et lire des données. moment, dans notre méthode de sauvegarde des données, ce que nous allons faire est que nous allons définir une chaîne appelée adjacente. Et puis nous allons utiliser la classe utilitaire Jason pour convertir fondamentalement un objet en JSON. Ainsi, comme vous pouvez le voir, nous pouvons mettre un objet en tant que paramètre et le convertir en une représentation JSON. Donc, juste pour une clarification rapide, adjacent est une notation d'objet JavaScript. Ne laissez pas ça vous tromper. C' est, il n'a pas besoin d'être seulement utilisé en JavaScript, c'est juste une sorte de moyen que vous pouvez stocker données assez efficacement et fondamentalement les lire et les écrire. Donc, ce que nous allons faire, c'est que nous allons réellement enregistrer cette chaîne JSON et voir ce qu'elle fait. Et alors ce que nous pouvons faire, c'est que nous allons également enregistrer un chemin particulier. Donc, bien sûr, nous allons bientôt utiliser essentiellement le stream writer, que nous avons déjà utilisé dans l'introduction C-Sharp. Et celui-ci va enregistrer quelque chose en particulier, dans un répertoire particulier. Et la façon dont nous pouvons le faire est d'utiliser les données d'application, le chemin de données. Donc, c'est fondamentalement le chemin de données. Ensuite, nous pouvons utiliser la moitié de l'ancien séparateur de répertoires. Maintenant, ça peut sembler fou. Qu' est-ce que tu fais là ? Ensuite, le dernier va être enregistré point de données JSON. Et l'idée est que, eh bien, le chemin de données, comme vous pouvez le voir, est toujours directement dans le dossier du jeu. Il s'agit donc d'un chemin direct vers le dossier Assets. Et ce vieux séparateur est fondamentalement. Eh bien, ce dont vous avez besoin. Donc, soit une barre oblique inverse grise parce que parfois en fonction du type de système sur lequel vous êtes, que vous soyez ou non sur un Linux, Mac ou PC. Donc Windows, que cela pourrait être différent. C' est pourquoi un ancien caractère de séparateur de répertoire point de chemin est probablement préférable d'utiliser ici. Donc, nous allons tout d'abord juste que ce soit sorti ici sur un coffre-fort au lieu de l'avoir réellement économise quelque chose, juste pour que nous puissions le faire. Donc, copions essentiellement l'écoute ici à écouteur, puis changez les paramètres du lecteur sûr pour Jason loader, puis le JSON plus bas ainsi. Et cela devrait absolument marcher, totalement bien. Voyons maintenant si cela a réellement fonctionné. Donc, si nous allons entrer ici et que nous allons changer quelques choses. Ainsi, par exemple, dans la vieillesse, cela change les chiffres ici juste un peu. Et puis si nous frappons sur Enregistrer les données, nous devrions voir une sortie. Et nous le faisons en fait HB est cinq, qu'est-ce que 5 millions, ouais, et puis 24 000 pour MP un 100 et 33 pour XP. Et puis l'index du panier est 18. Et puis vous voyez également exactement où il enregistrerait le fichier adjacent. Et ce serait exactement à l'intérieur de notre dossier d'actifs ici. Donc c'est plutôt bon. Et nous pouvons maintenant ajouter la fonctionnalité. En fait, je vais le sauver aussi. Alors, comment pourrions-nous le sauver ? Eh bien, nous allons utiliser le mot clé, une fois de plus avec le rédacteur de flux dans ce cas. Donc, ce sera le writer et c'est égal à un nouveau stream writer pour un répertoire particulier dans ce cas, et c'est exactement le répertoire que nous avons spécifié ici. Je voulais juste sortir ceci parce que c'est un peu sympa. Et puis on va faire ça. Et pendant que ça arrive, en fait, on n'a pas besoin de faire quelque chose de fou ici. Écrivain, dot-dot-dot, non ? Et puis nous allons juste lui donner la chaîne adjacente réelle que nous avons ici. Parce que l'utilitaire Dacian adjacent a déjà converti notre objet ou un objet de données de lecteur en une chaîne. Nous l'avons vu dans la sortie. Et nous n'avons pas nécessairement besoin de sortir le chemin de données. Et puis pour les données de charge est en fait exactement la même juste à l'inverse. Donc nous allons avoir une chaîne, Jason, qui va être un, un point de chaîne se vide sur une chaîne vide. Et puis nous allons utiliser le lecteur de flux. Dans ce cas, le lecteur est égal à nouveau lecteur de flux. Maintenant, bien sûr, assurez-vous que c'est exactement le même endroit ici. Donc, il pourrait y avoir un certain sens ou un certain intérêt à enregistrer réellement ce chemin de données en tant que variable de chaîne à l'intérieur de votre chargeur tant que chaîne, comme je l'ai dit, où il ne le fera pas à ce stade, mais cela pourrait être une bonne idée. Et puis nous allons simplement dire Reader dot pour terminer et enregistrer cela à l'intérieur de notre chaîne JSON. Maintenant, nous avons fondamentalement exactement la même chaîne JSON. Lisez comme nous l'avons fait ici. Mais maintenant, nous avons bien sûr besoin de faire une sorte de nouvelles données de joueur pour cela. Et nous allons faire des données sur les joueurs. Les données sont égales à Jason util dot de JSON. Et puis à l'intérieur d'ici, à l'intérieur de nos crochets angulaires sont des supports inclinés. En fait, nous spécifions ce que nous voulons comme retours. Donc ça va être les données du joueur. Et puis à l'intérieur de là va aller à la chaîne réelle. Et puis ce que nous allons faire, c'est dire les données des joueurs, les jeux, les données des joueurs. Donc, ce sont les données réelles que nous avons ici. Ce serait une nouvelle instance de ceci. Et généralement ce que nous ferions est de faire une donnée, data.table P, puis data.dat AMP, puis data.txt. Et puis dernier mais pas le moindre, l'index de carte data.dat. Et puis les données réelles du joueur ont été définies à nouveau. Maintenant, nous pourrions bien sûr, aussi penser à peut-être faire une autre méthode de données de joueur de jeu où nous lui donnons réellement une autre instance de données de couche ici et le faisons comme ça. Mais en ce moment, cela suffira, bien sûr, et cela fonctionnera parfaitement bien. Donc, voyons en fait si cela fonctionnera ou non. Donc, la première chose bien sûr étant de stocker ceci et je suis juste un peu tracé autour. Faisons quelque chose comme ça. Et puis faisons comme 1990 et puis faisons comme 420. Sûr pourquoi pas ? Ensuite, nous allons cliquer sur le bouton Données sécurisé. D' accord. Donc, cela semblait avoir fonctionné. Donc 17 pour 20, 30, 45, et 1990. Et puis je regarde à l'intérieur de notre dossier de projet pour que nous ne voyons rien en ce moment. Faisons une actualisation avec le bouton droit de la souris. Et voyons, il est là, sûr db.json. Donc, double-cliquez dessus. Et il a effectivement ouvert à l'intérieur de Notepad Plus, Plus. C' est un peu malheureux. Mais vous pouvez le voir ici aussi. Chaque avant 2013, 45, 1990, et 17 est le chariot et le cou, sorte que a été sauvé. Et si nous devions arrêter cela et le redémarrer, vous verrez que si j'ai chargé les données, et comme vous pouvez le voir, tout fonctionne très bien. Et c'est aussi facile que de changer ça, non ? Bien sûr, il y a un intérêt à dire, eh bien, peut-être qu'on ne veut pas le faire comme ça. Peut-être qu'on veut le faire avec une interface ou quelque chose comme ça. Je pense que ce serait trop compliqué. Nous avons déjà une construction assez compliquée ici pour l'ensemble de l'appareil d'épargne, pour ainsi dire. Et je pense que ça ira bien. Mais oui, c'est fondamentalement les mêmes méthodes de sauvegarde et de chargement que nous appelons. Et cela enregistre simplement les données dans un fichier JSON. Maintenant, je voulais vraiment vous montrer le fichier réel comme un intérieur du projet réel. Juste une seconde. Je vais montrer dans Explorer. Donc c'est un autre dossier sur mon autre écran. Et puis je vais simplement faire glisser ça là-dedans. Laisse-moi voir. Vas-y, et voilà. Donc, c'est à quoi ressemble le fichier JSON. Donc, le formatage n'est pas le meilleur, mais en ce moment, je dirais personnellement, ne vous inquiétez pas vraiment du formatage pour l'instant. chose la plus importante est que vous pouvez toujours le lire. Si vous avez des classes plus complexes, alors bien sûr, cela deviendra plus complexe. Tu sais, si tu as des listes , ça va avoir l'air un peu différent. Et oui, mais dans l'ensemble, c'est ça. Et oui, c'est ainsi que vous pouvez charger et enregistrer des données avec un, avec des fichiers JSON essentiellement, euh, en utilisant l'util adjacent qui vient avec Unity lui-même, et ce serait tout. Donc, ce sont essentiellement les deux conférences sur la façon de sauvegarder le, disons trois conférences sur la façon de sauvegarder vos données. Je dirais certainement que le chargeur adjacent, alors qu'il est un peu plus compliqué, certainement, je dirais utiliser cela. C' est beaucoup plus robuste, c'est bien mieux. Et utiliser les préfs du joueur est correct. Mais cela conduira à seulement des maux de tête parce que les prefs de joueur ne sont vraiment pas le, pas la vraie source ou la façon de relocalisation vous devriez enregistrer des données qui est important pour le programme. Donc enregistrer les fichiers certainement être fait par Jason ou vous pourriez aussi les faire vous-même, faire votre propre sorte de chose un peu sage, mais c'est beaucoup trop avancé pour le moment. ce moment. Jason est là où il est, non ? Et ce serait tout pour cette conférence. Encore une fois, j'espère que vous l'avez trouvé utile et que vous apprendrez quelque chose de nouveau. Si quelque chose n'est pas clair, alors bien sûr, n' hésitez pas à poser une question et je serai sûr de répondre. Et oui. 89. (Unity Intermédiate) Utiliser TileSets: D' accord, continuons avec la section intermédiaire de l'unité ici pour le cours de l'unité. Et dans cette conférence, nous allons jeter un oeil à un ensemble de tuiles. Donc, les jeux de tuiles sont fondamentalement une façon de faire un paysage bidimensionnel. Et ça va être très facile. Donc, en fait, nous allons simplement créer une nouvelle scène et jeter un oeil à ce que tout cela a en magasin. Donc L9 jeux de tuiles. Nous n'avons pas besoin d'un nouveau dossier à l'intérieur d'un dossier de scripts car nous n'en avons pas besoin. Celui dont nous aurions besoin est un nouveau dossier à l'intérieur de notre dossier d'actifs. Et ce sera le dossier des tuiles, des jeux de tuiles. Et puis on va en faire un de plus dans celui-là. Donc un autre sous-dossier, et cela va être appelé juste le jeu de titre soulignement un, juste pour que nous ayons un nom à cela. Et nous allons importer la carte de tuiles PNG. C' est encore une fois l'un des atouts de Kenny. Bien sûr, numéro 1 en tant que lien, puis numéro deux en tant que ressource aussi. Changons la compression en mode filtre engourdi. Et puis pixels par unité va être 16 ainsi que de mettre le mode sprite à multiple. Et puis on va dire « Apply ». Et ce qui est très important, c'est que ce que nous voulons, c'est que nous voulons aller dans l'éditeur Sprite ici. Et nous voulons couper ceci, couper cela automatiquement. Je crois que ça devrait être bien, mais je pense en fait que par la taille de la cellule est mieux. Donc ça devrait être 16 par 16 si je ne me trompe pas, voyons 16 par 16. Et puis il a pu voir qu'ils sont toujours séparés par un pixel. Donc, ce que nous voulons, c'est que nous voulons 16 par 16, puis le décalage devrait être 11. Alors découpons ça et voyons, oh, non, c'est 64 sur 64, ce n'est pas juste. Retournez ce retour ici. Trancher 16 par 16, décaler 11, trancher cela. Et puis le décalage est en fait le mauvais sens. Donc on veut vraiment, est-ce qu'on veut le rembourrage ici ? C' est une façon très bizarre de dire ça. Ok, donc je suppose que c'est un rembourrage pour l'éditeur Sprite. En fait, je pensais que le rembourrage serait celui des bords. Mais apparemment, ce n'est pas le cas. Donc, ils vont trancher ce 16 par 16, puis rembourrer 1 et 1. Et puis chacun d'entre eux devrait également fonctionner très bien. Chacun d'entre eux est maintenant un sprite bien séparé et nous serons en mesure de l'utiliser comme un talentueux. Maintenant, l'application ici pourrait prendre un peu de temps parce que ce sont 485 sprites différents. Comme vous pouvez le voir, c'est une sorte de paysage urbain ici avec quelques verts et une sorte de sprites de construction aussi bien. Et si c'est fait, alors allons à notre scène de tuiles ici, et voyons ce que nous pouvons faire. Donc, ce que nous pouvons faire est de cliquer avec le bouton droit sur la hiérarchie. Sur les objets 2D, nous avons la carte de tuiles. Nous allons faire un rectangle est des matières supérieures aussi hexagonales avec un haut pointu puis haut plat. Il y a aussi asymétrique puis isométrique Z2, Z0 comme y. Cela fonctionnerait aussi. Mais nous allons regarder les cartes de tuiles normales de façon rectangulaire. Si je peux faire en sorte que ça marche, ils deviennent rectangulaires. Ainsi, une grille apparaîtra à l'intérieur de votre vue de scène, ainsi que deux objets de jeu de base, un GameObject de grille avec une taille de cellule ainsi qu'un espace, un espace, puis une carte de tuiles en dessous. Et ce sont les deux choses qui apparaîtront fondamentalement qu'elles sont maintenant. Maintenant, comment pouvons-nous changer ça ? Si nous descendons ici à la palette de tuiles ouvertes, alors nous allons en fait faire apparaître une nouvelle fenêtre, c'est celle-ci. Et au lieu de là, nous n'avons actuellement aucune carte de tuiles active. Et il est dit de créer une nouvelle carte de tuiles. Et en fait, nous n'allons pas en créer un. On va prendre notre ville de Sprite et la traîner ici. Eh bien, en fait, nous devons créer une nouvelle histoire et ensuite nous allons la traîner là-dedans, bien sûr. Donc ça va être, appelons juste cette tuile, tuile ville tuile ensemble. de tuiles de ville. C'est très bien. Ils sont rectangulaires. La taille de la grille va être automatique et le mode de tri va également se passer bien. Alors créons ça. Et cela va être créé à l'intérieur d'un jeu de tuiles et un jeu de soulignement mental un. Comme vous pouvez le voir, c'est cool de le voir, de le numériser. Et maintenant on peut traîner dans une propagation, un pic. Et puis on va le faire. Nous allons enregistrer cela exactement, dans exactement le même dossier ici. Et cela va prendre un certain temps parce que cela va fondamentalement convertir chacun de ces sprites en une sorte de tuile dans ce cas. Donc, comme je l'ai dit, ça va prendre un peu de temps. Selon la vitesse de votre ordinateur, cela peut prendre un peu plus de temps ou un peu plus court. Et puis tout est important ici. Donc, si nous regardons maintenant une sorte de jeux de tuiles, jeu de tuiles, soulignons un dossier, alors vous pouvez voir qu'il y a une carte de tuiles 64. Et ici, vous pouvez vraiment voir ce que c'est sprite. Et ce sont essentiellement tous les sprites maintenant comme carte de tuiles, sorte de parties individuelles. Et vous pouvez maintenant les prendre et dessiner avec eux. Alors positionnons notre fenêtre de carte de tuiles comme ici. Et que pouvons-nous faire ? Eh bien, si nous, par exemple, sélectionnons ceci, alors vous utilisez, vous pouvez voir que c'est une sorte de sélectionner mis en surbrillance ici. Et il devrait peindre avec le pinceau. Et si je vais ici, vous pouvez voir ce que c'est ? Eh bien, je peux maintenant peindre à ça. Donc, si je maintiens maintenant le bouton gauche de la souris et je peux réellement peindre ceci. Et je peux peindre, bien les carreaux de base ici. Donc c'est plutôt cool en fait ça, ça marche juste comme ça. Et les autres boutons qui sont importants, bien sûr, il y a une sélection de la grille, donc je peux fondamentalement sélectionner quelque chose ici. Et de cette façon, je pourrais être capable de le déplacer, je crois aussi. Donc, c'est ce que nous, celui-ci supprimez la sélection exactement. Donc, je peux fondamentalement sélectionner ceci, changer, l'outil Déplacer et puis je peux déplacer cela autour. Donc c'est plutôt cool. J' ai aussi différents types de mode de peinture. Donc, il y a bien sûr, le mode de peinture unique au pinceau. Il y a aussi le, c'est le mode rempli de boîte. Donc, avec cela, je peux fondamentalement dessiner une boîte. Et cela dessinera ensuite une boîte autour d'elle. Donc, avec la tuile qui est sélectionnée, je peux également sélectionner plusieurs tuiles d'ailleurs. Donc, je pourrais, par exemple, dire ceci pour que je puisse faire glisser, et ensuite j'ai quatre tuiles qui sont sélectionnées ici. Et puis je peux donner ça comme exemple. Et puis je peux sélectionner cette tuile, prendre le tirage au sort, puis faire quelque chose comme ça. Ça marcherait. Et je peux prendre le dessus, par exemple, quelque chose comme ça, désolé, quelque chose comme ça. Assurez-vous que si plusieurs d'entre eux sont sélectionnés, vous retournez à la brosse réelle. Sinon, avec plusieurs sélectionnés. Et la boîte, ça va être un peu bizarre comme vous pouvez le voir. Ça marche toujours. Mais oui, maintenant on a fait une erreur. Oh non, je ne veux pas ça ici. Ce qu'on peut faire, c'est prendre l'outil de gomme ici et l'effacer. Maintenant, parce que nous avons deux tuiles sélectionnées, l'outil gomme est également deux tuiles épaisses ou grandes. Et si nous n'avons qu'un seul sélectionné et que la taille sera définie à un. Il y a aussi un outil de remplissage. Maintenant, cela pourrait également être utile. Peut-être que si on est genre, je, en fait, je ne veux pas que ça soit vert. En fait, je veux que ce soit une sorte de concret ou je veux que ce soit une sorte de béton que vous allez et ensuite il va remplir cela aussi. Donc, ça marche très bien. Donc c'est déjà assez cool. Maintenant. Peut-être, oh mec, bébé, ce qu'on veut, c'est qu'on veut une rue, non ? Donc on est genre, Okay, construisons une rue en fait. Voyons si on peut le faire. Donc, c'est d'ailleurs, un bouton du milieu de la souris et le bouton droit de la souris peuvent se déplacer. Et puis avec le bouton gauche de la souris, vous pouvez essentiellement sélectionner des choses. Il paraît que nous avons du reste de la rue d'asphalte ici. Et donc nous pourrions, par exemple, dire, bien, prenons cet asphalte et faisons une rue comme au milieu ici. En fait, je m'assure que nous sélectionnons aussi ceci. Faisons une rue ici au milieu. C' est plutôt cool. Et puis tout ce que nous pourrions aussi avoir une sorte de solides ou nous pouvons réellement ajouter cela aussi bien. Voilà, tu y vas. Et ensuite on pourra le faire. Et puis ajoutons tout, ouais, et maintenant nous savons tous que nous avons un minimum de participation. Nous allons également faire Control Z, bien sûr, pour le faire, ou bien sûr, nous pouvons peindre dessus ou le faire sur tous. Mettons aussi un de ceux ici. Donc c'est plutôt cool. Maintenant, on peut vraiment traverser ça. Et bien, peut-être que ce que nous avons ici est aussi un non, Peut-être que c'est que cela ne fonctionne pas tout à fait. Alors voyons. Et à propos, d'accord ? Donc, comme vous pouvez le voir, parfois c'est un peu plus difficile de le faire, mais vous pouvez voir que celui-ci est vraiment bon pour le coin qu'ils sont. Et puis vous pouvez faire un coin mis aussi ici, puis continuer avec cela. Le long. Voilà, tu y vas. Donc il y a beaucoup de choses que vous pouvez faire avec ça. Et bien sûr, c'est maintenant une sorte d'exemple actif d'un jeu de tuiles particulier. Mais vous pouvez voir qu'après un peu, cela prend aussi déjà un peu de forme. Et disons, en fait, ce que je veux vraiment, c'est que je veux vraiment une sorte de benzène, cette zone verte, mais ce n'est pas très bon, non ? Donc maintenant le banc est, eh bien, le genre Mencius assis dans l'espace. Donc ce n'est pas très gentil. Exactement. En fait, contrôlons Z pour revenir ici. Et, et la raison en est que nous utilisons actuellement cette carte de tuiles qui est juste ici. Et l'idée est que, eh bien, ce n'est tout simplement pas suffisant. Nous avons besoin de plus. Donc, ce que nous voulons, c'est que nous ne voulons pas vraiment modifier cela. Ce que nous voulons, c'est que nous voulons réellement une autre carte de tuiles qui est en dessous de cela. Donc, ce que nous pourrions faire est que nous pouvons simplement dire, ok, prenons juste cette carte de tuiles et ensuite nous allons juste contrôler un acte dupliqué et ensuite appeler l'autre, par exemple, la base. Alors maintenant et déplacez ça vers le haut. Personnellement, je préfère ça. Et puis dire un négatif, en fait déplacer vers le bas parce que. Oh, mais assurez-vous qu'il est en dessous de la grille. C'est très important. Donc celui-ci est en panne et ensuite on a peut-être quelque chose comme le milieu. Et puis nous dupliquons celui-ci à nouveau. Et puis nous avons quelque chose en haut, qui va être l'ordre un. Droit ? Et maintenant, nous avons trois couches différentes. Et maintenant, si nous regardons la carte de tuiles active, nous pouvons réellement voir que nous pouvons en choisir différentes ici. Donc, tout d'abord, d'accord, maintenant les données sur tous vont être les mêmes. Donc, faisons réellement ce qui suit. Supprimons tout ce que nous pouvons. Faites-le comme un gros. Le leader, voilà. Donc maintenant, la couche de base est supprimée. Allons à la couche supérieure. Le calque supérieur est supprimé. Et maintenant, si je devais le faire, maintenant la couche intermédiaire est supprimée. Voyons voir. Maintenant, tout est parti. Donc, je peux changer la sélection en faisant cette année, haut, milieu et base. Ou si je recommence à avoir le, voilà. Donc maintenant, la base a quelque chose dedans et aussi le changer juste ici. Donc haut, base et milieu. Et maintenant parce que nous avons mis l'ordre dans la couche, que nous avons déjà vu à l'intérieur d'amine de nombreuses occasions, surtout à l'intérieur du script. Je suis désolé, le moteur de rendu de sprite. Oui, voilà. Nous le savons bien, cela commande les sprites réels. Si je veux maintenant ajouter ce banc, comme vous pouvez le voir maintenant, il est superposé sur le dessus de la couche de base parce que nous sommes maintenant dans la couche intermédiaire. Si nous revenons à la couche de base, comme vous pouvez le voir, remplacerait cette couche de base. Mais dans la couche intermédiaire, il ne le remplace pas. Et nous pouvons simplement ajouter cette belle année de banc, peut-être deux bancs, et ensuite peut-être aussi ajouter un joli petit arbre aussi bien. Donc, nous pouvons, par exemple, prendre celui-ci et ensuite simplement ajouter un arbre ici et H3 ici par exemple. Et puis finissons ça juste pour que ça paraisse un peu plus agréable. Pour que nous l'ayons, je suis une sorte de zone verte bien ordonnée avec deux bancs et un arbre ici. Et puis là. Nous pouvons aussi avoir cela et ensuite avoir une belle petite zone ils sont aussi bien. Voilà, tu y vas. Celui-ci, celui-là. Et puis finissons avec la partie supérieure aussi bien. Et maintenant, nous avons deux domaines. Maintenant, comme vous pouvez le voir, qu'avons-nous fait ? Eh bien, nous avons fait une partie complète parce que nous avons fait tout cela dans la couche intermédiaire, qui n'est bien sûr pas tout à fait ce que nous voulions. Tout cela aurait dû entrer dans la couche de base. Donc c'est une vraie douleur, c'est qu'on ne peut pas vraiment changer ça. Malheureusement, ce que nous pouvons faire, c'est que nous pouvons fondamentalement pourquoi nous sélectionnons ceci, puis aussi maintenir Contrôle enfoncé. Donc, contrôler et puis le sélectionner fera en sorte de faire en sorte que nous puissions le peindre comme vous pouvez le voir. Ensuite, nous pouvons passer à la couche de base. Nous pouvons le peindre sur la couche de base. Et puis sur la couche intermédiaire, faudrait encore une fois le supprimer. C' est un peu ouais, ce n'est pas très bon que ça marche. Comment cela fonctionne, mais c'est malheureusement comme ça que nous allons le faire. n'y a pas de moyen réel de changer les couches qu'elles sont. Et aussi ce que je voulais mentionner, pendant que j'appelle ces couches, Unity appelle ces cartes de tuiles. langage absolument confus comme ça est, je pense que ce n'est pas un très bon langage parce que pour une raison quelconque, vous savez, c'est un jeu de tuiles. Donc, il s'agit d'un jeu de titres et puis c'est la carte de tuiles aussi. Donc ça s'appelle Telnet parce que je cite The My, voyons, sprites ici, carte de tuiles. Mais je ferais certainement référence à cela comme des couches. Donc ce sont des couches différentes que vous pouvez mettre les unes sur les autres. Carte de tuiles, je pense que ce n'est pas le bon terme là. Et oui, faisons la même chose ici aussi. Alors copions celui-ci. Et c'est en fait copier la couche de base. En fait, nous voulions copier ça. Maintenant, les grands problèmes que tous connaissent, maintenant ce que nous avons fait c'est qu'ils sont aussi les arbres là-bas. C' est donc une chose que je voulais en quelque sorte mentionner aussi. Il peut parfois arriver que vous êtes un, vous avez le mauvais calque sélectionné et ensuite vous devez refaire cela. Je recommande certainement de m'assurer que vous êtes sur la bonne couche comme ceci est l'une des choses les plus importantes si vous travaillez avec cela. Parce que sinon ça va juste conduire à beaucoup de maux de tête. Et ça peut être au début, vous savez, un peu fastidieux, un peu genre de rude. Oh non, je suis encore sur la mauvaise couche. Ça va arriver à un moment donné et c'est comme ça que ça va se passer. Alors ajoutons quelques arbres ici, peut-être un autre arbre qu'ils sont, ils vont. Et puis nous avons fini notre carte. Ce n'est pas la plus belle carte en ce moment, mais bien sûr, nous pouvons faire des choses cool avec ça. Un des exemples de cela serait, voyons. Donc, si vous téléchargez réellement ceci et que vous allez obtenir une autre carte et je vais rapidement vous le montrer aussi. Donc, c'est un peu un aperçu d'une autre carte que j'ai faite. Juste un exactement pour ça. Et cela va, et c'est aussi quelque chose que nous allons utiliser la prochaine conférence aussi. Et ça ressemble à ça. Donc c'est l'autre carte que j'ai faite qui, tu sais, c'est plutôt cool. Toutes choses considérées, vous savez, nous avons quelques personnes même si vous voitures, quelques bancs. Et puis nous en avons peut-être, nous n'avons pas vraiment top pour les bâtiments dans ce cas, mais juste à plat. Mais qui sait, peut-être que c'est une sorte de scène sonore. Mais oui, c'est l'un des exemples que j'ai aussi fait qui est disponible en téléchargement, que nous allons également utiliser dans la prochaine conférence aussi. Donc, oui, ce serait tout pour cette conférence en ce moment, euh, avec les jeux de tuiles, il n'y a vraiment pas. C' est juste votre créativité, c'est essentiellement ce qui vous empêche de faire quoi que ce soit. Aux outils, il y a vraiment utile, vraiment génial, et peut être utilisé pour toutes sortes d'autres choses. Et oui, c'est, c'est essentiellement pour cette conférence pour le moment. J' espère que vous avez trouvé cela utile et que vous apprendrez quelque chose de nouveau. Des cartes de tuiles, un grand jeu d'outils Sue et des cartes d'essai, un excellent outil pour créer vos propres niveaux. Recevez toutes les questions, restez, alors bien sûr, n'hésitez pas à poser et je serai sûr de répondre. Et oui. 90. Les bases de l'animation de animations de l'unité (Intermédiaire) et de: D' accord, continuons la section intermédiaire de l'unité ici pour le cours de l'unité. Et dans cette conférence, nous allons jeter un coup d' œil sur les animations et comment faire des animations. Donc, d'abord les choses, avec notre nouvelle carte que vous pouvez bien sûr obtenir pour la ressource. Surtout dans cette conférence. Il devrait y avoir une ressource pour le paquet où se trouve juste le nouveau jeu de tuiles. Et aussi bien sûr, la tuile se fixe et ensuite les sprites qui lui sont associés. Si vous voulez cela, vous n'avez pas nécessairement besoin de l'avoir. Vos propres tuiles qui fonctionneraient aussi bien. Ou votre ancienne carte de tuiles, peut-être même celle que nous utilisons avant. C' est juste une sorte de spectacle visuel quand on regarde nos animations maintenant. Donc, nous dupliquons cette carte de titre et faisons 10 animations. Donc, nous allons renommer cela en L dix animations et aussi commencer ça. Et puis nous allons importer un nouveau sprite. Bien sûr, cela est également disponible. Ce sera le brillant aventureux. Donc c'est là. Et tout d'abord, cela devra être un peu changé. Nous aurons besoin de fait pas trop, je pense que seul point et puis pas de compression ici. Et puis bien sûr multiple parce que ceux-ci sont multiples à nouveau. Ensuite, allons dans l'éditeur Sprite. Laisse-moi juste prendre vite ça ici, ils vont. Et la taille de ceux-ci est de 80 sur 110. Et puis découpons ceci et comme vous pouvez le voir, s'intègre parfaitement là. Et puis nous avons la taille pour chacun d'entre eux. Et ce que nous allons faire, c'est que nous allons essentiellement faire une petite animation de marche ainsi qu'une animation inactive. Donc ça ne va pas être trop fou. Cependant, ils seront semi-fonctionnels au moins disons, et ensuite nous allons voir ce que cela implique. Alors appliquons ceci. Donc, une fois de plus, nous avons l'aventurier et tous les sprites multiples particuliers en dessous. Et puis nous avons réellement besoin de fenêtres spécifiques. On a besoin de l'animation ici, Fenêtre d'animation. Et cela s'ouvre sur un autre écran. Nous pouvons simplement le mettre ici. Et puis nous avons aussi besoin d'animation et de la fenêtre de l'animateur. Et j'ai aussi personnellement mis ceci ici de sorte que j'ai essentiellement l'animateur et la fenêtre d'animation juste là où se trouve la console. Et la première chose que nous pouvons faire est fondamentalement, eh bien, nous pouvons sélectionner une autre photo ici. Mettons-la en place pour que nous puissions réellement voir quelle image c'est. Et l'animation va fondamentalement basculer entre 02 ici. Ce n'est pas la meilleure animation inactive pour cette chose particulière. Ce que je pense que, ça, ça marche bien et j'aime particulièrement le regard fou de ce visage. Donc, en fait, c'est assez drôle. Donc, ce que vous pouvez faire est ce que nous avons appris, c'est que vous prenez juste une photo là-dedans, donc un sprite, alors il crée juste un objet de jeu. Cependant, si nous le faisons aussi, donc nous sélectionnons deux sprites ici. Par exemple, Bye. En sélectionnant l'un d'eux, puis en appuyant sur Contrôle, puis l'autre, nous pouvons sélectionner deux différents. Et si je tire celui-ci dans la vue de la scène, alors comme vous pouvez le voir, une nouvelle fenêtre s'ouvre ici. Il dit créer une nouvelle animation parce que dans ce cas, il veut réellement que nous créions une nouvelle animation. Et c'est ce que nous allons faire dans notre dossier d'animations. Nous allons appeler ça le joueur ou appelons ça l'adventitie, l'aventure brute. Aventure au ralenti ventral. Parce que c'est l'animation inactive. Et gardons ça. Et maintenant tout un tas de choses ont été faites pour nous. Donc, si nous allons dans notre dossier animations, vous pouvez voir que le soulignement d'aventure 0, un contrôleur d'animation a été créé ainsi que le clip d'animation inactif aventurier. Et le clip d'animation est ce qui est très intéressant pour nous et ce que nous pourrons voir dans l'animateur, par exemple, si nous sélectionnons notre aventure ici est un, oui, Eh bien, une sorte de résumé de nos animations que nous avons. Et chacune de ces boîtes en gros. Donc il y a des boîtes spéciales différentes, l'entrée, c'est une sorte d'endroit où elle entre toujours. Il y a n'importe quel état, donc n'importe quel état que l'animation et l'animation réelles peuvent prendre. Et puis il y a aussi une note supplémentaire. Et l'idée est que ce que nous voulons définir dans cet animateur est fondamentalement les transitions entre les différents états. Ainsi, vous pouvez, par exemple, imaginer cela. Si je reste immobile en ce moment. Donc, en ce moment, il est immobile. Et puis on joue l'animation, non ? Et puis il, je ne sais pas, se déplace de gauche à droite et à gauche, à droite. Et puis de cette nation insulaire, peut-être que je peux sauter ou je peux marcher. Et puis, nous pouvons dire fondamentalement, ok, nous avons une animation inactive, nous avons une animation de marche, et peut-être même une animation de saut. Et puis nous voulons définir différentes transitions comme ceci, droit, clic droit, puis faire une transition là. On ne va pas faire ça maintenant parce qu'on va faire la deuxième animation dans un peu de temps. Mais tous ces noeuds, donc chacun de ces noeuds, chacune de ces animations a fondamentalement une chronologie, vous êtes connecté avec elle. Donc, si je devais cliquer sur l'idole d'aventure ici, alors vous voyez à l'intérieur de la fenêtre d'animation, nous avons maintenant cette ligne de temps. Et cette chronologie change actuellement. Une seule chose. Peut-être que vous avez travaillé avec Premiere Pro ou un autre programme de montage vidéo ou peut-être que vous en avez vu des photos. C' est essentiellement là que nous pouvons définir des images clés. Et l'idée est que nous pouvons en quelque sorte ajouter des choses à cette animation qui nous permet de changer fondamentalement certaines choses. Donc, si je sélectionne à nouveau notre romance aventure, alors vous pouvez voir que j'ai ce clip d'aventure inactif maintenant sélectionné. Et actuellement ce qui change, c'est le sprite. Donc, comme vous pouvez le voir en ce moment 000, le sprite est ceci. Et puis si je bouge cela le long, alors le sprite change à cela à la seconde suivante. Maintenant, si je jouais ça, alors comme vous pouvez le voir, c'est comme ça que la nation insulaire regarderait est bien sûr, beaucoup trop rapide, non ? Parce que ce n'est que deux images de long. Et ce ne serait pas trop bon. Donc, nous pouvons zoomer avec juste une souris défilant vers le bas. Et nous pouvons regarder ici avec le bouton central de la souris et ensuite nous pouvons prendre une de ces images clés. Ainsi, par exemple, celui-ci, le second. Image ici. Et nous pouvons le faire glisser pour être, par exemple, quelque chose comme, eh bien, disons cinq images. Donc si je jouais ce clip maintenant comme vous pouvez le voir, maintenant, il prendrait et resterait pour environ une image. Mais ça, bien sûr, n'est pas tout à fait ce que je veux, n'est-ce pas ? Parce que maintenant ce particulier n' est montré que pour environ un cadre, puis il retourne à l'autre. Ce n'est peut-être pas ce que nous voulons. Ce que nous voulons, c'est peut-être qu'il reste comme ça un peu, plus longtemps. Et bien, comment pouvons-nous y parvenir ? Eh bien, peut-être par exemple, nous prenons ceci et ensuite nous pouvons, au fait, copier quelque chose, donc Control C. Et puis si je vais par exemple ici, je peux mettre le contrôle V et le coller dans. Et maintenant, en théorie, disons que je le mets ici. Donc maintenant, il resterait là pour un certain nombre de cadres. Donc ce serait six autres images, je suppose. Et regardons ça maintenant. Maintenant, ça ressemblerait à ça. Et c'est plus comme une animation de l'île. Maintenant, ce n'est pas la meilleure animation inactive. Comme je l'ai dit, c'est un peu bizarre, mais ça suffira pour l'instant pour que nous ayons quelque chose du tout. Donc c'est une bonne chose. Maintenant, vous pouvez, bien sûr, faire de cette façon, beaucoup plus vite ou plus lentement comme ça. Vous pourriez faire ça un peu plus ou moins en fonction de ce que vous voudriez faire, n'est-ce pas ? Nous pourrions traîner cette année ou rendre cela un peu plus lent ou plus rapide. Il y a, bien sûr, à vous de nouveau, que je fournisse juste les outils. Ce que tu fais avec eux est en quelque sorte à toi de décider. Mais ce que nous pouvons faire maintenant est aussi dans d'autres propriétés. Donc, si je le mets sur les autres propriétés, vous pouvez voir que fondamentalement il y en a, je pense que tous, ou au moins certains composants sont disponibles ici pour que je change. Comme vous pouvez le voir, fondamentalement tout ce que je peux changer à l'intérieur du rendu sprite. Et puis je pourrais aussi, en théorie, changer les choses dans la transformation pour une animation. Et c'est une chose vraiment cool. Ainsi, vous pouvez modifier certaines choses en fonction du temps où une animation est jouée. Maintenant changer la transformation est parfois un peu pas trop bon. Je voulais juste le mentionner parce que ça peut avoir des effets bizarres, surtout si vous changez de position avec d'autres trucs. Donc, généralement, vous devriez faire attention à ce sujet, sauf si vous deviez avoir sorte de composant visuel d' un objet de jeu particulier être différent de la position réelle. Donc, si vous avez une sorte de, je suis un enfant et un objet de jeu parent, alors il pourrait y avoir un moyen où cela fonctionnerait. Oui, et puis jetons un coup d'oeil à l'autre. Donc, l'autre à travers l'animation de marche que je voudrais va être aussi deux différents. Ce sera neuf et dix ans, je crois. Donc neuf et dix ans, c'est l'animation de marche que je veux mettre. Et il y a plusieurs façons de le faire. Soit nous pouvons également faire glisser cela dans ou le Y ne recommanderait pas que ce que je recommanderais est simplement d'aller ici et dire Créer un nouveau clip. Et puis on va le dire à Ventura. Marchez et sauvegardez ça aussi. Et maintenant, si je sélectionne à nouveau cette aventure et l'aventure, une promenade est là, et puis je peux fondamentalement traîner sur nos sprites individuels. Je pourrais aussi dire à la propriété sprite renderer et ensuite dire sprite plus. Alors maintenant, le sprite va changer. Ensuite, je mettrai les neuf ici et ensuite les 10 aussi bien. On ne veut pas celle-là. En fait, on va le garder comme ça. Donc, en fait, je ne veux pas qu'il se lève et puis ça change à marcher. Je veux qu'ils commencent par la marche et qu'ils passent ensuite à celle-ci. Et puis changer dans la position de marche à nouveau. Donc quelque chose comme ça. Alors voyons à quoi ça ressemblerait. Eh bien, c'est, c'est déjà une animation de marche. Un peu trop vite, alors rendons ça un peu plus lent, peut-être quelque chose comme ça. Donc 15 cadres. Maintenant, ce serait probablement bien. Et cela fonctionnerait déjà assez bien. Alors gardons ça pour l'instant. Et puis nous allons en fait obtenir quelque chose d'une très vieille, une très vieille conférence ici. Et ça va être le script du mouvement. Nous allons donc aller à Scripts, Créer un nouveau dossier, animations Elton. Ça va être les scripts de mouvements, non ? Allons chercher le script de mouvement par ici. Et voyons voir. Il va juste recharger un instant et puis ils partiraient, Ouvrons ça aussi. Et ajoutons rapidement cela à notre aventurier aussi. Voilà, tu y vas. Au script de mouvement là. Laisse-moi rapidement le faire ici et ensuite on pourra jeter un coup d'oeil à ça. Donc, cela nous permet simplement de déplacer notre personnage, et maintenant nous allons en fait ajouter un autre composant ici. Donc un autre champ alors qui va être l'animateur. C' est l'Animateur. Maintenant heureusement, parce que c'est sur le même objet de jeu, nous pouvons simplement dire ce point get composant animateur. Donc, c'est vraiment facile. Et ensuite, ce que nous allons faire, c'est faire ce qui suit. Donc, quand nous sommes à l'intérieur de notre, euh, fondamentalement, méthode de déplacement. Et puis plus tard dans l'indirection, ce que je veux c'est que je veux en quelque sorte définir un composant de vitesse ainsi que je veux retourner les composants visuels. Donc, si j'écris maintenant, si je devais juste commencer ça, ce qui va se passer est ce qui suit. Ça va s'en aller. Si oui, on y va. Maintenant commencé, il va juste avoir l'animation inactive et maintenant je peux marcher, mais l'animation inactive toujours place, ce qui bien sûr, ce n'est pas tout à fait ce que je veux. La raison pour laquelle l'animation inactive joue. Si je vais à l'animateur, comme vous pouvez le voir, le point d'entrée est l'endroit où nous commençons. Et puis nous avons une transition vers l'idole d'aventure ici. Et puis rien vers l'animation de la marche. Nous ne savons pas quand nous devrions marcher animation devrait être joué. Par conséquent, nous ne faisons rien ici. Et bien, comment pouvons-nous réparer ça ? Comment pouvons-nous faire jouer certaines choses ? Eh bien, nous pouvons faire certaines choses jouées en faisant ce qui suit. Nous pouvons définir des paramètres et c'est à gauche ici. Au lieu de sélectionner des joueurs, nous pouvons sélectionner des paramètres. Et ces paramètres sont fondamentalement, eh bien, ils peuvent être de différents types. Donc float et entier, un taureau ou un déclencheur. Nous allons sélectionner un flotteur dans ce cas, et ce flotteur va être la vitesse. C' est donc la vitesse à laquelle ce personnage se déplace. Et en fonction de la vitesse, nous allons soit passer à l'animation de marche, soit nous allons revenir en arrière. Donc c'est essentiellement l'idée là-bas. Alors nous allons cliquer avec le bouton droit de la souris sur l'idole d'aventure ici et faire la transition, puis la déplacer vers l'aventure, une promenade. Et si nous cliquons maintenant sur cette petite flèche, vous pouvez voir qu'il y a quelques choses ici et nous pouvons même voir un aperçu. Donc celui-ci devrait marcher et ensuite il passe à une animation de marche. Ce n'est pas tout à fait ce que nous voulons. Nous pouvons également étendre les paramètres ici. Et c'est une sorte de, c'est une durée de transition ici. Donc, nous envisageons essentiellement une transition de l'un à l'autre. Ce que je pense personnellement, c'est que nous ne voulons pas vraiment temps supplémentaire et nous ne voulons pas non plus une transition ici. En fait, on veut juste qu'il change. Et voyons ce que celui-ci dit. C' est n'a pas de temps supplémentaire. Oui. On n'a pas encore de condition. C' est pourquoi nous recevons cet avertissement ici. On va mettre un conditionnel assez tôt. Donc pas d'heure de sortie et pas, eh bien, pas d'heure de sortie et pas de durée. Et maintenant, nous devons réellement spécifier une condition. Donc si nous n'avons pas de temps supplémentaire, alors nous devons avoir une condition. Et la condition va être la vitesse va être, je veux dire, je suppose que juste supérieure à 0,01. En fait, c'est tout ce que je veux. 0.1. Faisons 0, 0, 1, l'ego. Donc c'est tout ça, vraiment un. Donc, dès que la vitesse est plus d'un, alors je veux l'animation de l'OIT aussi, un croisement vers l'animation de marche. Et puis je peux aussi dire, eh bien, si nous sommes dans l'animation de marche, peut-être qu'à un moment donné je veux revenir à l'émission de l'île. Donc, si j'ai essentiellement arrêté de bouger, et cela se produira essentiellement si je vais ici et encore une fois, je vais dans le, Je remets le temps supplémentaire et pas de durée fixe, pas de transition pour la durée. En fait, désolé, la ration fixe est correcte, mais pas de durée de transition là-bas. Puis encore une fois, je reçois l'avertissement a, J'ai besoin d'une condition et cela va simplement être la vitesse est inférieure à 0,01. Et ce serait tout pour eux. Donc, dès que nous définissons la vitesse, alors nous pouvons essentiellement contrôler dans quelle animation notre personnage se trouve lui-même. Maintenant, cette vitesse n'a pas nécessairement à être parfaite corrélation avec notre vitesse que le joueur a réellement. Nous serons donc en mesure de régler la vitesse d'une manière particulière. Donc, si nous regardons ce qui suit, alors ce que nous pouvons faire est quand nous sommes à l'intérieur de notre méthode de déplacement. Donc ça pourrait être mis n'importe où. Mais si c'est le cas, faisons ce qui suit. En fait, faisons-le juste ça. Donc, à l'intérieur de notre animateur, au début, l'animateur dot set float. La vitesse va être de 0 f. Donc c'est aussi simple que ça va. Donc, nous avons simplement le nom de la variable réelle ainsi que quoi, partout où nous l'avons définie. Maintenant, nous définissons ceci au début, et ensuite nous définissons également ceci. Par exemple, si nous nous dirigeons dans n'importe quelle direction. Maintenant, la chose à ce sujet est que nous pourrions bien sûr, mettre cela dans la direction spécifique que nous allons. Donc on pourrait dire, Hey, on veut que ça soit quelle que soit la direction, multipliée par la vitesse. Et puis il a une vitesse négative. Nous passons dans le, à gauche, puis le positif si vous passez à droite et ainsi de suite et ainsi de suite, nous ne le ferons pas. Nous allons juste le mettre à lui-même maintenant pour que ce soit positif quand nous déménageons. Et puis, bien sûr, nous devons aussi le réinitialiser d'une manière ou d'une autre afin que cela fonctionne aussi bien. Alors que celui-ci fonctionne au début, ça ne marche pas plus tard. Donc, ce que nous voulons probablement, c'est que nous voudrions probablement que cela soit appelé à l'intérieur de la méthode de mise à jour. Et oui, pour que ça arrive. Et quand nous ne bougeons pas, cependant, où nous voulons que cela soit réglé au début ici, sorte que cela n'interfère pas avec quoi que ce soit. Maintenant, il y a plusieurs façons, bien sûr, encore une fois, où nous pourrions le faire avec. Nous pourrions, par exemple, dire, eh bien peut-être si je ne bouge pas, alors nous réglons le et réglons la vitesse à 0. Aussi comme cette vitesse pourrait également être réglée à 0, quelque chose comme ça. Mais ça va se passer. Ça va marcher. Et puis il y aura aussi vide privé flip visuel, que nous allons déjà mettre en œuvre. Donc c'est la direction ici, pas de direction. C'est ce que je veux appeler ça. Et ne mettons rien là-dedans maintenant parce que je vais vous montrer pourquoi nous aurons besoin de ça dans un instant. Mais en cela, avec cette configuration, sans le retournement, le visuel, cela devrait déjà fonctionner totalement bien. Voyons si c'est vraiment le cas. Parfois, cela peut aussi être utile parce que maintenant nous avons l'animateur et les animations dans notre script de mouvement aussi. Parfois, il pourrait être préférable de les séparer, mais ce n'est pas strictement nécessaire. Donc, en ce moment, nous sommes dans la nation insulaire. Tout fonctionne très bien. Et si je me déplace et comme vous pouvez le voir, nous sommes immédiatement passés à l'animation de marche. Maintenant, nous sommes une sorte de marche lunaire ici. Laisse-moi juste maximiser ça pour qu'on puisse voir ce qui se passe. Pour qu'on puisse marcher. Et puis si je marche à gauche que non, nous marchons sur la lune. Donc nous travaillons sur le genre de, vous savez, derrière nous, qui n'est évidemment pas tout à fait ce que nous voulons. C' est pourquoi j'ai dit que nous pouvons retourner la valeur x ici et ensuite nous retournons simplement le rendu sprite. Et c'est ce que nous allons faire avec cette méthode flip ici. Le visuel flip va simplement dire ce point obtenir le rendu sprite composant. Flip x est égal au point de direction x est inférieur à 0. Donc, le flip x est simplement un bool. Et la direction Y, eh bien, va être un ou 0. Et si c'est vrai, oui, exactement parce que le mouvement à gauche, alors c'est négatif. Donc oui, il est inférieur à 0. Par conséquent, flip x va être vrai, et sinon il va être faux. Alors maintenant, retournez la direction visuelle que vous allez. Bien sûr, pour être franc, la meilleure chose à faire ici est bien sûr aussi de dire faire ce rendu de sprite privé. Renderer Sprite vers le haut. En fait, configurez ceci ici parce que, faisons-le correctement, comment c'est censé être fait. Sinon, pourquoi même s'embêter avec elle ? Voilà, tu y vas. Sprite renderer dot flip x. et maintenant tout va bien. Donc, ne faites pas le composant get appelé ici. Comme je l'ai dit à maintes reprises. Et maintenant, il devrait retourner le visuel si nous passons à gauche. Et maintenant, nous devrions avoir une animation assez bien réalisable. Donc, l'élimination, comme je l'ai dit, n' est pas la meilleure, mais si nous passons à droite, cela fonctionne. Et si nous passons à gauche, ça marche aussi. Et puis il retourne également l'image autour. Et le grand chose à ce sujet, c'est qu'il reste aussi là. C' est donc une façon de faire ça. Maintenant, si je bouge vers le haut ou vers le bas, alors l'image réelle tournera vers la droite. Mais c'est une chose très mineure qui devrait être réparable très facilement, non ? Et oui, ce serait en fait pour l'idée des animations. Donc, il y a beaucoup plus, bien sûr, encore une fois, à faire dans les animations, n'est-ce pas ? Comme d'habitude, ce sont des regards très superficiels de beaucoup de systèmes parce qu'il a tant de systèmes à offrir. C' est vraiment dur parce que, je veux dire, chacun des systèmes pourrait probablement être son propre cours à part entière. Je veux dire, la plupart d'entre eux, je repense juste au système de particules une fois de plus. C' est donc une sorte de premier regard sur les animations. Il y a des choses incroyables qui peuvent être faites avec elle et l'outil est incroyablement puissant, comme vous l'avez vu. Il y a tellement de choses que vous pouvez changer avec l'animation ici, ainsi que l'animateur vous offre tant de choses à faire. Et la meilleure chose, comme je l'ai dit, que je peux vous laisser une fois de plus, c'est d'essayer tout ce à quoi vous allez penser. Donc, tout, laissez votre créativité courir complètement sauvage et juste essayer quelques choses et voir si vous pouvez obtenir quelque chose à travailler. Et oui, juste jouer avec. C' est toujours une excellente idée. Et ce serait en fait pour l'animation à ce stade. Comme toujours, j'espère que vous avez trouvé cela utile et que vous apprenez quelque chose de nouveau. J' apprécierais beaucoup un commentaire de votre part. Et s'ils restent des questions, bien sûr, hésitez pas à poser et je serai sûr de répondre. Et oui. 91. (Unity Intermédiate) Objets Scriptable: D' accord, continuons avec la section intermédiaire de l'unité ici pour le cours de l'unité. Et dans cette conférence, nous allons jeter un oeil aux objets scriptables. Les objets scriptables sont un type spécifique de conteneur de données. Donc, il existe un moyen de stocker des données qui est indépendant d'une classe particulière fondamentalement. Et qu'est-ce que ça veut dire ? Eh bien, nous allons jeter un oeil à ça. Et pour cela, nous allons créer une nouvelle scène. Bien sûr, ce sera L 11 objets scriptables. Voilà, tu y vas. Alors ouvrons cette scène. Et puis nous allons aussi créer un nouveau dossier de scripts. Ce sera L 11 objets capables de script. Maintenant, nous allons avoir besoin de deux scripts pour celui-ci, ça va être le script C-Sharp, la carte de jeu, la carte de jeu. Et puis un autre script C Sharp. En fait, nous allons fermer toutes ces choses. Et puis faisons un autre. Et cela va être l'objet capable de script de carte de jeu. Maintenant, vous pouvez également appeler ce clic art. Donc, je pense que l'appeler accords de lecture, objets scriptables, objets est en fait faux. Supprimons réellement cela à nouveau et faisons ces objets scriptables. Parce que c'est un meilleur nom. Les objets scriptables seraient un peu bizarres de l'avoir nommé au pluriel. Alors jouer à la carte, jouer à la carte, script, capable jusqu'à, éjecter. Voilà, tu y vas. Et ce serait bien. Alors ouvrons chacun d'entre eux. Donc, la carte de jeu et les objets scriptables. Et puis nous pouvons penser ou à nous-mêmes, eh bien, ce qui pourrait une carte à jouer moitié ? Donc, dans notre exemple, ce que nous voudrions, c'est que nous voulons une sorte de nom de carte et peut-être, vous pourriez imaginer peut-être HB et la quantité de valeur. Donc quelque chose qui ressemblerait à une sorte de carte à jouer, je n'aime pas Magic The Gathering ou Hearthstone ou quelque chose comme ça. Et la première chose que nous allons faire est que nous allons, au lieu d'hériter du comportement moteur, nous allons hériter des objets scriptables ici. Et cela nous permettra essentiellement de créer quelque chose de vraiment sympa et cool. Et la prochaine chose que nous voulons ici est au-dessus de la classe publique, nous voulons réellement les parenthèses ici et à l'intérieur, nous voulons créer le menu Asset, nom de fichier est égal aux cartes à jouer. Donc, c'est le, fondamentalement le nom du fichier que nous allons créer et puis le nom du menu va être Palais carte. On va voir ce que ça fait dans un peu de temps. Tout d'abord, réfléchissons à cela. Donc, les données que nous voulons afficher les objets scriptables de cour à avoir sont, par exemple, un nom, donc le nom de la carte. Nous voulons qu'il y ait un, un entier, par exemple, HP et une manière de carte. Donc, faisons MP, en fait appelé MPI et puis aussi peut-être changer le sprite. Donc, ce serait un sprite de carte qui pourrait également être enregistré dans une sorte d'objets scriptables. Alors tout va bien, mais qu'est-ce que ça nous donne ? Qu' est-ce que ça fait pour nous en ce moment ? Eh bien, pour l'instant, ce n'est pas le cas. Beaucoup pour nous, mais ce que nous pouvons faire maintenant, et ça va être vraiment cool. Nous pouvons cliquer avec le bouton droit sur notre dossier. Et puis nous pouvons aller dans le menu Créer. Et au sommet, vous verrez, oh, qu'est-ce que c'est ? Carte de jeu est une nouvelle chose que nous pouvons ajouter maintenant. Et cela va ajouter un objet scriptable. Comme vous pouvez le voir, il s'agit d'un jeu appelé objets scriptables. Et nous pouvons maintenant changer ça à ce que nous voulons. Donc, par exemple, nous pouvons dire, eh bien, as, as de cœur est le nom de la carte. Par exemple, vous pourriez dire, bien cela a 10 HB et 25 manière. Et puis nous pouvons aussi ajouter un sprite de carte ici. Ainsi, nous pouvons aller à nos tribunaux, par exemple, et ensuite simplement ajouter le tribunal 0 parce que c'est l'as du cœur. Et pourtant, maintenant, nous avons une nouvelle carte. Appelons donc cet as de cœur aussi. Donc, ce serait l'un des objets de données possibles que l'objet réel peut prendre. Donc, nous construisons aussi un joli lieu d' un objet avec lequel nous pouvons fondamentalement visualiser cela. Donc on va juste prendre l'accord 0 ici et on va appeler ça la carte de jeu. Et puis nous allons y ajouter une toile. Donc, nous sommes en fait, ajoutons simplement le texte Mesh Pro à elle. Et cette toile sera alors en fait dans l'espace du monde cette fois. Je sais que c'est absolument fou, bien sûr, toujours avec la caméra principale. Et nous aurons alors aussi deux situés à cela et le rendre un peu beaucoup plus petit. Alors faisons-en un 100 par 100 pour l'instant. Même avec le texte qui va être un peu plus petit. Rendons le texte un peu plus petit ici pour l'instant. Et puis réduisons la taille. Et puis on pourra comprendre ça. Donc, en fait, nous allons aussi réduire un peu cela. Faisons ce 0.5.5. Et nous commençons à arriver là où nous voulons qu'il soit, 0.5.05.05. Maintenant, on y va. Bon, maintenant le Canvas 000 est à la taille que nous voulons. Ensuite, nous pouvons mettre le texte ici. Et puis on peut le rendre encore plus grand, au moins un peu. Voilà, tu y vas. Donc ce serait bien. Je pense que si nous allons faire la taille automatique, cela n'a pas vraiment fonctionné comment je voulais qu'il texte taille automatique. Quelle est la taille minimale là-bas ? C' est probablement la raison pour laquelle ça n'a pas fonctionné. Voilà, tu y vas. Il est 18, bien sûr, faites ça 10. Alors ça va être là. Donc c'est le nom de la carte que nous voulons. Nous voulons que ce soit essentiellement sur les côtés de la carte comme ça et ensuite sera le nom de la carte. C'est très bien. En fait, ça pourrait être encore un peu plus petit. Donc ça pourrait même être, disons un huit. Puis aussi centroïde. Donc c'est un peu sympa. Et puis nous pouvons copier ceci, par exemple, ici, juste pour que nous l'ayons. Nous pouvons faire le HP et la manière de valoriser quelque chose ici et ensuite ici. Et puis bien sûr, en s'assurant que nous renommons réellement ceci, donc ce texte de nom de carte, Appelons-le comme ça. Oui, c'est le texte de l'accord et ce sont les textes AMP de la carte par exemple. Et ce serait, mettons-nous juste un, tu sais, quelque chose comme dix ici. Et un 10 ici. J' ai juste quelque chose là-dedans. Ouais, ce serait ça. Donc, bien sûr, quand nous sommes dans le jeu, les gadgets seraient désactivés. C' est ce qu'on verrait pour cette carte. Donc c'est plutôt cool. Et maintenant, fondamentalement, ce que nous allons faire est que nous allons tout d'abord attachés aux scripts d'accords de jeu réels à elle. Donc notre script que nous avons fait pas les objets scriptables, mais le comportement moral que nous n'avons pas encore changé et sera ce qu'il est. Fondamentalement, nous pouvons, nous serons en mesure de mettre des données. Ils sont tellement différents objets scriptables, l' un de ceux que nous avons déjà créés, alors nous allons juste, pour l'enfer, créer une autre carte de collègue ici. Et ça va être pour le roi des coeurs. Et le roi des cœurs. Ça va être une sorte de joli, bien sûr, tout d'abord, roi de cœur, le nom de la carte et ensuite ça va être comme 25, environ 150 manières. Et le roi des coeurs est la 12e année, donc c'est plutôt bon. Revenons donc au roi des coeurs le 12. Allons traîner ça. Et maintenant, nous avons deux exemples. Ainsi, l'as des cœurs et le roi des cœurs. Et maintenant, bien sûr, nous devons encore ajouter la fonctionnalité pour le cœur du lac lui-même, bien sûr. Et ça va ressembler à ça. La première chose que nous allons avoir est une carte de jeu privée, des objets scriptables, objet de script d'accord de jeu fait les données de la cour , bien sûr, à droite, donc ce sont les données de l'accord spécifique qui est affiché. Ajoutons simplement un champ sérialisé pour que nous puissions fondamentalement le définir avec, vous savez, dans le constructeur. Et puis nous aurons également utiliser t, en utilisant la ligne tmp. Nous allons avoir un TMP privé, txt, des textes TMP. Voilà, tu y vas. Il va y avoir le texte du nom de la carte. Et puis copions ceci. Nous avons également un, un texte HP à texte HP. Et puis faisons aussi un texte vide. Sérialisons aussi ceux juste si nous pouvons voir ce qu'ils font fondamentalement. Maintenant, ceux-ci peuvent être, bien sûr, également définis via la méthode start. Mais nous allons en fait le faire à l'intérieur du constructeur aussi. Et puis ce que nous pouvons dire est que fondamentalement sera privé vide set, mettre des cartes à fondamentalement des données de cartes. C' est une méthode que nous allons appeler. Et puis à l'intérieur de là, nous allons dire obtenir le moteur de rendu sprite composant. Et nous sommes parce que nous ne ferons cela qu'une fois dans la méthode du magasin. En fait, on n'aura pas besoin de pouvoir attraper ça, donc ça va aller. Et je vais dire un texte de nom de cordon. Le texte est, le texte est en fait égal aux données de la carte, enseigné la coordonnée point. Et puis nous allons simplement copier ceci sur les textes HP ici. Simplement égal aux données de carte dot-dot court HP et MP texte est égal à carte mp. Maintenant, c'est bien sûr toString parce que sont des valeurs entières ici et ils doivent être définis sur chaîne. Et puis nous pouvons essentiellement appeler OnStart la carte de jeu pour les données de la carte. Et nous pourrions, par exemple, avoir aussi en théorie un do, faire une méthode de mise à jour et avoir un point d'entrée. Keydown, keycode.edu pour la mise à jour, par exemple. Et puis appelez aussi cette méthode qu'ils sont. Et puis mettre à jour fondamentalement quoi pour toutes les données que nous avons mis là-dedans. Donc, cela devrait déjà fonctionner très bien. Alors voyons. Tout d'abord, nous devons bien sûr définir les textes ici, donc nom texte, HP et MP texte. Et puis donnez-lui aussi l'un de nos objets scriptables. Mettons d'abord le roi des coeurs. Alors cela devrait changer. Alors commençons la scène ou adoucissons le jeu. Comme vous pouvez le voir, roi de cœur, le roi de cœur, lumineux apparaît avec 25 HB et une manière 150. Maintenant, si nous devions changer l'as du cœur et vous réprimer, alors il sera mis à jour à notre nouvelle carte. Bien sûr, en théorie, nous pourrions faire quelque chose comme un si les données réelles changent, alors nous pourrions être en mesure de mettre à jour les visuels aussi. Mais ce n'est pas non plus tout à fait nécessaire. Et oui, et maintenant on peut juste créer de nouvelles cartes de jeu ici. Donc, par exemple, nous pouvons faire la reine des clubs si je peux trouver la reine des clubs. Donc ça va être intéressant. Donc je crois que c'était des clubs. Donc reine des clubs pour P53, je crois. Alors. Reine des clubs, où est-il là ? C'est 53. Ajoutons que là comme le sprite. Et voici la reine des clubs. Et cela aurait peut-être 65 HB et 140 MP. Donc c'est comme une carte très forte. Et ce qui est génial, que maintenant je peux simplement changer ça ici. Et dès que je démarre, les données sont chargées. Maintenant, dans ce cas, c'est un peu trop grand, mais c'est bon. Ce n'est pas un problème. C' est quelque chose que nous pouvons très facilement corriger. Donc ils le sont, une taille auto serait probablement mieux. Donc, nous pouvons fondamentalement le remplacer avec une taille automatique et dire, en fait, faisons un minimum de six et un maximum de 15, quelque chose comme ça. Et dès que nous le faisons, même alors, quand le nom réel est trop grand, cela fonctionnera toujours très bien. Donc c'est vraiment cool. C' est donc comme l'une des choses que vous pouvez faire avec des objets scriptables. Et à l'avenir, nous allons réellement voir une bonne application pour les objets scriptables où nous avons en fait plusieurs types d'ennemis avec cela. Donc, les objets scriptables vraiment agréable pour les magasins comme d'énormes quantités de données dans pour ainsi dire. Et pourtant ils le sont maintenant, nous pouvons fondamentalement avoir plusieurs de ces objets ici, stocker différents types de données. Et avec cela, ils sont fondamentalement indépendants de n'importe quelle classe. Et oui, ce serait pour la conférence sur les objets scriptables. Comme je l'ai dit, une bonne application que nous verrons quand nous ferons notre prochain match. Mais ce sera tout pour cette conférence. J' espère encore une fois que vous l'avez trouvé utile et que vous apprenez quelque chose de nouveau. S' il y a des questions, comme toujours, hésitez pas à poser et je serai devrait répondre. Et oui.