problème de calcul peut-être complexe

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Avatar de l’utilisateur
Kaloverian
Messages : 345
Inscription : 10 Août 2016 03:03

problème de calcul peut-être complexe

Message par Kaloverian » 28 Mars 2020 22:59

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

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

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

Message par Alesk » 29 Mars 2020 13:45

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 ?

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

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

Message par djulio74 » 29 Mars 2020 14:12

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.

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

EmileF
Messages : 676
Inscription : 18 Mars 2017 19:39

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

Message par EmileF » 29 Mars 2020 14:31

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
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

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

Message par djulio74 » 02 Avr 2020 19:15

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. ^^

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Répondre

Revenir vers « (C#) CSharp »