Page 1 sur 1

problème de calcul peut-être complexe

Publié : 28 Mars 2020 22:59
par Kaloverian
bonjour,

Mon but est de translater un objet sur l'axe Z tout en le scalant d'un seul côté ,de manière d'avoir l'impression que l'objet translaté "laisse comme sa trainée" derrière lui.
Comme ce mur mince derrière les LightBikes du film Tron
cf lien extrait vidéo:
https://drive.google.com/file/d/1nsVEjc ... sp=sharing

Le scale d'un seul côté est réalisé grâce à un autre script permettant de positionner le point de pivot de l'objet.
Ainsi,j'ai besoin que les composantes Z de translation et de scale soient égales à une constante près égale à la moitié de l'échelleZ propre de l'objet et dépendant de son point de pivot.

Dans la fonction Update(),je dois utiliser simultanément 2 transformations comme ceci:

Code : Tout sélectionner

 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
 
 
public class scale_behind : MonoBehaviour {
 
    public GameObject objet1;
    public float a, b, c, speed_trans, speed_scale;
    float scaleZ, translationZ, temps;
 
 
    // Use this for initialization
    void Start () {
     
    }
 
    // Update is called once per frame
    void Update () {
 
            //il faut s'arranger à ce que transform.localScale.z = transform.position.z à l'issue de ces 2 transformations 
             //simultanées
            
 
        temps = Time.deltaTime;
        scaleZ = speed_scale * temps;
     
 
 
 
        transform.Translate(new Vector3(a * speed_trans *temps, b*speed_trans*temps ,c*speed_trans*temps),Space.Self);
        transform.localScale = new Vector3((0, 0, scaleZ);
 
    }
}
 
Comment faire(coefficients à modifier) pour que à chaque instant transform.localScale.z= transform.position.z à l'issue des 2 transformations?

merci de votre aide

Re: problème de calcul peut-être complexe

Publié : 29 Mars 2020 13:45
par Alesk
C'est pas très clair ton truc :langue2:

Tu veux déformer ton objet ou laisser une trainée derrière ?
La trainée doit avoir quelle longueur ?
Ton objet se déplace uniquement en ligne droite ?

Re: problème de calcul peut-être complexe

Publié : 29 Mars 2020 14:12
par djulio74
A mon avis il voudrait que son objet avance dans une direction, mais qu'il s'étire dans cette même direction.
Exemple d'un cube, avoir une face qui avance à une certaine vitesse donnée, et sa face opposée qui "reste sur place", donc forcément toujours dans la même direction.

Pour une vitesse visuelle voulue, ton pivot dans se déplacer à la moitié de la vitesse voulu, et le scale augmenter à cette même moitié de la vitesse voulu.

Re: problème de calcul peut-être complexe

Publié : 29 Mars 2020 14:31
par EmileF
Salut,

Une petite idée, mettre le cube à étirer dans un empty de facon à ce que la face fixe soit à la position exacte de l'empty.
il suffit ensuite de jouer sur le scale de l'empty pour changer le scale du cube dans une seule direction.
Et je crois, je n'ai pas essayé, que la vitesse du scale peut être la même que celle de l'objet

Je ne sais pas si je suis bien clair

Re: problème de calcul peut-être complexe

Publié : 02 Avr 2020 19:15
par djulio74
Je pense en effet que c'est une très bonne idée Émile, et je pense tu as été très clair t'inquiète pas. ;)
Mais de toute façon cela ne marchera que pour des object se déplaçant en ligne droite. Pour le reste faudrait se pencher sur la création dynamique de mesh mais là oui ça correspondrait au titre du sujet pour notre ami : Problême de calcul peut-être complexe. ^^