Créer un jeu en 2D facilement avec Unity (#4 : Premier ennemi)
Вставка
- Опубліковано 13 бер 2020
- Dans cet épisode 4 on ajoute un premier ennemi qui se contentera de se déplacer d'un point à un autre grâce à un système de waypoints. On en profite également pour ajouter une animation à cet ennemi.
🖼️ Tilesheet / Tilemap utilisée : opengameart.org/content/a-pla...
☕ Soutenir la chaîne ☕
➡️ sur Tipeee : www.tipeee.com/tuto-unity-fr
➡️ sur uTip : utip.io/tutounityfr
🎓 Apprendre le C# pour Unity : • Apprendre le C# - Épis...
📥 Télécharger le projet de la série : github.com/TUTOUNITYFR/creer-...
🎵 Musique d'accéléré :
Kevin MacLeod - Twisting
····················································································
Version Unity de la vidéo: Unity 2019.2 (Version personnelle)
····················································································
💻 Site internet : www.tutounity.fr
👉 Twitter : / tutounityfr
👉 Facebook : / tutounityfr
👉 Discord : www.tutounity.fr/discord
⚗️ Chaîne secondaire (ZEF LAB) : / @zeflab
📅 Planning des vidéos à venir : www.tutounity.fr/videos-a-ven...
····················································································
Merci de bien vouloir respecter les autres utilisateurs dans la section des commentaires et de signaler ou d'ignorer les commentaires irrespectueux.
····················································································
Télécharger Unity (toutes versions):
unity3d.com/get-unity/downloa...
je n'arrive plus à m'arrêter, c'est passionnant !
merci pour toute ces vidéos
Omg j'esperais tellement que t'allais le faire, ouiiiii
Et hop, encore un like +4 pour cet épisode... J'ai pris plaisir de suivre ton tuto 😋
moissi
merci! tu m'a vraiment aidé! grâce à toi je vais pouvoir commencer ma carrière !
t'en es ou maintenant dans ta carrière ?
ils sont vraiment top tes tutoriaux, bravo!!!!
Attention, il ne s'agit pas d'une list mais d'un array! Merci pour ton boulot
Amusante cette série.
Super Tuto, vivement le prochain !!!!!!!
Très bonne video j'adore continue mec
Merci d'avoir précisé l'importance des commentaires: un code lisible est avant tout un code avec des commentaires utiles ! :D
Merci beaucoup pour ton tuto. Il est super claire
géniale la série !!!❤❤
Encore bravo pour cette vidéo :)
merci grâce a toi je vais apprendre a code
Vraiment génial, merci pour ces tutos. Je trouve cela ressemblant à ce que tu fais, je m'éclate à fabriquer lave, nuages, et pleins d'idées pour la suite.
Pouvons nous simuler un courant d'air puissant comme ennemi, je pense au drapeau que l'on peut faire flotter plus vite et les nuages qui accélèrent, signe de ce courant d'air puissant que l'on ne voit pas, ha ha ha, mon personnage va avoir des soucis je crois !
trop bien tes tuto ^^
Vraiment incroyable tu me sauve
t'es vraiment le boss
Précision : quand on découpe la spriteSheet, on peut modifier les pivots (abusivement appelés anchor dans la vidéo) et les positionner au milieu en bas, ce qui simplifie le problème de position des waypoints.
Merci pour ta vidéo ! :)
Thanks, simple code for Enemy!!....
Pour info, lorsque l'on utilise la fonction flip() sur un sprite, j'ai pu constaté que seul le visuel est modifié et pas les éléments "enfants" qui y sont attachés. Cela pose problème lorsque le sprite en question n'est pas symétrique comme ici avec le serpent. En effet, dans ce cas, le weakspot associé se retrouve dans le vide (et pas sur la tête de l'ennemie) lorsque le flip est effectué. Donc ça fout le boxon au niveau de la détection 😂. Pour régler le problème, j'utilise plutôt la fonction transform.rotate(angleX,angleY,angleZ,Space relativeTo) avec dans notre cas une rotation de 180° sur y. Comme ça, c'est ciao le serpent à chaque fois hehe.
Merci juste PARFAIT.
Je vais avoir l'air débile, mais je programme depuis des années et le modulo pour boucler sur l'index d'un tableau je n'avais jamais vu et ça m'aurait tellement facilité la vie... :D
Merci pour cette série, c'est super bien expliqué :)
Je l'ai découvert après plusieurs années aussi ^^ merci à toi
@@TUTOUNITYFR Je l'avais appris à mes profs et ils m'ont dit que c'était une idée nulle parce que tu stocke des nombre trop grand au bout d'un moment :'(
Idem haha
@@Do0oN à quel moment ?
c malade
j'ai passé une demi journée en PLS avant de comprendre que j'avais mis un BoxCollider à la place d'un BoxCollider 2D
merci mec tu m'as eviter de perdre une demi journée
@@atomixx_3857 C'est une erreur classique mais je la fait toujours mdr
L’erreur d’un homme sauvera des milliers d’autre x)
Merci
slt super video, mais j'ai juste une que question dans le Scipt pour deplacer le serpent à la ligne 22 ca m'afiche une erreur mais je ne sais pas comment la corriger .
Connais-tu cette erreur et si oui peux-tu m'aider stp.
Juste comme ça, la direction d'un vecteur est définie par une droite, la flèche définie son sens (la flèche étant la petite pointe au bout), et pour un vecteur, on parle plus de norme que de magnitude.
Sinon, tes tuto sont supers et j'ai appris quelques trucs importants grâce à eux alors merci ;)
On utilise aussi l'intensité parfois, mais on a compris c'est juste une question de vocabulaire :p
Pour ceux qui veulent une astuce, pour éviter d'avoir le serpent en flip par defaut donc à l'envers et ne pas avoir le bug du moonwalk vous pouvez faire ceci :
Remplacer :
void Start()
{
target = waypoints[0];
}
Par :
void Start()
{
model.flipX = !model.flipX;
target = waypoints[0];
}
@@khergokulsing8618 Re regardes le tutoriel en entier et puis fait bien attention à la collision de delete ^^
using UnityEngine;
public class WeakSpot : MonoBehaviour
{
public GameObject objectToDestroy;
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.CompareTag("Player"))
{
Destroy(objectToDestroy);
}
}
}
voici mon script
Je veux te remercie BCP pour cette volontariat pour nous former aux jeux videos, a ce stade j'ai tout compris mais quand j'ai éteint mon PC je voulais redémarer le projet mais je trouve pas les objets Fondation et les autres pourtant j'ai bien les characters que j'ai importé et les animations et ..... ? y a t il une solution pour récupérer ça ou il faut reprendre ? Merci d'avance
L'autre possibilité pour détruire toute la hiérarchie est de faire une fonction récursive pour trouver le plus haut parent et détruire l'objet, je préfère cette approche car cela évite de stocker des variables pour rien si l'on a pas mal d'objets hiérarchisés à détruire ;)
Super tuto! Une question : comment as tu appris tout ca? Ou plutot, comment je peux apprendre tout ca? J ai suivi quelques tuto sur UA-cam, terminé 2 formations sur Udemy et je commence à être à peu près à l'aise avec la structure du code, mais je ne sais pas comment progresser. J'ai beau réussir à suivre, si je devais moi meme coder quoi que ce soit, je ne pense meme pas réussir à déplacer un personnage...
Unity et le dev en général est un éternel apprentissage. Il faut continuer de progresser en suivant des séries et surtout en essayant des choses par soi-même. Se lancer des défis. Ne pas être capable de réaliser un système de tête tout suel n'est pas un problème, malgré mon expérience je fais aussi beaucoup de recherches même sur des choses simples :)
@@TUTOUNITYFR je vois. Du coup je me suis lancé depuis qq jours sur une version 2D ultra simplifiée d’un jeu 3D que j’ai en tête, et en effet avec la motivation et en cherchant bien j’arrive à avancer
Mais je me demande si je devrais pas plutôt me focus sur le fait de continuer des tuto « éducatifs » comme le tien plutôt que déjà me lancer sur un projet ?
On pourrait pas mettre un temps de 0.5 ou 1 seconde quand on touche la tête du serpent au lieu de l’écraser ?
Salut j'ai fermé la boîte à outils dans visual studio tu sais comment la rouvrir ?
Hey j'ai un petit problème on dirait que ça vient du script : quand mon ennemi se déplace au début on le voit et après un certain moment il disparait de la vision du jeu on ne le voit que dans la scène , connais tu ce problème ? Merci . Excellent Tuto au passage !
Salut, merci pour le commentaire. Vérifie bien que tes waypoints sont à 0 en position Z et pareil pour l'ennemi et le joueur, ils doivent être en Z = 0.
Bonjour je voudrais savoir si tu vas faire un tuto pour éliminer les ennemis avec une épée et ses animations
Merci c'est un bon tuto mais, est-ce que tu utilise une extension si oui la quelle
ton code marche pas à toi aussi ?
tu penses qu'on pourra mettre un systéme de lave ? sinon j'ai hate que la vidéo sorte
CACAHOUETE MAX tu peux faire un système comme ça très simplement. Tu mets un collider que tu appelle deathzone en-dessous de l’eau et tu crée en C# un OnTriggerEnter2D qui Destroy le joueur si il touche le collider
@@liamschwartz2169 faudrait cocher trigger dans l'inspecteur
Bonjour,
J'ai un petit souci au niveau de la percussion de l'ennemi j'ai bien la box qui se déplace avec le Snake mais quand je saute dessus il ne disparait pas.
J'ai essayé un petit code pour verifier la pénétration de la box avec le player j'ai juste ajouter une " public bool trigger = false" puis dans l'action du if un " trigger = true"
Et il n'y a pas de changement d'état.
Mon player s'appel bien Player et il a des box collider correcte.
J'aurais peut-être trouver la solution d'ici là mais ça peut en aider d'autre.
Merci d'avance,
J'ai trouvé, ma faute j'ai confondu Player "le nom" et Player "le Tag".
Bonjour et merci pour ces tutos très complets.
J'ai une question : est-ce que ma version unity et VS peuvent influer la programmation ? Car mon serpent fait des flipX à chaque frame, ou presque, comme s'il était sous cocaïne... Merci d'avance.
Non, l'erreur vient de ton projet
@@TUTOUNITYFR ok je vais refaire encore. Merci 🙂
Bonjour, sais tu comment faire réapparaitre le serpent quelques secondes après qu'il est mort ? Merci !
Moi ça ne marche pas quand je lance il ne bouge pas et apres 5 secondes il devient invisible
Vérifie bien que tes waypoints sont à 0 en position Z et pareil pour l'ennemi et le joueur, ils doivent être en Z = 0.
Si la détection avec votre serpent ne se fait pas/se fait même de côté:
Pour le 1er cas:
- Vérifier bien que le WeakSpot soit dans Graphics dans la hiérarchie.
- Il faut obligatoirement que l'un des 2 objets qui entre en collision ait un rigidbody
- Que le "isTrigger" soit bien coché pour le Collider2D de l'objet qui réagit à la collision (ici le WeakSpot du serpent)
Pour le 2ème cas (peu régler des problèmes du 1er cas aussi):
- L'erreur que j'avais c'était que le collider de mon serpent n'était pas bon. En fait il l'était, mais pas tout le temps.
Je m'explique: Le serpent une fois animé à 2 frames, et l'une des 2 est plus large que l'autre. Or moi j'avais préparé mon Collider2D de mon serpent avec la frame la moins large.
Autrement dit, quand mon serpent s'animait sur la frame la plus large, la zone de détection n'était du coup plus valide du tout.
Je ne sais pas s'il y a un moyen de faire en sorte que le Collider s'adapte à l'animation de l'Object, mais peut-être qu'il en parle dans les prochains tutos qu'il a fait :)
mec j'ai besoin d'aide genre quand je veut édit mon box collider 2d bah ça veux pas
bonsoir, j'ai eu un problème similaire, pour le resoudre donc changer le code en ceci :
private void OnTriggerEnter2D(Collider2D col)
{
if (col.CompareTag("Player"))
{
Destroy(objectToDestroy);
}
le WeakSpot ne suit pas la partie graphique du serpent, enfin pas exactement, une partie de la boite de collision du WeakSpot se retrouve dans le vide et donc plus exactement sur la tête du serpent ce qui pose problrème pour la précision du saut afin de le détruire lors du flip
Coucou! 1ans après je reviens pour dire que moi ça marche pas... Jai refait le code mot pour mot 2 fois mais ça me met des messages d'erreur, je comprends pas et j'aimerais beaucoup avoir de l'aide
Petit problème, dans le script à 11:35, mes variables publiques ne s'affichent pas après avoir mis le script sur mon serpent. J'ai testé toutes les méthodes que j'ai trouvé sur des forums, mais rien n'y fait... J'ai recopié le script plusieurs fois, reset, reimport... Rien n'y fait. Des suggestions ?
Pareil pour moi :/
Met ton script dans le commentaire.
Nouvel affichage de Unity.
La ligne size n'existe plus. Il y a une case vide au bout de la ligne Waypoint. On peut y renseigner le nombre d'éléments.
Salut
J'ai du augmenter assez fortement la partie gauche du Box Collider de l'ennemi pour éviter que l'ennemi soit détruit quand mon Player avance vers celui-ci.
Est-ce normal ?
j'ai le meme probleme que toi, mais si on l'augmente le player va prendre des degat de plus loin nn ?
salut, j'ai un probleme, sur mon ennemi, son anchore ( je ne sais pas si ça s'écrit comme ça ) est au milieu de lui et pas au dessus de lui comme à 12:20. Comment puis-je faire pour régler le problème. Merci !!
A droite de tes outils (déplacement, rotation, etc.) au dessus des onglets scene/game tu as un deux bouton "center ou pivot" et "Global ou local". Tu peux jouer avec ces deux boutons, l'un des deux devrait te placer l''élément au bon endroit.
@@TUTOUNITYFR merci je n'ai pas réussi avec cette technique mais avec une autre que j'ai trouvé. Ce problème doit être du que je n'ai pas le meme tilesheet que toi. En tout cas merci pour tes tutos génials qui me font avancer dans ma passion.
@@Kyobuh Salut j'ai le même problème. Quelle est ta méthode s'il te plait ?
Salut, tout d’abord merci pour ce travail, je suis au 11:40 min de ce vidéo et j'ai déjà reçu ce message apparaître dans la console "Assets/Scripts/EnnemyPatrol.cs(20,28): error CS0019: Operator `*' cannot be applied to operands of type `method group' and `float' ".
que dois je faire !!!!
NB: j'ai suivi ton code au pied de la lettre.
Kharbiche Tahar alors de 1 tu n’as pas suivi le tuto à la lettre, je te l’assure (sinon tu aurais pas d’erreur) et cherche l’erreur sur Google ça devrait t’aider
Bonjoue j'ai un souci au niveaux du déplacements en effet, alors que mes deux waypoint ne sont pas dans le mob il viennent se coller se qui a pour effet de faire avancer le mob dans le sol tout en avancent
Pour detruire l'ennemi et le déplaçait sa marche pas en plus je fais de A à Z je ne comprends pas peur tu maider SVP
AU SECOURS SVP en erreur sur mon script WeakSpot.cs il me met
L’espace de noms global namespace contient déjà une définition pour WeakSpot
Que dois je faire ?
Merci d’avance
Cela dit que vous avez soit 2 scripts du même nom, soit 2 classes du même nom. Regardez dans le "Project"(les fichiers) si vous trouvez le doublon, supprimez-le.
Bonjour merci pour ces tutos, mais j'ai un problème au niveau des attributions de la classe publics 'Transform' (pourtant j'ai bien le using UntityEngine en début de code) qui n'est simplement pas détecter par mon code, donc me met des compile error sur unity
J'ai galeré pendant une heure pour la meme erreur mais pour moi c'etait une faute de frappe sur Length apres transform
@@wayz9051 Salut ! moi la case "size" n'est pas presente alors que jai bien tout mis 'fin je crois tu aurais une solution ?
@@kemuri6128 Dès que je pourrais je te tiendrais au courant :)
yo j'aurais une question comment tu fais pour avoir directement des suggestions sur le script que tu écris ? par exemple quand t'écris Transform il y a tout de tout une suggestion en bas du texte
merci
Normalement c’est automatique, en tout cas pour ma part 🤔
@@manonlpne oui mais des fois ya des bugs par rapport aux versions utilisées, perso g changé la version de visual code editor en 1.1.3 dans l'onglet package manager pour que ça marche
Tu peux installer "Kite". J'utilises le logiciel VSCode, donc je peux le prendre comme extension... Je ne sais pas trop si cela marche comme ça sur VSCommunity, mais Kite est un système d'autocomplétion (en appuiant sur Tab, il complète automatiquement, et propose des fonctions) C'est très utile ! Surtout quand vous ne suivez pas de Tuto, on ne sait plus si la fonction est gameObject.remove(), gameObject.delete(), gameObject.destroy() (ces 3 exemples ne marche pas). Il nous le propose directement !
@@arnaudullens1406 merci !
Salut ! Tout d'abord merci pour tes vidéos de qualité, grâce à toi j'apprends vite et bien à maîtriser Unity (et d'ailleurs j'ai aussi appris pas mal de chose en tant que débutant du C#, pour être honnête je suis pas passé par tes vidéos mais par OpenClassroom, j'irais certainement voir tes tutos quand ça me tentera).
Mais j'ai un problème : j'ai suivi ta vidéo jusqu'au moment ou le serpent est censé suivre le joueur, sauf que il se déplace sur place en "tremblant". Le problème à l'air de venir de cette ligne : destPoint = (destPoint + 1) % waypoints.Length, car quand j'enlève la fin (de % à waypoints.Length), tout marche, mais qu'une seule fois vers la droite (bon ça je suppose que c'est normal étant donné que destpoint dépasse la taille de l'array waypoints).
Autre chose étonnante, quand les waypoints ont en parent l'ennemi, tout marche correctement, encore une fois juste vers la droite (forcément, les waypoints suivent alors l'ennemi, mais pourquoi il ne tremble pas?)
Je comprends pas pourquoi le serpent ne se déplace pas et tremble ? Peut être Vector3.distance qui déconne et qui switch rapidement entre les deux waypoints?
Je te remercie d'avance pour ta réponse et j'espère trouver une solution pour continuer à suivre tes tutos :P!
EDIT :ça ne vient pas non plus des collisions, j'ai supprimé la box collider et ça marche tjrs pas
Salut, le problème peut venir du fait que tu n'es pas inclus les waypoints dans Graphics, vérifie si tu as bien spécifié Size = 2 et bien placé les waypoints
Le premier j’ai eu la même mais il faut détacher waypoint du serpent
Salut j ai un problème quand je lance le jeu mon ennemi fais un tout droit sans revenir en arrière alors que j ai fais le même script
j'ai un petit problème avec l'ennemi je l'ai étudié revu des centaines de fois checké les waypoints le speed et tout mais quand je commence le jeu il ne s'arrête pas :/ il continue tout droit
Je sais pas si t'as corrigé le problème mais je vais quand même te répondre pour les autres car j'ai eu le même problème. Pour ma part il fallait mettre les WayPoint et le graphique du serpent dans le même GameObject (il le fait un peu plus loin dans la vidéo) car sinon la soustraction target.position - transform.position a pas de sens (les systèmes de coordonnées sont pas les mêmes).
@@AlexTheProMacGamer Merci ! J'étais bloqué.
Salut, j'ai une erreur que je n'arrive pas à résoudre. "'Space' does not contain a definition for 'World'". J'espère que t'aura une idée de la source du problème. En tout cas tes tutos sont très bien faits, continue comme ça.
Salut esque qlq sais pk mon ennemi s'envole a la place de se deplacer
J'ai une petite question.. Je viens de finir cet épisode et j'aimerais savoir si dans un prochain épisode tu nous montreras comment monter à une échelle
C'est prévu
j'avais la même question merci de l'avoir poser
Tu pourrai faire un tuto stp avec des arme au sol a ramassée de type épée stp merci pour les tuto
il y a pas mal d'asset gratuit pour le son sur l'asset store sa pourrai être bien d'en rajouté, même si sa se fera plus tard je suppose
Le son ça sera sans doute pour plus tard
Sur le site que tu as donner à l'épisode 2 je crois j'ai du mal à trouver par exemple une araignée a la place du serpent , ce que je trouve ont dirais que c'est très différent du style du tileset que tu as , y-a-t-'il ? un autre site pour les tileset , pareil pour l'eau ont as du mal à faire un niveau ou l'eau est profonde à cause de cela et les tileset que je trouve sont très différentes de l'eau dans ton tileset a toi , bon après j'ai bien une astuce mais j'aimerais tout de même avoir des tileset tout prêt si tu connais un autre site
Bonjour ,avant tout merci pour cette série ,mais j'ai un problème pour l'ennemi :quand je passe dans le mode jeu ,l'ennemi devient invisible .Il est toujours là car il peut pousser mon personnage mais je ne peux plus le voir .Merci d'avance ^^.
même problème :/
@@Andre69600 il faut verifier la position z des tes waypoints et la mettre a 0
Salut ça veux dire quoi que le namespace contient déjà la définition pour "le script EnnemiPatrol" ?
Psk je vois pas a quoi ça correspond et je peux pas le corrigé plz help 😶
Haaa c bon j'ai compris c'est parce que dans ta public class ta mis que 1 'n' a "EnnemiPatrol"
Petite question, mon ennemi tremble entre les deux waypoints comme si il ne savait pas où aller... J'ai recommencé deux fois et le script est bon mais toujours le même problème. Aidez-moi s'il vous plaît.
J'ai le même problème je comprends pas
pourqoui je n'ai pas de remplissage auto
quand je saute sur mon enemi il ne disparait pas on peut m'aider ?
merci d'avane
29:36, bon bah voilà ! j'ajoute un commentaire ;)
walala only devs can understand wow
mdrr
Salut J'ai un problème dans le ennemi Patrol dans le script à droite je n'ai pas waypoint où on peut écrire les chiffres alors que je fais exactement comme toi j'ai recommencé plusieurs fois j'ai fait exactement comme toi mais dans l'Inspecteur j'ai pas le Waypoint
Je pense qu'il faut mettre un 2 dans size juste en dessous de Waypoints
Es ce possible de sortir les vidéo plus tôt car depuis le congé d’école cosé par le coronavirus on a plus de temps libre et la création de jeux vidéo est un très bon moyen de passer le temps
Salut , je viens de commencer a reproduire ce qu'il y a a faire sur ces tutos et j'ai remarqué que quand j'y joue mon personnage ne peut que sauter a des moments aléatoires , quelq'un peut m'aider ?
Sinon super cette chaine j'abonne derect
Corrigé plus tard
@@TUTOUNITYFR Ok merci
Salut petit soucis au lancement, le snake se block et disparait comment régler le PB ?
target.postion - transform.position
cest un moin tas surment mit un egale comme javais fais
salut, j'ai verifie mon code plusieurs fois et j'ai la mm chose que toi mais j'ai ce message d'erreur : Assets\scripts\enemyPatrol.cs(27,53): error CS1061: 'Transform[]' does not contain a definition for 'length' and no accessible extension method 'length' accepting a first argument of type 'Transform[]' could be found (are you missing a using directive or an assembly reference?) c'est le mot length qui est bugue je crois
Je crois qu'il te faut mettre une majuscules à Length
j'ai eu à peu près le même soucis ^^
ps; n'étant pas anglophone j'ai parfois du mal à orthographié instinctivement
Level 4 complete ! 🙇♂️
Bon j'ai l'erreur "NullReferenceException: Object reference not set to an instance of an object
UnityEditor.Graphs.Edge.WakeUp () (at :0)" mais ça fonctionne donc pas évident (pour moi) de savoir d'où ça vient.
Et sinon pour être tatillon, Anchore se prononce AnKore, ça veut dire Ancre ^^
Moi aussi x/...je cherche ...
Ah beh fallait juste quitter et redémarrer Unity mdr
@@n.f672 tu as de la chance, moi ça n'y fait rien :/
Bonjour ! Très bon tuto déjà, j'apprécie beaucoup.
J'ai un petit soucis. J'ai les même Tilemap que ceux utilisés dans la vidéo, pour un niveau sensiblement identique à cette dernière. Mon code est identique. Ma touche espace fonctionne.
Le problème : le saut de mon personnage est capricieux, il ne saute que de TEMPS EN TEMPS même lorsque je martèle la touche espace, sans même respecter l'impossibilité d'un double/triple/quadruple saut !
Quelqu'un pourrait m'aider ? Je ne sais pas quoi faire, et suis bloqué à l'épisode 2 ;(
Merci d'avance !!
Il faut mettre la confition
if (Input.GetButtonDown("Jump") && isGrounded)
{
isJumping = true;
}
Dans une boucle Update au lieu d'une FixedUpdate
@@zurgleclair6779 Merci beaucoup, j'avais le même problème et ça l'a résolu.
Excellente série, par contre j'ai un souci quand je saute sur l'ennemi ça ne lui fait rien, j'ai l'impression que le Tag ne fonctionne pas.
Salut, j'ai le même problème j'ai beau refaire 40fois le script ou même recommencer à recréer le serpent dès que je lui saute dessus rien ne ce passe
Salut lorsque je créé et termine le script de "EnemyMovement" et reviens sur l'ennemie , le script ne s'applique pas et j'ai le message d'erreur suivant : "The associated script can not be loaded. Please fix any compile errors and assign a valid script". Cependant je n'ai aucune idée d'où proviens l'erreur. Aurais-tu une idée ?
Pareil
Up :
J'ai cherché sur google et j'ai trouvé ça
Assurez-vous que le nom de votre script est également EnemyMovement. Le nom de classe et le nom de fichier doivent être identiques pour que cela fonctionne.
- En gros le nom de la classe dans le fichier doit être le même que le nom du fichier par exemple si ton fichier s’appelle EnemyMovement dans ton code il doit y avoir marque vers la ligne 3 :
public class EnemyMovement : MonoBehaviour
(juste après : -Using UnityEngine; )
J'éspere que ça t'aidera a régler ton problème :D
@@ayzerone8310 Merci pour ta réponse je vais voire cela immédiatement
@@ayzerone8310 C'était exactement cela merci pour ton aide tu as réglé mon prblème ;)
@@greetyk9292 de rien ^^
Salut, super tuto, par contre j'ai un problème avec le weakSpot. Il semble que quand le serpent change de direction de déplacement le weakSpot ne se flip pas selon X, donc quand le serpent va vers la gauche, le weakSpot est bien au dessus de sa tête, mais quand le serpent va vers la droite, le weakSpot se trouve au dessus de sa queue. Est ce qu'il y aurait une façon de remédier à ça?
EDIT: j'ai trouvé la solution en farfouillant sur internet, du coup, si quelqu'un a le même problème, la solution, plutôt que d'utiliser flip, utiliser Rotate de 180° sur y le transform avec:
transform.Rotate(0,180,0);
ça à aussi l'avantage de faire aussi le rotate sur tous les éléments fils. Du coup en faisant ce rotate dans le scipt "enemyPatrol", ça fait aussi le changement sur le weakSpot
et du coup on peut aussi virer la variable graphics du enemyPatrol, ce qui allège un peu le code :)
Je comprends pas après avoir ajouté le script de l'ennemi le serpent tombe a travers le sol tout en avançant et le script du joueur pour ne pas sauter en l'air ne fonctionne plus donc je peux sauter tout le temps
Salut, tout d'abord merci pour tes vidéos de qualité mais cependant à 13:15 mon ennemi va vers la droite et ne s’arrête jamais. Une solution ? Merci d'avance pour ta réponse.
L'ennemi et les waypoints doivent tous être en position 0 sur l'axe Z.
J'ai rencontré la même erreur aussi. Le problème était que mes Waypoints étaient des enfants de mon ennemie donc ils se déplaçaient en même temps, ils n'étaient pas fixe sur le monde. Il m'a suffit de les enlever en tant qu'enfant de mon ennemie pour que tout fonctionne.
@@dimitriguitton merci beaucoup
@@dimitriguitton comment on fait pour l'enlever le fait qu'il soit l'enfant de mon ennemie svp ?
@@aquabonnac9527 Vers 12:29 tu as l'exemple de comment on fait pour le retirer
Bonjour j'ai un problème le player site un peu près une fois sur 5 quand j'appuie sur la touche espace
Corrigé plus tard dans la série.
Pourrait on avoir la sensation de toucher l'ennemi quand on l'écrase, car la sensation est vide, on le touche, il disparaît, mais sans cette sensation de le toucher , je sais pas un léger rebond par exemple, pas comme si l'on pesait 500 tonnes !
Oe il faut un temps de latence
J’ai pensé à la même chose 👍
Mais personne répond 😩🤷♂️
Salut, franchement je voulais te remercier pour cette playlist de tutos.
A 19:08, on aurait pu rendre le code un peu plus dynamique en écrivant:
if(dir.x < 0.03f) {
graphics.flipX = true;
} else if(dir.x > -0.03f) {
graphics.flipX = false;
}
au lieu de : graphics.flipX = !graphics.flipX;
Qu'en penses tu ?
Le fait de tout mettre sur une ligne permet d'écrire moins de code et de ne pas dépendre du 0.03f qui pourrait changer mais ce n'est pas faut
J'ai un problème : mon serpent se déplace très lentement au début, puis disparait après quelques secondes (mais on peut quand même le voir dans la scene) puis arrivé au deuxième waypoint il va a vitesse normale mais ne réapparait pas :/
pareil pour moi
Vérifie bien que tes waypoints sont à 0 en position Z et pareil pour l'ennemi et le joueur, ils doivent être en Z = 0.
Il y aura des replays ?
Oui tout est en replay
bonjour le script me dit qu'il y a une erreur alors que je suis sur d'avoir recopié mot pour mot et il affiche ca: Assets\script\EnnemyPatrol.cs(25,53): error CS1061: 'Transform[]' does not contain a definition for 'Lenght' and no accessible extension method 'Lenght' accepting a first argument of type 'Transform[]' could be found (are you missing a using directive or an assembly reference?)
je n'arrive pas a voir d'ou vient le probleme
Salut, tu as une faute de frappe à length selon ton message d'erreur. Tu as inversé le T et le H.
ah oui merci
Petite question, mon ennemi quand je lance le jeu il est toujours décalé en dessous du sol par rapport a la scène, c'est un peu relou :/
Lorsque tu déplace l'ennemi dans la scène il ne faut pas oublier de mettre les waypoints à la bonne hauteur comme expliqué des 13:18
j'ai un problème, je ne sais plus comment superposée mes tile sheet
lorsque je mets les waypoints en place, l'ennemi commence bien a se déplacer mais ne reviens pas sur ses pas et part vers la droite a l'infini ... j'ai pourtant fait commz dans la video :(
j'avais laisser les waypoint en enfant de l'ennemi donc ils se deplaçais avec lui et il n'arrivais jamais au waypoint 2.... :)
@@fredric7901 j'ai eu le même soucis haha
bonjour, j'ai besoin d'aide svp
j'ai créer mon personnage mais j'arrive pas a mettre le jeu en marche
de faire bouger le personnage et sauter es obstacles
a l'aide svp
faut peut être recopier les scripts..
Par contre je n’ai pas compris pourquoi une fois il utilise la méthode du transform pour déplacer quelque chose et une fois la méthode ou il ajoute une force avec un vecteur ^^
Salut j’adore cette série mais j’ai un problème, mon ennemi disparaît après quelques secondes une fois mis play , j’ai vérifier et revérifier mon script et ça ne vient pas de la . Quelqu’un peut m’aider svp cela me bloque . Merci
Vérifie bien que tes waypoints sont à 0 en position Z et pareil pour l'ennemi et le joueur, ils doivent être en Z = 0.
pour supprimer le parent perso j'ai fais transform.root.gameObject c plus simple et ca fonctionne très bien
Super vidéo ! J'ai cependant un problème au niveau du déplacement d'un waypoint à l'autre. En fait il "attire" les deux au lancement du jeu, ils viennent donc se poster exactement sur lui, et donc il glisse infiniment vers la droite puisqu'il n'atteint jamais le waypoint ciblé !
TUTO UNITY FR: "Donc si les graphismes sont actuellement _flippés_ , on va les _déflipper_ et si ils sont _déflippés_ on va les _flipper_ . 😂
Problème résolu. Étant trop con pour ce monde, j'ai recopié le code sans essayer de le comprendre : j'ai malencontreusement mis « Vector3 dir = target.position = transform.position; » ! Mais c'est bien évidemment « [...] target.position *-* transform.position; ».
Ahlala.
@@cant2280 MERCIIIIII j'étais en train de galérer sur ça T^T
@@NaoyanNekyyy Ha ha, de rien ! Je ne suis donc pas seul, tant mieux.
@@cant2280 Par contre est-ce que sur les animations du personnage tu saurais comment rajouter une animation de saut ?
@@NaoyanNekyyy Regarde comment il fait les autres animations, et adapte pour faire ça à ton saut ¯\_(ツ)_/¯
Salut j'espère que quelqu'un pourra me répondre. Donc tout marche super bien et j'ai tout suivi a la lettre mais j'ai un problème: quand mon personnage rentre en contact avec l'ennemi cela le tue directement sans lui sauter dessus. Malgré que j'ai respecté tout ce que tu dis dans la vidéo. Merci de votre aide.
Vérifie que le BoxCollider2D de ton WeakSpot est plus petit que celui de ton serpent, et que le collider de ton serpent soit un BoxCollider2D et non pas un
normal.
le collider du weakspot pour destroy l'ennemi ne fonctionne pas chez moi je ne comprend pas
finalement je navais juste pas cocher la case isTrigger voila voila
Hey! Bon tuto comme d'hab ! pas moyen d'ajouter une animation de mort au serpent? ce serai cool ! si oui dis moi le code qu'il faut mettre
déjà il faudrait les frames correspondantes.
@@stevenex5547 ui mais ca c’est pas grave au pire on met la fumée comme pour le personnage
@@stip2263 a ouais, bonne idée je vais faire ça ! : )
@@stevenex5547 content de t'avoir donné une idée :D
@@stip2263 ouais, merci : D
J ai un souci quand je lance le jeu le serpent ne s affiche pas dans la fenêtre game mais il fonctionne correctement dans la scène on peut m aider sa serait sympa et merci d'avance.
Vérifie que les positions, surtout en Z soient les mêmes que dans la vidéo. Les ennemis et leurs points doivent absolument être en Z = 0.
@@TUTOUNITYFR ok merci pour la réponse rapide et bonne continuation :). Sa fonctionne merci encore x).
@@TUTOUNITYFR a oui et c est pas pour faire le léche mais t ai la seule personne ou je regarde les pub en entier tu mérite vraiment pour le travail que tu fourni.
mon enemi ne veut pas se detruir !!!
aidez moi svp