[DB-AL] Changer l'orientation d'une porte

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
ianis
Messages : 10
Inscription : 29 Sep 2014 15:22

[DB-AL] Changer l'orientation d'une porte

Message par ianis » 30 Août 2018 09:18

Bonjour j'espère que je suis dans la bonne rubrique pour cette demande et que cela ne fait pas double emploie car hier je crois avoir posté ... (pas certain d'avoir appuyé sur envoyé ! pour cause de dérangement téléphonique )
Je débute en programmation J'ai réussi à recopier un tuto pour l'ouvertue d'une porte coulissante.

Mon problm est que si je déplace l'animation sur le terrain et que l'axe est différent la porte s'ouvre toujours dans le même sens. Dans le test réussi elle s'ouvre en Z.... et je n'arrive pas à l'ouvrir si cela doit se faire en X. J'ai essayé d'intervertir les valeurs dans les ligne x et z mais rien n'a bougé....

j'aimerai recevoir quelques conseils pour finir mon pojet d'étude... Merci pour votre aide

Voici le Script :

Code : Tout sélectionner

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

public class TriggerPorteCoulissante : MonoBehaviour
{
    public float speed;
    public float maxOpenValue;
    public Transform door;
    public bool opening = false;
    public bool closing = false;
   


    private float currentValue = 0;
    // Use this for initialization
    void Start()
    {
       
    }

    // Update is called once per frame
    void Update(){
        if (opening) OpenDoor();
        if (closing) CloseDoor();
    }

    void OnTriggerEnter(Collider obj) {
        if (obj.transform.name == "Player") { 
            opening = true;
            closing = false;
        }
    }
    void OnTriggerExit(Collider obj) {
        if (obj.transform.name == "Player"){
            opening = false;
            closing = true;
        }

    }


    void OpenDoor(){
        float movement = speed * Time.deltaTime;
        currentValue += movement;

        if (currentValue <= maxOpenValue)
        {
            door.position = new Vector3(
                door.position.x,
                door.position.y,
                door.position.z + movement
                );
        }
        else
        {
            opening = false;
        }
     }

    void CloseDoor() {
        float movement = speed * Time.deltaTime;
        currentValue -= movement;

        if (currentValue >= 0)
        {
            door.position = new Vector3(
                door.position.x,
                door.position.y,
                door.position.z - movement
                );
        }
        else
        {
            closing = false;
        }
    }
   


}
.
 ! Message de : Max
Utilisez les balises code SVP
Merci de lire la Netiquette.

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

Re: Csharp : changer l'orientation d'une porte

Message par Alesk » 30 Août 2018 10:09

Salut,

Il faudrait utiliser la balise "code" pour afficher ton exemple, ça sera plus lisible.

Sinon, pour répondre à ta question, tu peux utiliser les propriétés transform.right ou transform.forward de ta porte pour te déplacer latéralement ou d'avant en arrière, quelle que soit l'orientation.

transform.right te donnera toujours le vecteur pointant vers la droite de l'objet et transform.forward le vecteur pointant vers l'avant.
Tu as aussi transform.up, qui indique toujours la direction verticale de l'objet.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6208
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB-AL] Changer l'orientation d'une porte

Message par boubouk50 » 30 Août 2018 12:56

Oui, ou utiliser les transformations locales plutôt que World.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Répondre

Revenir vers « (C#) CSharp »