Scriptable Objects (Unity) : Qu'est ce que c'est ? Comment les utiliser ?

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 ก.ย. 2024

ความคิดเห็น • 76

  • @cest_le_don_psiko
    @cest_le_don_psiko 4 หลายเดือนก่อน +1

    ON VEUT BEAUCOUP PLUS DE VIDEO SUR LES SCRIPTABLES OBJECT !!!!!!! MERCIIII

  • @ThePokebip
    @ThePokebip 4 ปีที่แล้ว +6

    Concept très intéressant ! Je suis en pleine réflexion quant à la création d’un jeu type Survival Sandbox en low poly dans un univers préhistorique donc avec plusieurs ennemis qui ont chacuns une zone de spawn et des statistiques différentes ainsi qu’un comportement différent, certains sont passifs d’autres agressifs et l’exemple donné en début d’explication de vidéo me semble parfaitement adapté pour cette fonctionnalité du jeu.

  • @portevent
    @portevent 3 ปีที่แล้ว +1

    Un tutoriel très clair et quelqu'un qui explique bien, c'est assez rare pour le noter. Vraiment, c'est une superbe vidéo !

  • @philflag4916
    @philflag4916 3 ปีที่แล้ว +2

    Abonnement instantané !
    J'ai beau fouiller pas mal de tuto anglais, parfois sur des éléments techniques spécifiques cela passe pas.
    Quand j'ai découvert qu'il existait une bonne gestion de l'architecture d'un projet Unity proposé par Ryan Hipple grâce aux Scriptable Objetcs, j'ai galéré a trouver une bon tuto la dessus.
    Donc merci !!
    Perso je suis sur la réalisation d'un Point&Click 2.5D donc pas sûr que sa me serve particulièrement je vais approfondir.
    Mais dans tout les cas sans organisation simple et propre de mon projet je vais pas aller bien loin.
    Y'en a un peu marre de trouver 1001 tuto Unity sans jamais aucune prise en compte de l'architecture, ou tout est mélangé n'importe comment...
    Si quelqu'un a de bonne ressources pour bien organiser les différentes briques d'un jeu ?
    Bon, sinon je vais de ce pas suivre l’intégralité de votre playlist "créer un jeu en 2D" ;-)

    • @8bitData
      @8bitData 3 ปีที่แล้ว

      Les premiers chapitres de C# Game Programming Cookbook for Unity 3D de Jeff W.Murray expliquent un modèle d'architecture de projet sous Unity, ou alors Game Programming Patterns de Robert Nystrom, je pense que c'est ce que tu recherches, facilement trouvable légalement ou autre

  • @Marneus_Calgar
    @Marneus_Calgar 2 ปีที่แล้ว

    Une solution absolument parfaite pour mon projet de création du jeu de plateau Warhammer avec la multitude de figurines présentes qui ont des caractéristiques et règles basés sur les mêmes principes

  • @Takun13
    @Takun13 4 ปีที่แล้ว +1

    Depuis le temps que j'attendais cette vidéo, c'est bien beau l'anglais mais à part les inventaires j'avais pas trop capté comment ça marchait, la je vois toutes les choses possibles et imaginable avec, bref en tout cas merci pour l'explication ^^

  • @jean-michel.houbre
    @jean-michel.houbre 4 ปีที่แล้ว +1

    Bonjour,
    excellente vidéo très claire sur un sujet qui m'a laissé perplexe quand je l'ai découvert (avec la vidéo de jeu de cartes de Brackeys d'ailleurs). Je n'ai rien appris (c'est plutôt encourageant vu le nombre de vidéos que je regarde et de docs que je lis), mais je suis entièrement d'accord avec l'intérêt des ces Scriptable Objects.
    Brackeys a annoncé l'arrêt de ses vidéos (pour faire rapide), tu as un créneau, fonce !

  • @antoineperon8983
    @antoineperon8983 3 ปีที่แล้ว +1

    Super vidéo, direct à l'essentiel et bien rythmé. Cela faisait un moment que j'entendais parler de cette feature et je me rend compte que c'est presque essentiel pour avoir un code clair et maintenable 😅

  • @sirtatane3578
    @sirtatane3578 3 ปีที่แล้ว +1

    Merci pour tous tes tutos :)
    Celui montre une fonctionnalité quasi indispensable ! :)

  • @guillaumecaucheteux3108
    @guillaumecaucheteux3108 2 ปีที่แล้ว

    Ce tuto est très clair, va droit au but et m'a bien aidé pour ma Game Jam, merci beaucoup !

  • @kiran9533
    @kiran9533 4 ปีที่แล้ว +3

    Ca a l'air trop intéressant:)

  • @HakimLermite
    @HakimLermite ปีที่แล้ว

    Une bonne chose à savoir avec les scriptables objects, c'est lorsque par exemple votre pnj monte de niveau pendant que vous êtes dans l'editor et que ses caractéristiques évoluent en fonction de son niveau et bien faites très attention à faire un script d'initialisation de pnj ou autre moyen en début de partie car en faite, toutes les modifications apportées à un scriptable object est sauvegardé lorsque vous êtes dans l'editor (dans unity). Si par exemple l'attaque de votre pnj fait que 10 degat, mais niveau 2 il fait 20 degat, le pnj monte de niveau pendant que vous faites vos tests dans l'editor, et bien quand vous allez lancer un build ou relancer une partie dans Unity, le pnj sera niveau 2 et non niveau 1. Tandis que si le pnj lvl up dans un build, si vous relancez votre build, le pnj sera bien niveau 1.

  • @VaddyLD
    @VaddyLD 3 ปีที่แล้ว

    Salut Zef, je viens ici avant de visionner l'épisode 31 du tuto "Créer un jeu en 2D facilement", et je dois dire que les Scriptable Objects sont très utiles pour plein de chose !
    C'est très puissant et semble si simple à utiliser ! Je vois déjà ce que je pourrais en faire.
    Merci pour cette vidéo, elle était vraiment très bien expliquée, les exemples parlaient d'eux-même, c'est vraiment plus rapide que de séparer chaque élément, ayant une base identique, dans plusieurs scripts séparés.
    Bien que payant, j'aurais juste au moins aimé connaître le nom des ressources utilisées lors de cette vidéo, qui ne figurent plus dans le projet.

    • @TUTOUNITYFR
      @TUTOUNITYFR  3 ปีที่แล้ว +1

      Merci pour le retour ! Les assets utilisées viennent de SyntySotre (Polygon) : syntystore.com/collections/frontpage

    • @VaddyLD
      @VaddyLD 3 ปีที่แล้ว

      @@TUTOUNITYFR Merci d'avoir pris le temps de me répondre.
      Bon courage pour la suite de tes tutos.

  • @pwisshella_inprogress
    @pwisshella_inprogress ปีที่แล้ว

    Un tuto formidable ! Clair et passionnant ! Merci beaucoup!

  • @malidevGames
    @malidevGames 4 ปีที่แล้ว +1

    Wow Très bien ! 😯

  • @el_sucre
    @el_sucre 2 ปีที่แล้ว

    Limpide. Merci beaucoup !

  • @Jimaniki
    @Jimaniki 3 ปีที่แล้ว +1

    Merci à toi

  • @brunosavate5214
    @brunosavate5214 4 ปีที่แล้ว +1

    Merci super tutoriel

  • @CNK_PRIME_YT
    @CNK_PRIME_YT 23 วันที่ผ่านมา

    Merci 🎉

  • @herrflantier3739
    @herrflantier3739 2 ปีที่แล้ว

    Tutoriel très utile! Merci!

  • @glk5323
    @glk5323 3 ปีที่แล้ว

    La description de Sauron: je suis très méchant !

  • @louischvs9395
    @louischvs9395 3 ปีที่แล้ว +1

    c'est un peu comme des class non?

  • @gauthierdemonteynard6863
    @gauthierdemonteynard6863 4 ปีที่แล้ว

    Bonjour ! Je ne suis pas encore très avancé sur Unity, même si je progresse vite grâce à tes tutos, mais dans les quelques projets que j'ai réalisé où j'avais cette problématique de réutiliser le même code pour mes "ennemis" ou autres IAs similaires, je me suis contenté de mettre les caractéristiques de dégâts, points de vie, skin, etc.. comme variables publiques en début de script, dont je renseignais les valeurs spécifiques dans mon éditeur Unity, et ça suffisait très bien. Et je n'ai pas trouvé que ta vidéo mettait vraiment en contraste cette méthode avec l'utilisation de véritables scriptable objects. J'espère avoir été assez clair, et j'espère que tu pourras un peu plus m' éclairer sur les avantage d'adopter plutôt les Scriptable Objects . Encore bravo et merci pour la qualité et la clarté de ton travail.

    • @TUTOUNITYFR
      @TUTOUNITYFR  4 ปีที่แล้ว +1

      Hello, le problème avec cette technique, bien que tout à fait fonctionnel, c'est qu'on ne sépare pas le code des données. On aura un prefab d'ennemi avec le script (moteur) renseigné mais aussi les données renseignées au même endroit. Dans le cas où l'on veut ajouter ou modifier des données il faudra également passer par la prefab à chaque fois plutôt que de tout centraliser dans un seul objet fait pour ça. Tout dépend de l'architecture que tu vas adopter, pour un grand nombre de données il est préférable de passer par les Scriptable Objects.

  • @yourcode8738
    @yourcode8738 4 ปีที่แล้ว +1

    salut les amis , svp entre unity et core lequel est mieux pour les débutants sachant que unity aussi possède aussi le visual scripting

    • @revan5535
      @revan5535 4 ปีที่แล้ว

      Le visual scripting de unity est compliqué mais perso j'ai pris en mains unity en 3 mois

  • @louploup7798
    @louploup7798 4 ปีที่แล้ว +2

    Bonjour Tuto unity fr Pouvez vous faire des tutoriels pour les débutants unity parce que vos anciennes vidéos commencent à dater ce qui rend quelques choses différentes Merci

    • @TUTOUNITYFR
      @TUTOUNITYFR  4 ปีที่แล้ว +2

      Les vidéos de la chaîne sont toutes pour les débutants. La majorité des séries peuvent encore être suivis aujourd'hui.

    • @jean-michel.houbre
      @jean-michel.houbre 4 ปีที่แล้ว

      La série en cours sur un jeu en 2D (th-cam.com/play/PLUWxWDlz8PYKnrd27LTqOxL2lr3KhEVRT.html ) par exemple.

  • @NOISCALE
    @NOISCALE 3 ปีที่แล้ว

    Parfait !! Merci !

  • @tomstan3037
    @tomstan3037 ปีที่แล้ว

    Salut ! Comment gères-tu les animations depuis ton controller? Le préfab initial que tu utilises dans ton Skeleton (le Scriptable) à un script lui aussi?
    Merci!

    • @TUTOUNITYFR
      @TUTOUNITYFR  ปีที่แล้ว

      Tu peux télécharger le projet de la vidéo en description pour voir commet c'est structuré.

  • @yodum1346
    @yodum1346 2 ปีที่แล้ว

    En fait c un peu comme les classes en python non ?

  • @woodenfences
    @woodenfences 3 ปีที่แล้ว

    Est-il possible de changer le fichier (quelqueChoseData) lors du runtime, avec un script? Autrement dit, changer le goblin en squelette? Merci pour cette excellente vidéo!

  • @alioumadanydiallo6274
    @alioumadanydiallo6274 4 ปีที่แล้ว

    Bonjour, j'ai un petit problème avec mon visual studio. On dirait que ça s'affiche pas comme chez vous (je m'excuse pour mon faible niveau en français) Quand je récopie le même texte que vous, dans visual studio, lorsque je souhaitais faire bouger mon personnage (3d) et bien, certains mots ne sont pas coloriés. Comment résoudre ce problème?

    • @TUTOUNITYFR
      @TUTOUNITYFR  4 ปีที่แล้ว

      dernière section de la vidéo : th-cam.com/video/sKUSt4YQkIk/w-d-xo.html il faut lier vs et unity

  • @theyodaben
    @theyodaben 3 ปีที่แล้ว

    Très bonne vidéo, mais je ne saisie pas l'avantage par apport un script avec des paramètres public et un code unique (qui est donc commun), que l'on va affecté a chaque "ennemie". Ensuite pour chaque ennemie en remplie les spécificités de l'ennemie (le nom , vie, attaque...) et voila un seul script. On peut aussi faire des classes avec un héritage si on peut que l'ennemie ai des spécificités commune (comme une race par exemple)....

    • @pascalgemis7506
      @pascalgemis7506 3 ปีที่แล้ว +1

      Hello,
      La vidéo aborde les bases du scriptable object. Un des avantages (qui n'est pas présenté dans la vidéo) c'est que tu peux modifier certaines des valeurs utilisée dans le scriptable object directement dans le fichier data pendant l'exécution et celles-ci sont mémorisée après l'exécution. Admettons que plutôt que de prendre la valeur vitesse dans le start de ton script pour la définir, tu utilise en permanence celle stockée dans le data, tu peux modifier celle-ci en runtime (comme tu le ferais avec une variable public). La différence, c'est que lorsque tu arrête l'exécution, la dernière valeur que tu as utilisée est mémorisée dans le data et n'est pas écrasée par sa valeur de base. Ca permet de faire facilement du calibrage de valeur sans avoir besoin de noter les valeurs testées au fur et a mesure. Tu quitte, et la dernière valeur utilisée (qui a priori est celle qui te plait) est enregistrée dans le fichier Data.
      Une applications pratiques que tu peux en avoir :
      Tu veux définir 3 niveau de Vitesse pour tes ennemi (lent, normal, rapide). Tu crée un scriptable object SpeedData qui va renfermer uniquement un float. Tu crée un fichier Data pour chacun des 3 niveaux de vitesse que tu veux avoir.
      Tu assigne ces différents SpeedData à différents objets (des animaux, des joueurs, des ennemis, des véhicule...). Plutôt que d'aller changer un par un tout tes scripts attachés aux différents objets pour changer la vitesse lorsque tu fais de l'équilibrage, tu as juste à changer la valeur dans tes 3 fichiers Data et celle-ci sera automatiquement appliquée à tout les scripts où tu utilise ces fichiers data.
      C'est un exemple parmi des milliers d'exemple que tu peux avoir sur l'utilisation des scriptable object. C'est une outil réellement puissant et il n'est abordé qu'en surface ici. A moins qu'une vidéo vienne plus tard sur cette géniale chaîne, je te conseil de faire quelques recherches par ailleurs sur le sujet. Personnellement, ça a drastiquement changé ma façon de développer.

  • @MrReallefauve
    @MrReallefauve 4 ปีที่แล้ว +1

    Salut Zef, complètement hors du sujet, que penses-tu de la décision de Brakeys ?

    • @Jimaniki
      @Jimaniki 3 ปีที่แล้ว

      Il va faire quoi concrètement du coup ?

  • @vik3111
    @vik3111 2 ปีที่แล้ว

    15:42 Tu as déjà vu Le Seigneur des Anneaux ?

  • @backslash057
    @backslash057 4 ปีที่แล้ว

    vraiment tres jolie le low poly derriere est-ce qu'il est aussi sur github? si ce n'est pas pour un jeu, stp mes le en description de la prochaine video

    • @TUTOUNITYFR
      @TUTOUNITYFR  4 ปีที่แล้ว

      C'est dit à la fin de la vidéo. C'est une asset payante elle n'est donc pas sur Github et a été remplacée par des modèles gratuits.

    • @backslash057
      @backslash057 4 ปีที่แล้ว

      @@TUTOUNITYFR j'ai pas trouvé les modeles gratuits dont tu parle sur github mais je vais refaire la scene sous blender elle me plais vraiment

  • @Jaize
    @Jaize 4 ปีที่แล้ว +1

    nice ! :) par contre il faut un bon pc pour CORE. Avec le mien c'est impossible :/

    • @yourcode8738
      @yourcode8738 4 ปีที่แล้ว

      salut selon toi entre unity et core lequel est mieux et pourquoi

    • @Abdellahelselectoprime
      @Abdellahelselectoprime 3 ปีที่แล้ว

      @@yourcode8738 feur

  • @yourcode8738
    @yourcode8738 4 ปีที่แล้ว

    je suis débutant j'utilise core ou unity

    • @afoccuc
      @afoccuc 4 ปีที่แล้ว

      ok

    • @afoccuc
      @afoccuc 4 ปีที่แล้ว

      unity pour le code et core sans le code
      si tu n'y connais absolument rien de dev je te conseille fortement Core

  • @lumine5664
    @lumine5664 4 ปีที่แล้ว +1

    Yes 3 comenter

  • @testosteroneoverdose
    @testosteroneoverdose 4 ปีที่แล้ว +6

    i came here to learn french, Merci

  • @strompy2007
    @strompy2007 4 ปีที่แล้ว +3

    Super vidéo comme dab

  • @germanondoko1013
    @germanondoko1013 ปีที่แล้ว

    Excellente vidéo. par contre, j'ai une question. Si dans votre scène, vous avez deux Skeletons GO. S'il arrive qu'un des deux soit détruit, est-ce que le fait de partager le même fichier skeleton (donc le même variable vie) ne va pas causer la mort de l'autre Skeleton.
    Je pose cette question, car j'ai fait un petit test de mon côté et c'est exactement comme ça que ça fonctionne. On dirait que ça écrit directement sur le fichier Skeleton de base.
    Ou le problème vient d'une mauvaise manipulation de ma part?

  • @oliviermalige1733
    @oliviermalige1733 4 ปีที่แล้ว +2

    Merci pour cette vidéo, qui rend bien plus concret leur utilisations ;)

  • @meriadecdekerhor2289
    @meriadecdekerhor2289 4 ปีที่แล้ว +2

    Bordel, je suis in love du concept... j'utilise l'héritage perso, mais ça restait relativement lourd à utiliser (un classe ennemy, et des classes qui en héritent).

  • @kevinadam6550
    @kevinadam6550 ปีที่แล้ว

    c'est cool que tu est une sponso

  • @Ibadez38
    @Ibadez38 3 ปีที่แล้ว

    Bonjour,
    Ce n'est pas une bonne idée de mettre la vie dans le scriptable object. Si tu infliges des dégâts à un gobelin par exemple, c'est tous les gobelins qui perdront de la vie, y compris ceux dans les autres scènes.

    • @arnaques-tuto-informatique
      @arnaques-tuto-informatique 3 ปีที่แล้ว

      bonsoir,
      effectivement, bonne remarque..mais est ce que vraiment le cas ? unity doit gerer cela non ? mais sinon, le "this" de la POO doit etre utile dans ce cas là, pour que juste l'instance du skelette qu'on frappe soit impacté non ?

  • @journal2classe533
    @journal2classe533 4 ปีที่แล้ว +1

    Est-ce que cela conviendrais aussi a un système d'inventaire?

    • @TUTOUNITYFR
      @TUTOUNITYFR  4 ปีที่แล้ว +1

      Oui, parfaitement même !

  • @omarzaghdane2002
    @omarzaghdane2002 4 ปีที่แล้ว +1

    Tu pourras faire une video sur unity mirror ?

  • @joak8207
    @joak8207 ปีที่แล้ว

    TOP ! C'est pile poil ce que je cherchais, est-il possible de combiner cette méthode avec une selection aléatoire du fichier utilisé pour la création de l'enemie ? Comment faire ?

    • @TUTOUNITYFR
      @TUTOUNITYFR  ปีที่แล้ว +1

      Tu peux créer une array contenant toutes les instances de scriptable objects et en prendre un au hasard avec Random.Range

  • @elodia_pers3206
    @elodia_pers3206 4 ปีที่แล้ว +1

    Merci !!!

  • @titouan1168
    @titouan1168 4 ปีที่แล้ว +1

    Salut tutounity
    Est ce que tu vas faire une vidéo sur unity dots?

    • @TUTOUNITYFR
      @TUTOUNITYFR  4 ปีที่แล้ว +1

      Ce n'est pas prévu dans l'immédiat mais j'aimerai pouvoir en parler l'année prochaine.

  • @midnataka
    @midnataka 2 ปีที่แล้ว

    Hello ! Tout d'abord merci pour cette énième excellente vidéo :) je suis justement en train de gérer quelques cartes sur mon petit projet, les ScriptableObject tombent donc à point, j'aurais cependant une petite question.
    Mes cartes ont plutôt pour but d'avoir des effets plutôt que des stats d'attaques, de mana et d'hp. Par exemple, la carte A permet de dévoiler telle chose chez le marchand, la carte B permet d'ajouter 2 slots d'inventaires...
    Actuellement, j'ai un script C# CardData qui extends ScriptableObject, ce script contient les informations globales comme le nom de la carte, la description etc ainsi qu'une méthode abstract Trigger
    Puis j'ai d'autres scripts C# (par exemple RevealCardData) qui extends CardData, et c'est à l'intérieur de celles-ci que j'écris ma logique dans la fonction Trigger !
    Penses-tu que c'est une bonne solution ou existe t-il une alternative ?
    Merci d'avance et encore une fois, félicitations pour ton travail.

  • @ecladesadassin4683
    @ecladesadassin4683 2 ปีที่แล้ว

    Merci beaucoup pour tout ce taff de tuto :)

  • @louiscs5943
    @louiscs5943 4 ปีที่แล้ว

    cest quoi la différence avec les classes?

    • @TUTOUNITYFR
      @TUTOUNITYFR  4 ปีที่แล้ว

      Je te recommande ce post de blog qui en dit un peu plus : www.misfitlabs.dev/posts/2018-07-30-unity-scriptableobjects-inheritance/

    • @arnaques-tuto-informatique
      @arnaques-tuto-informatique 3 ปีที่แล้ว

      bonjour, moins riche que ce qu'on peut faire avec une classe, et disons que c'est la poo de unity ...ce n'est que mon avis de ce que j'ai compris et de mes connaissances en poo.
      je suis un peu etonné, car comme c'est en c# unity, je pensais que ca coulait de source....la poo complete (heritage, polymorphisme, etc....)...ceci dit, c'est tjrs bon de savoir que ça existe et cette introduction est forte interessante ;) merci au passage à l'auteur de la vidéo.