Page 1 sur 1

[DB] un Lerp qui ne Lerp pas

Publié : 24 Avr 2019 06:27
par Kawacemy
Bonjour tout le monde, :hello:
J'essaie de créer un objet qui se déplace d'un point A au point B une fois cliqué dessus, j'ai créé... ou plutôt bricolé ce Script, qui apparemment ne marche pas. :triste1:
Si quelqu'un a une solution, toutes les propositions sont les bienvenues. :super:

Code : Tout sélectionner

 
    public GameObject sphere;
    public Transform start;
    public Transform end;
    private float t = 0f;

    void OnMouseDown()
    {
        sphere.transform.position = Vector3.Lerp(start.position, end.position, t += 0.1f * Time.deltaTime);
    }
Merci et a++

Re: [DB] un Lerp qui ne Lerp pas

Publié : 24 Avr 2019 09:26
par DevAmat
Cette fonction doit être placée dans un Update() par exemple.

Re: [DB] un Lerp qui ne Lerp pas

Publié : 24 Avr 2019 12:52
par boubouk50
La fonction Lerp () est ce qu'il te faut (entre autres possibilités).
Elle permet de passer d'une donnée A à une donnée B par une interpolation linéaire (ligne droite) selon un interpolant.
C'est la notion d'interpolant qu'il faut comprendre. Le résultat d'un Lerp en est dépendant d'après la fonction:
lerp = a*(1-t) + b*t avec a la valeur de départ, b celle d'arrivée et t l'interpolant.
A t=0 on obtient lerp = a
A t=1 on obtient lerp = b
et pour toutes les autres valeurs entre 0 et 1 de t, on obtient une valeur intermédiaire.
Il faut donc faire varier progressivement t de 0 à 1 pour passer de a à b.

Ici, tu n'intègres pas la notion de temps dans l'utilisation de la fonction, tu ne vas donc récupérer qu'une seule valeur. Il faut donc appeler la fonction Lerp () au cours du temps pendant un temps défini pour que t puisse augmenter petit à petit.

Pour se faire, il va te falloir comprendre comment fonctionne une couroutine que tu appelleras dans OnMouseDown ().
Elle te permettra de lancer la fonction Lerp () au cours du temps.

Re: [DB] un Lerp qui ne Lerp pas

Publié : 25 Avr 2019 15:24
par Kawacemy
Un grand merci pour vos réponses, je vais m'informer encore plus sur les Coroutine et je vous tiens au courant.
MERCI encore :super: