Créer un jeu en 2D facilement avec Unity (#6 : Dégâts des ennemis)
Вставка
- Опубліковано 27 бер 2020
- Aujourd'hui on ajoute la possibilité pour nos ennemis de blesser notre joueur. On ajoute également un petit délais d'invincibilité après chaque coup reçu par notre joueur.
▶️ Tutoriel sur les coroutines : • Apprendre le C# - Épis...
☕ Soutenir la chaîne ☕
➡️ sur Tipeee : www.tipeee.com/tuto-unity-fr
➡️ sur uTip : utip.io/tutounityfr
📥 Télécharger le projet de la série : github.com/TUTOUNITYFR/creer-...
····················································································
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...
Excellente série de vidéos mec, t'es le patron continue!
Salut, bravo pour ces tutos, j'en ai essayé plusieurs, mais c'est les tiens qui fonctionnent le mieux !
Je suis en parallèle ton tuto sur le RPG (oui, il est vieux, et alors ?), on mesure la différence en quelques années ! Merci pour cette série.
Vraiment top, merci pour le tuto !
Tes tutos sont supers !
Merci beaucoup pour ces Tutos.
Super !!! Ca avance vite !!!
Si vous aviez eu l'erreur "inaccessible due to protection level" quand vous lancez le script après la minute 06:00 , c'est du au fait que le dernier paragraphe du script de votre Ennemipatrol commence par "private" car visiblement Unity ne pas pas y accéder. Il suffit de changer le "private" en "public" de ce paragraphe et normalement ça devrait marcher :))
Merci pour le conseil 👍
Hey !
Pour moi ça n'a pas marché, je cherche encore une solution
Ca peu provenir de ta fonction TakeDamage, il suffit de la passer en public @@Felix-lu2gl
@@Felix-lu2gl slt pareil je cherche aussi erreur CS1513
Mercii!@@user-ne2yl5eq6i
Je galerais avec mes animations de dégât.. Pourquoi je n'y avais jamais pensé, merci beaucoup!!
mdr il est trop intelligent ! ^^
juste bravo, j'ai enchainé les premières vidéos d'un coup. Elles passent vraiment vite, c'est du travail de pro. Franchement il y a rien a dire de mauvais. Le contenu est très bien expliqué mais c'est aussi très instructif.
Je met un pouce qui compte double (je sais pas si c'est possible) ;-)
Merci beaucoup pour ce retour !
merci pour vos vidéos elles sont géniales, si je réussis à générer de l'argent grace à vos vidéos, j'en vous donnerais une partie
J'arrivais pas à faire des dégâts à mes ennemis, maintenant je peux ! Merci pour ce tuto !!!
Nickel
Super tuto merci beaucoup pour le travail que tu accomplis
Personnellement moi je me suis amusé à rendre la diminution de la barre de vie un peu plus dynamique.
C'est-à-dire que la vie ne diminue pas d'un coup mais plutôt progressivement
Coucou, toujours aussi sympa d'arriver à un résultat au bout de 20 min de vidéo, ça fait plaisir, le jeu avance bien, félicitation pour tes vidéos.
Pour certaines erreurs ne trouvant pas ou j'ai pu faire en faire lorsque j'en ai la remarque à la lecture du jeu, je remarque qu'il faille seulement fermer Unity et Visual pour que tout rentre dans l'ordre, mais cela sans avoir d'erreur et qu'il m'en déclare, après il oublie ou n'en tient pas vraiment compte puisque je n'en ai pas vraiment. J'espère que je me fait comprendre, pas facile d'expliquer cela. Je pense que cela arrive à plusieurs personnes puisque je lis aussi les commentaires, j'espère que ces personnes liront les miens ;)
Je suis tout à fait comme toi!
Mais malheureusement je suis en retard de 2ans on dirait!
Super tuto !!! Merci :-) Comme évoqué en début de vidéo, il ne me semble pas avoir entendu la différence entre OnCollisionEnter2D et OnTriggerEnter2D...
Super vidéo comme toujours, j'ai bien pris plaisir a faire avancer mon petit jeu 2D.
Je vais essayer d'aller un peu plus loin seul avec ce que tu a expliquer précédemment pour faire une fonction de récupération de vie en ramassant des petits cœurs :p
... Vivement la suite ;)
Bon courage ! On l'abordera plus tard ce n'est pas très compliqué :)
@@TUTOUNITYFR ... j'ai réussit :p
j'ai aussi ajouter des décors ennemi ,(du feu) qui te donne des dégâts quand tu le traverse... et aussi des récompenses (Pièces) dont le total s'affiche sous la barre de vie et tout va bien :)
Sauf un petit bug, lors du ramassage parfois le compteur de pièces s'incrémente de deux unités, mais je suis contents du résultat.
Merci énormément j'ai pu faire un petit jeu vachement mignon ou j'ai tout dessiné moi même , et où il y a des la lumière animée enfin bref je me suis trop éclatée grâce a toi
J'adore cette série de tuto. J'ai suivi pas mal de tes séries sur la 3d et je les trouve également top!
Je rencontre actuellement un problème dans le développement d'un jeu:
Dans mon jeu le joueur est amené à collectionner des objets. Je veux que, si le joueur les a récupérés au cours de sa partie, ceux-ci s'affichent dans la scène d'après. Or je n'ai aucune idée de comment faire pour sauvegarder une variable( en l'occurence des booléens) d'une scène à l'autre et faire que les objets aparraissent dans la scène d'après uniquement si les booléens sont vérifiés.
Si quelqu'un sait comment faire je suis preneuse!
En attendant je continue de suivre toutes les vidéos de la chaîne, elles sont super!
Je suis là seulement parce que je suis intéressée aussi
@@chambwibwi Tu peut utiliser les PlayerPrefs; c'est un système de sauvegarde très simple pour sauvegarder des données(int float et string)
Tuto Unity FR en a fait un tuto: ua-cam.com/video/vQ3nrXOYiGU/v-deo.html
Bonjour, très bon tuto, merci.
Juste que je me demande s'il ne serait pas plus simple, efficace, sécurisé et optimisé, d'utiliser un système d'"event" pour les dégâts puisqu'on aura d'autres ennemies d'un côté et des regains de vie d'un autre ?
M. D.
Hey, déjà, merci énormément pour cette série, elle m'est vraiment utile !
Et j'ai une question assez bête: Est-ce qu'en apprenant énormément pendant plusieurs années, c'est possible d'arriver à un résultat genre Unravel ou Ori and the Blind Forest (ou Will of the Wisps) ?
(Je ne parle pas au niveau des graphismes, mais au niveau du gameplay).
Merci !
Maxent_ bien sûr!!
Même après quelques mois si tu try hard unity pendant le confinement.
@@liamschwartz2169 D'accord, merci ^^
On peut arriver à tout faire si on y met beaucoup de volonté. Donc vasy, fonce. Sort nous le prochains jeu next gen ! Xd
@@AlexanderMATHIEU tkt Ubisoft et Xbox sont chauds 😂😂
s'il te plait, quand je lance le jeu en mode game, je vois toujours les contours en blanc de canevas, quand je le désactive je ne le vois plus mais la HealthBar non plus.. peux-tu m'aider?
Salut ! J’ai une petite question, quand j’avance vers l’ennemi et lui vers moi je prends les dégâts puis je suis invincible donc tout est normal, mais quand mon invincibilité se termine, si je ne me suis pas éloigné du monstre, je ne reprends pas de dégâts. Est-ce que c’est normal et est-ce qu’on peut le désactiver ? En tout cas merci pour le tuto il est super !
Je te remercie tu a pas un grand public mes gras a toi je comprends le système je te remercie ce se voir que tu fait pas ça pour la youtube monet
UA-cam Monet? Le fameux peintre :p
J'aimerais savoir si tu pense faire un épisode un peu plus basé sur les mécaniques par exemple l'échelle ou un affichage avec des panneaux
Pouvoir interagir avec le décor
C'est prévu
Salut ! Super tutos !
Juste au cas où, j'imagine que tu le sais mais toute fonction ou variable définie dans une class est automatiquement private par défaut.
Donc au lieu d'écrire : private void Foo() {...}
Tu peux juste écrire : void Foo() {...}
Je dis ça car beaucoup de devs ne le mettent pas notamment parce que ça permet de gagner en lisibilité et savoir plus facilement ce qui est public ou pas.
Aussi, c'est peut être un peu avancé, mais pas mal de component auraient pu être récupérés directement par le code vu que le code est directement attaché à l'objet qui a les components.
Et d'autres fonctionnalités peuvent être accédées par les singeltons ce qui évite de faire tout un tat de :
public GameObject ...; ou public Transform ...; pour récupérer les valeurs ou méthodes des autres scripts !
Après je dis ça mais si ça se trouve tu as déjà fait ça dans les épisodes à venir et j'aurais l'air bien bête :D
Merci pour ton travail en tout cas ! C'est un super tuto.
super le tuto mais , au lieu de recréer une coroutine pour désactiver isInvicible t'aurais pas juste pu mettre isInvicible = false; après la première coroutine que tu copie colle ?
j'ai une question,, pourquoi lorsqu'on est dans la boucle while pour l'invincibilité , est ne boucle pas a l'infini puisque on peut pas la quitter sans avoir mis le bool sur false
qq aurait un conseil, j'ai fais comme toi mais moi quand je me rapproche de ennemi, je ne perd pas de vie mais il le detruit, on dirait que le Collider du weakSpot et Graphics sont les meme mais j'arrive pas a regler le truc ?
love you
Super la vidéo
Serait-il possible d'avancer la date de sortie de l'épisode 7 car on a plus de temps à consacrer à Unity à cause du confinement ?
Bonjour ! Pourquoi coder les dégâts dans le script du snake et pas dans celui du Player en se servant d'un tag pr le mob ? Est-ce équivalent ?
Salut! Je rencontre un problème dans le contact avec l'ennemi : en gros quand je le touche je deviens invincible, mais si je reste en contact avec l'ennemi pendant les 3s d'invincibilité, alors quand je redeviens "normal" le choc n'est plus détecté malgré le fait que je sois TOUJOURS en contact avec l'ennemi après tout ce temps. Avez vous ce problème aussi ? Est-ce réglable avec le code utilisé ?
Bonjour à tous, j'ai un problème à propos du tuto #6 dégâts des ennemis, dans la partis PlayerMovements.cs après avoir créer void Update et déplacer une partis du contenu de FixedUpdate, mon personnage (player) ce déplace beaucoup plus lentement malgré la moveSpeed à 250,je suis obliger de mettre 1000 pour qu'il ce déplace normalement (alors que précédemment cela fonctionnait bien sauf le saut qui était mal géré) Merci de vos solutions
Petite question, est-ce que ce script peut être utilisé pour faire de la 3D ?
Il est à adapter mais le principe est le même oui
@@TUTOUNITYFR
Super merci beaucoup ^^
Ça sera génial
Yo moi j'ai un souci mon perso prend des dégats mais fait pas l'annimation puis en plus l'ennemis est mort alors que j'ai pas touché sa tête
tu as oublié de nous expliquer la différence entre "OnTrigerEnter2D" et "OnCollisionEnter2D" , je l'attend toujours XD
OnTrigger c'est quand un élément RENTRE dans un autre, OnCollision c'est lu quand deux objets se touchent.
@@TUTOUNITYFR ah d'accord merci
Bonjour, j'ai un problème au tout début de la vidéo, je n'ai pas d'erreur mais quand je rentre en contact avec un ennemi ma barre de vie ne diminue pas, je ne comprends pas pourquoi. Si quelqu'un à le même problème ou sait le règler hesitez pas. Merci
j ai le meme probleme ! t as trouvé la solution ?
@@berbouchee1234 même problème pour moi !
Pareille toujours pas de solution :/
Hello ! j'ai commenté la ligne "AudioManager.instance.PlayClipAt(hitSound, transform.position);" et je perds bien de la vie
je sais pas trop pourquoi, j'ai pas creusé :)
Il voit si la fonction OnCollisionEnter2D(Collision2D collision)
est bien écrite comme ça chez toi!
Salut, bon le souci du soir c'est que tout fonctionnait bien et puis d'un coup sur la fin "Assets\Script\PlayerHealth.cs(4,14): error CS0101: The namespace '' already contains a definition for 'PlayerHealth' "
Je vois pas d'où ça peut venir :(
1ere fois que je m'arrête sur un echec :(
Ah bha j'ai fini par trouver, pour une raison que j'explique pas trop, quand j'ai déplacé le script PlayerHealth en fait ça l'avait copié ^^
Level 6 Complete ! Merci
16:39 mais pourquoi on n'utilise pas juste sleep(duration) ?
Merci pour cette série, mais j'ai un problème, la collision ne fait pas des dégâts au player alors que lorsque je presse "H" on a des dégats, que dois-je faire ?
Pareil, je ne sais pas pourquoi.
Enfaite j'ai compris tu vas sur ennemi puis sur graphics puis sur ennemi patrol (script) et il y a damage colision et tu mais le nombre de dégats que tu veux infliger à ton perso(j'espère que je t'es aidé...)
@@romandelucia4729 Merci j'avais le même problème et c'était sa la solution.
@@romandelucia4729 Merci d'avoir trouvé LA solution !
@@VaddyLD j'arrive un peu tard mais ça m'a aidé merci ! :D
J'ai un probleme lorsque j'ecrit HandleInvincibilityDelay ca me dit : CS0501 C# must declare a body because it is not marked abstract, extern, or partial
salut, deso je viens seulement mtn, c'est pas handleinvicibilitydelay mais : WandleInvicibilityDelay
J'ai un probleme : quand je sauvgarde mon script quelque comande ne sauvgarde pas
Salut, que se passe t'il si 2 ennemies nous touchent à la même frame? On prend 2 fois les dégats ? si oui existe comment faire pour éviter celà ? merci.
C'est très rare, pour ne pas dire quasi impossible. Je ne crois pas qu'on puisse éviter ça
Bonjour, j'ai un problème mon personnage ne prend pas de dégât.
Salut, j'ai fait a la lettre le tutoriel pour les dégâts des monstres, et aucun moyen que cela fonctionne. Qui pourrai m'aider ?
Je sais que ça fait un an mais pour ma part j'ai du désactiver le paramètre Is Trigger de ma Box Collider 2D du Graphics.
dans invicibility flash il me dit not all code path return value
Il faut que tu termine le script
pour moi, pourquoi il ne s'afiche pas le ''cadre" du canvas lorsque je le cree et c est la meme chose pour l image (juste en mode scene)
c est pour la barre de vie
J'ai problème
J'ai mis le using.colections vérifiée lettre par lettre mais n'arrive pas à utiliser les couroutines la console me renvoie une erreur
C'est : using System.Collections;
J'ai un probleme le IsInvicible ne marche pas quelqu'un peu m'aider ?
est ce que le "NullReferenceException: Object reference not set to an instance" Unity est grave ?
J'ai le même problème que toi et j'aimerais bien savoir aussi :)
Par contre après avoir sauvegardé et redémarrer l'applis l'erreur a disparue, j'espère que tu a toi aussi trouver d'où venait ton problème :)
@@kisorito3238 moi aussi j'ai redémarrer pleins de fois mais aucun effet :/ après c'est une erreur dans player health alors que j'ai tout bien re-recopier. j'ai fait un test en faisant un build et s ana rien changer alors je ne fait plus attention a sa :)
Pour essayer, j'ai fait currentHealth = currentHealth - damage; dans la variable TakeDamage et Unity a considéré que le chemin d'accès était protégé. J'ai repris la même écriture que Tuto et là, aucun soucis. Une idée du pourquoi ? :/
Ta fonction était sans doute en privée, si tu ne met pas public devant le mot clé function elle est en privée et ne peut être appelée depuis un autre script. Pareil pour les variables.
@@TUTOUNITYFR je pensais que c'était ça mais il s'avère que le soucis est resté, que ce soit public ou private 😶
@@DoZruser t'a reussi?
@@canard542 je rencontre actuellement le meme problème
@@matteo7125 va a la fonction current health et met public devant
Quand je coche la case "IsInvincible" je ne peux plus bouger !
Bonjour j'ai un problème à 5:28 je recopie le script et sauvegarde et voici se que unity me dit : Assets\Script\EnneniPatrol.cs(45,26): error CS1061: 'PlayerHealth' does not contain a definition for 'TakeDamage' and no accessible extension method 'TakeDamage' accepting a first argument of type 'PlayerHealth' could be found (are you missing a using directive or an assembly reference?) . Je cherche l'erreur mais je ne la trouve pas pouvez-vous m'aider ??
Va dans le script PlayerHealth et rajoute public devant '' void TakeDamage(int damage) ''
@@canard542 merci bro
je comprend pas, quand je rentre en contact avec l ennemi il meurt instantanément sans que mon Player ne prenne de degat... j ai vérifié la hitbox de ma weakzone elle est bien plus petite... je vois ou j ai foiré. quelqu'un a eu ce soucis ?
J’ai eu le même problème et j’ai rendu ma wekzone moins large et tout fonctionne comme il faut
J'ai eu le même problème. C'était juste qu'il fallait écrire OnCollisionEnter2D avec une majuscule... 40 min pour ça !
Salut je comprend pas un truc j ai recopié à la lettre ton tuto mais mon joueur ne prend pas de dommage quand il touche le serpent je n ai pas d erreur et j ai bien marquer onCollison2d je comprend pas pourquoi ça ne marche pas
Problème reglé j avais juste oublié une majuscule sur le tag Player
Merci j’ai eu le même problème et j’avais la même erreur
5:31 j'ai deux problèmes voilà les messages.
L'appel est ambigu entre les méthodes ou propriétés suivantes : 'PlayerHealth.TakeDamage(int)' et 'PlayerHealth.TakeDamage(int)'
Le type 'PlayerHealth' définit déjà un membre appelé 'TakeDamage' avec les même types de paramètres
Moi aussi
Comment ta fait en fin de compte ?
@@nbdy-uh5fe j'ai recommencer
c'est souvent du a ton nom de ficher. Ca me la fait un moment j'ai modifier le nom et paf, ça fonctionne
On aurait pu faire l'invicibliter dans l'animator avec un sprite vide nan ?
J'ai fait exactement les mêmes script quand vidéo et je ne prend pas de dégat et aucun message d'erreur ne s'affiche
J'ai eu même problème ! Je suis bien rester 30 minutes a chercher pour final découvrir que j'avais écris : "onCollisionEnter2D" a la place de "OnCollisionEnter2D" Et ettonement, aucune erreur lors de la compilation ! Ducoup je te conseil de vérifier les Majuscule et toutes les potentielle fautes de frappe si ça peut t'aider :)
J'ai eu le même problème mais enfaite j'ai mis la fonction dans la fonction Update et ça ne fonctionnait pas, il faut la mettre en dehors!
@@liviopaupe5634 Merci je galérais tu as été ma lumière
S'il te plait j'ai un gros problème.
Dans ce tuto qui est sur les dégât des ennemis, peut-tu nous montrer comment faire plusieurs type de dégât.
exemple: on a une barre de 100 point de vie, un premier ennemie nous en enlève 5, un second, nous en enlève 10.
J'espère que tu lira se message et que tu m'aidera.
Sinon j'aime tes vidéo, elles m'aide énormément.
Je l'ai montré dans cette même vidéo ... chaque ennemi peut être paramétré pour faire le nombre de dégâts que tu veux.
@@TUTOUNITYFR hey j'ai un probleme moi aussi
regarde mon script
private void OnCollisionEnter2d (Collider2D collision)
{
if (collision.transform.CompareTag("Player"))
{
PlayerHealth playerHealth = collision.transform.GetComponent();
playerHealth.TakeDamge(40);
}
}
}
il me dit prameter must be collision 2d
@@monishgokulsing5903 c'est pas Collider2D mais Collision2D dans la parenthèse
Je me demande aussi, ça veut dire quoi les points entre les fonctions, je comprend pas, exemple fonction.fonction2= true
C'est pour accéder à un sous élément. Exemple :
Classe.Fonction ou Classe.variable
C'est pour définir dans quel objet on va chercher quoi. Je te recommande la série C# pour bien comprendre ce concepte
@@TUTOUNITYFRokay ça semble simple mtn, je suis sur le coup oui mais avant tout je vais connaître l'interface de visual Studio il y a trop d'incompréhension, merci beaucoup
c'est pour accéder aux attributs ( ou aux fonctions) publics des classes
Mon personnage ne prend pas de dégât avec le serpent je sais pas pourquoi
Le problème se pose avec la variable qu'on a ajouté : "public int damageOnCollision = 20;" , il faut l'enlever et remetre la ligne playerHealth.TakeDamage(20); comme ça , ainsi tout va fonctionner normalement , de toute façon t'as pas besoin d'ajouter une nouvelle variable , tu peux fixer le damage . Bonne récéption
Salut tes tuto son super mais pour les dégâts je préfère utiliser une animation le problème est que dès que je prends des dégâts mon animation se répète à l’infini
Il faut désactiver l'option "loop" pour quelle ne se joue pas en boucle.
@@TUTOUNITYFR d’accord merci de m’avoir répondu c’est super d’avoir un créateur de contenu qui continue d’aider sa communauté.
@@TUTOUNITYFR Bonjour, je rencontre un problème avec 2 choses :
1 Le personnage ne prend pas dégâts lorsqu’il touche le serpent mais seulement lorsque j’appuie sur H, et au moment de clignoter, il disparait.
2 Et lorsque je suis dans l’onglet game, le personnage prend du temps à commencer à marcher, a du mal à sauter et s’arrête parfois alors que la touche est maintenue.
Merci d’avance.
@@user-ni8mk9ix4b moi aussi j'ai ses problème
Il reste combien d'épisodes sur la série ?
Dit dans l'épisode 0, pas de nombre défini pour le moment.
@@TUTOUNITYFR OK merci
ça y est j'en ai ras le bol, à chaque vidéo je passe 5heures à corriger une erreur;
je suis à la lettre pourtant enfin j'en ai l'impression en tout cas
Assets\Script\PlayerHealth.cs(24,17): error CS0111: Type 'PlayerHealth' already defines a member called 'TakeDamage' with the same parameter types
Même erreur je sais pas comment faire non plus
Mais qu'est ce que tu appel "Méthode" et pourquoi tu ne met ma ta fonctions dans l'uptdate.. On doit vérifier en permanence que l'ennemie face des dégâts non ?
En gros pour faire simple méthode = fonction, et dans la vidéo il met bien la fonction TakeDamage dans l'update.
Salut @TUTO UNITY FR
Juste une question d'optimisation.
Dans le While, tu instancies deux objets Color pour les mettre à chaque fois dans la même variable. Est-ce que ce ne serait pas mieux d'en instancier un une seule fois et de juste le modifier deux fois dans le While ?
Parce que là tu crées plein d'objets qui vont polluer la mémoire non ?
Salut! J'ai un message d'erreur dans ma console disant:« NullReferenceException: Object Reference not set to an instance of an object» quelqu'un pourrait m'aider svp? En passant super cool ta série!
En général, tu prends ton message d'erreur, tu le cherches dans Google en ajoutant Unity, et tu as la piste à suivre.
Dans ton cas tu as probablement oublié de glisser un objet ou un composant dans un champ de script (SpriteRenderer du joueur peut-être ?).
@@jean-michel.houbre Exactement merci beaucoup!
Bonjour, j'ai suivi l'ensemble du scirpt et j'ai ce message: Assets\EnnemyPatrol.cs(36,26): error CS0122: 'PlayerHealth.TakeDamage(int)' is inaccessible due to its protection level
quelqu'un pourrait m'aider svp?
TakeDamage doit être public
@@TUTOUNITYFR il est public, j'ai copié toute la procédure depuis le début
Dans le script PlayerHealth il te suffit de rajouter "public" devant : "void TakeDamage(int damage)"
Tu travailles dans quoi avec toutes ses connaissances ? :D
Dans le développement web :)
@@TUTOUNITYFR ah, de jeu vidéo ou application ...
@@nomegakazuto7432 web il a dit xD
svp la camera ne suive pas la character tu peux m aider
Mon script pour la caméra :
using System;
using UnityEngine;
public class CameraMouvement : MonoBehaviour
{
public GameObject player;
public float timeOffset;
public Vector3 posOffset;
private Vector3 velocity;
void Update()
{
transform.position = Vector3.SmoothDamp(transform.position, player.transform.position + posOffset, ref velocity, timeOffset);
}
}
Glisse ton personnage dans Player. Le timeOffset permet d'avoir un temps entre le déplacement du personnage et la camera.
Pour le reste c'est assez intuitif 😉
euh juste les couleurs primaires sont le bleu le rouge et le jaune
Hey, je suis vraiment bloqué
J'ai tout fais correctement (normalement) et j'ai pluusieur erreur CS0111
- Assets\WeakSpot.cs(8,18): error CS0111: Type 'WeakSpot' already defines a member called 'OnTriggerEnter2D' with the same parameter types
- Assets\Scripts\EnemyPatrol.cs(18,17): error CS0111: Type 'EnemyPatrol' already defines a member called 'Update' with the same parameter types
Par exemple, j'en ai 5 au total, j'ai cherché et pas trouvé, si quelqu'un peux m'aider :)
Edit: j'ai suppr et recoller tout les scripts, j'ai ensuite trouvé des minuscule a la place de maj et tout est revenu dans l'ordre :)
Même erreur je sais pas comment faire
mal heureusement vous ne pourer pas peutére recopier le script parce que il est trop dépacer (visual code le l'accepte plus):(
isInvincible = false fais exactement le contraire je suis obligé de le mettre sur true ca me fais le contraire je ne sais pas pourquoi help
edit : j'avis oublié de mettre la négation (!) dans if(!isInvincible) quel con xD
Bonjour j'ai un petit probléme quand je m'approche du personnage Snake a la place de perdre de la vie sa arréte le jeu et après j'ai ce message Resolve of invalid GC handle. The handle is from a previous domain. The resolve operation is skipped.
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) merci en avance de votre réponse
Un message d'erreur me dit : Assets/PlayerHealth.cs(46,51): error CS1001: Identifier expected ou encore : Assets/PlayerHealth.cs(46,51): error CS1003: Syntax error, ',' expected. alors qu'il n'y a aucune virgule je ne comprend pas.
essaye le point virgule à la fin
Y'a encore un bug quand l'ennemie va vers le player et pousse le player on reste invincible tous le long (même après la fin du clignotement) c'est pas ouf :/
Edit :
j'ai fait mes petites recherches et j'ai du coup opter pour un knockback de l'ennemi, c'est beaucoup plus réaliste et plus de problème d'invincibilité:
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.transform.CompareTag("Player"))
{
collision.rigidbody.AddForce(Vector3.left*knockBackForce);
PlayerHealth playerHealth = collision.transform.GetComponent();
playerHealth.TakeDamage(damageOnCollision);
}
}