Page 1 sur 1

[RESOLU] Comment faire un item par terre que le joueur peut ramasser ?

Publié : 23 Nov 2020 18:14
par ludoxe
Bonjour,

Question un peu stupide :gene:
Supposons, j'ai une scène avec un joueur, un sol, et un gameObject random par terre.
Je voudrais savoir comment faire pour que quand le joueur se rapproche de l'objet et appuie sur une touche bah il se passe quelque chose.

Merci d'avance.

Re: Comment faire un item par terre que le joueur peut ramasser ?

Publié : 23 Nov 2020 18:27
par boubouk50
Bonjour,

Pour cela, il faut que tu ailles regarder la notion de Collider/Trigger.
Ton personnage, aura un collider (et surement un rigidBody) et ton objet au sol un collider en mode trigger.
Lorsqu'un collider entre en contact avec un trigger, des événements sont appelés, des actions sont disponibles:
Au moment de la collision, pendant toute la collision et à la fin de la collision.
Pour ton cas, tu devras activer la possibilité de ramasser cet objet pendant la collision, via OnTriggerStay ()
https://docs.unity3d.com/ScriptReference/Collider.html

Ce sont des actions basiques disponibles dans beaucoup de tutos, je te conseille d'en consulter quelques uns, dont les Unity Learn (officiels en anglais) et les scènes démo d'Unity.

Re: Comment faire un item par terre que le joueur peut ramasser ?

Publié : 23 Nov 2020 20:00
par ludoxe
Ok merci, en fait j'avais écrit un paragraphe supplémentaire apportant plus de détails et de contexte sur ma question mais j'ai pas dû bien copier/coller ma question sur le forum (j'écrivais sur tel, et je me suis envoyé la question sur mon ordi) :gene:
Enfin bref, en fait je me posais plutôt des questions vis à vis de l'optimisation.
N'est il pas lourd de mettre un OnTriggerStay() pour chaque objet qui serait par terre ?

Merci :-D

Re: Comment faire un item par terre que le joueur peut ramasser ?

Publié : 23 Nov 2020 21:56
par boubouk50
Si tu veux gérer cela en pur événementiel, tu peux simplement activer quelque chose au Enter et le désactiver au Exit. Dans ce cas, tu gères toi même la gestion de l'événement.
Maintenant, non ce n'est pas lourd, puisque ce sera appelé UNIQUEMENT quand il y aura une collision et comme tu peux prédéfinir les layers impactés, tu peux décider qu'il soit appelé UNIQUEMENT lors d'une collision avec le player. A priori, un seul en même temps, c'est léger par rapport à un Update qui se joue à chaque frame.

Re: Comment faire un item par terre que le joueur peut ramasser ?

Publié : 24 Nov 2020 16:15
par ludoxe
Ok merci pour ces infos !

Edit : comment on fait pour mettre un sujet en résolu svp :gene:

Re: Comment faire un item par terre que le joueur peut ramasser ?

Publié : 24 Nov 2020 17:06
par boubouk50
Tu édites ton premier message et tu ajoutes [RESOLU] au début du titre/sujet. Simple.
Merci d'y penser ;-)