Page 1 sur 1

[Résolu][DB-AL] Faire varier un point d'un EdgeCollider2D

Publié : 08 Juil 2020 09:32
par Aelhan
Bonjour,

Cela fait un moment que je ne suis pas passé par ici, je ne fais pas partie de ceux pour qui le confinement a été un boost, au contraire :pleur4:
Je reviens malgré tout avec une question a priori toute simple, j'ai un objet dont je fais varier la taille en x et en y grâce à certaines actions, dans cet objet (visuellement dedans, pas dans la hiérarchie) j'ai un collider que je ne veux faire varier que en y. J'ai intégré ce petit bout dans mon code qui fait varier l'objet en question :

Code : Tout sélectionner

public void Extension()
{
collider.GetComponent[EdgeCollider2D]().points[0] += new Vector2 (0f, 0.0001f) ;
}
J'ai bien mon objet qui grandit toujours, mais mon collider lui ne réagit pas. Tout est correctement déclaré, pas d'erreurs retournées, simplement le point reste strictement aux mêmes coordonnées. Si quelqu'un a une petite idée, merci d'avance !

Re: [DB-AL] Faire varier un point d'un EdgeCollider2D

Publié : 08 Juil 2020 09:38
par boubouk50
Appelle-tu cette méthode quelque part?

Je ne connais pas la syntaxe GetComponent[EdgeCollider2D], la doc n'en parle pas. C'est fonctionnel? :pasdrole:

Aussi, merci de poster le code dans son ensemble, avec les appels à cette fonction.

Re: [DB-AL] Faire varier un point d'un EdgeCollider2D

Publié : 08 Juil 2020 10:07
par Aelhan
Merci de ta réponse, a priori ce n'est pas fonctionnel puisque ça ne fonctionne pas :triste1: mais en tout cas Unity ne se fâche pas. Pour le code dans son ensemble, cela devra attendre, je n'ai que le tel pour le moment, ce soir je pourrai le poster.
Sinon, oui, la fonction est appelée par plusieurs boutons, et vu que c'est la même void qui fait varier la taille de mon objet et que ça fonctionne de ce côté là je n'ai pas de souci d'appel.

En tout cas si quelqu'un a une solution pour arriver au résultat escompté d'une autre manière je suis preneur !

Re: [DB-AL] Faire varier un point d'un EdgeCollider2D

Publié : 08 Juil 2020 14:13
par Max
Hello,
Aelhan a écrit :
08 Juil 2020 09:32

Code : Tout sélectionner

public void Extension()
{
collider.GetComponent[EdgeCollider2D]().points[0] += new Vector2 (0f, 0.0001f) ;
}
Tu ne peux pas accéder directement à un point. Tu dois récupérer l'array, changer le point souhaité et réassigner l'array. Donc si tu souhaites accéder à un des points de ton EdgeCollider2D, le principe de base est:

Code : Tout sélectionner

public void Extension()
{
            EdgeCollider2D edgeCollider = GetComponent<EdgeCollider2D>();
            Vector2[] colliderpoints;
            colliderpoints = edgeCollider.points;
	// point à modifer
            colliderpoints[0] += new Vector2(0f, 0.4f); // par exemple
            
            edgeCollider.points = colliderpoints;
}

Re: [DB-AL] Faire varier un point d'un EdgeCollider2D

Publié : 08 Juil 2020 15:23
par Aelhan
Je te remercie, pas aussi direct et intuitif que ma proposition de départ, je teste ça et je clos si ça fonctionne !