Page 1 sur 1

Bouger en haut e en bas sans flipper les axes!!!

Publié : 06 Jan 2020 21:28
par zeddepth
Bonjour à tous,

je suis nouveau sur "Unity" je commence par le début en codage, j'essaie donc de comprendre avant d'appliquer quoi que ce soit.

Ma question se pose ainsi:

je me suis mis pour objectif de faire bouger une boîte, du haut vers le bas, en boucle, j'y suis arrivé, mais la méthode ne me plaît pas en fait, car je fais une rotation de 180 surl'axe x. Je voudrais tous smplement effectuer un reverse, mais je ne trouve pas de solution. J'aimerais avoir vos lumiéres pour comprendre comment faire et surtout apprendre. Merci à vous

Mon code est basic, j'apprends ici à utiliser les fonctions et les conditions:

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Move_Up : MonoBehaviour
{

    public float limitB = 0.5f;
    public float limitH = 5f;
    public float speed = 1.2f;
    
    // Start is called before the first frame update
    void Start()
    {
    }

    // Update is called once per frame
    void Update()
    {
        moveUp();
    }


    public void moveUp()
        
    {
        if (transform.position.y <= limitH)
        {
            transform.Translate(0, speed * Time.deltaTime, 0);
        }


        if (transform.position.y >= limitH)
        {
            transform.Translate(0,  - speed * Time.deltaTime, 0);
            transform.eulerAngles = new Vector3(180, 0, 0);
        }


        if (transform.position.y <= limitB)
        {
            transform.Translate(0, speed * Time.deltaTime, 0);
            transform.eulerAngles = new Vector3(0, 0, 0);
        }
    }

}

Re: Bouger en haut e en bas sans flipper les axes!!!

Publié : 06 Jan 2020 23:21
par Alesk
Salut,

Ta question n'est pas assez claire, pourrais tu détailler un peu plus ce qui ne va pas et surtout ce que tu veux que le cube fasse précisément ?


Sinon, on ne dit pas "codage" mais "programmation" :P

Re: Bouger en haut e en bas sans flipper les axes!!!

Publié : 07 Jan 2020 01:08
par zeddepth
Salut,

En fait je voudrais que le cube monte, puis qu'à une limite fixée au préable dans une variable, qu'il redescende tout simplement et reprenne sa position initiale. Tous cela bien sur, en ligne de code, sans clé d'animation.

En fait, je souhaite apprendre la "Programmation", donc je veux comprendre pourquoi faire comme si, ou ne pas pas faire comme ça.................. Plustard j'aimerai utiliser cette portion de code avec un (GetkeyDown()).

Voilà j'espère avoir été plus précis.

Merci

Re: Bouger en haut e en bas sans flipper les axes!!!

Publié : 07 Jan 2020 08:43
par Aelhan
Bonjour, je ne suis pas un cador en prog, mais en effet ta façon semble un peu "bricolée".
Je vois que tu as une méthode "moveUp()", mais pas de "moveDown()", qui serait la même mais avec "-speed" au lieu de speed. Et dans "moveUp()", tu mets une condition qui appelle "moveDown()" quand ton cube dépasse la limite haute (juste un petit else), et vice versa pour le "moveDown()" qui appelle "moveUp()" quand tu dépasses la limite basse.
Ce n'est sans doute pas la façon de faire la plus optimisée, mais au moins elle semble logique et facilement compréhensible.
Sinon, façon plus opti, une simple méthode move(), et quand tu dépasses une limite (avec un "ou" dans ton if) tu fais speed = -speed et ça devrait rouler je pense.
Je suis relativement débutant aussi, mais si je peux apporter une petite pierre à l'édifice, c'est avec plaisir.

Je m'excuse auprès des "helpers" habituels si vous pensez que j'ai donné trop de détails, hésitez pas à me le dire, j'essaierai d'être plus énigmatique la prochaine fois que ça me prend de répondre à une question si tel est le cas :twisted:

Re: Bouger en haut e en bas sans flipper les axes!!!

Publié : 07 Jan 2020 13:43
par Alesk
Aelhan a écrit :
07 Jan 2020 08:43
Je m'excuse auprès des "helpers" habituels si vous pensez que j'ai donné trop de détails, hésitez pas à me le dire, j'essaierai d'être plus énigmatique la prochaine fois que ça me prend de répondre à une question si tel est le cas :twisted:
haha, non, ta réponse est très bien... Et il ne faut pas être "énigmatique" dans les réponses ... enfin ça dépend des cas ;)
De plus ta réponse est très bien comme ça.

Par contre le souci de rotation évoqué dans la question initiale est un peu flou... Alors je précise un truc pour les débutants :

L'orientation d'un objet n'a aucune influence sur sa direction de déplacement lorsque l'on modifie directement sa position.
Donc pour faire monter et descendre un objet sur l'axe Y, il n'y a absolument pas besoin de modifier sa rotation.

Re: Bouger en haut e en bas sans flipper les axes!!!

Publié : 07 Jan 2020 19:58
par zeddepth
Salut,

Merci beaucoup pour cette réponse tout à fait précise, en fait c'est tout à ce qu'il me fallait, de plus vos conseils m'aideront grandement. C'est exactement ce genre de soutien qu'il me faut. Merci milles fois. :cote: :cote: :cote: