Script multiple

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
FournierF3D
Messages : 38
Inscription : 16 Nov 2017 00:18

Script multiple

Message par FournierF3D » 08 Jan 2018 22:27

Bonjour


alors pour le titre, je ne savais pas trop quoi mettre mais voici ma question
j'ai réalisé un script assez simple qui ouvre une porte lorsqu’on rentre dans une zone
certain reglage sont accessible de l'interface comme la vitesse ou l'angle d'ouverture
jusque là rien de bien spécial
ces options sont accessible de ma zone de trigger ( une simple boxe qui gère la zone d'ouverture de la porte )

ça fonctionne bien sur ma porte


donc je duplique ma porte
et utilise toujours le même scripte mais avec des variations au niveau de mon trigger différent pour chaque porte

et là ça semble déconné

donc ma question

es ce que je mis prends mal quelques pars et je peux gardé un même script pour toutes mes portes
ou dois je faire un script différents avec le même code mais pour chaque porte ?


voici le script:

Code : Tout sélectionner

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

public class Script_R0_Porte_WC : MonoBehaviour
{

//    public GameObject PorteG;
    public GameObject PorteD;
    public bool OuverturePorte = false;
    public bool PorteOuverte = false;
    public bool Teste = false;
    public int CurAngle = 0;
    public int Angle = 50;
    public float Speed = 3.5f;

    // Use this for initialization
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        if (OuverturePorte == true)
        {
            if (CurAngle < Angle)
            {
                CurAngle++;
//                PorteG.transform.Rotate(Vector3.forward, CurAngle * Speed * Time.deltaTime);
                PorteD.transform.Rotate(Vector3.forward, CurAngle * Speed * Time.deltaTime);
                if (CurAngle >= Angle)
                {
                    PorteOuverte = true;
                }
            }
        }
        if (OuverturePorte == false && PorteOuverte == true)
        {
            if (CurAngle > 0)
            {
                CurAngle--;
  //              PorteG.transform.Rotate(-Vector3.forward, CurAngle * Speed * Time.deltaTime);
                PorteD.transform.Rotate(-Vector3.forward, CurAngle * Speed * Time.deltaTime);
                if (CurAngle == 0)
                {
                    PorteOuverte = false;
                }
            }


            if (OuverturePorte == false && PorteOuverte == false)
            {
                //            PorteG.transform.Rotate(-Vector3.forward, CurAngle);
                //             PorteD.transform.Rotate(Vector3.forward, CurAngle);
                //PorteD.transform.Rotate(Vector3.forward ,CurAngle);
                PorteD.transform.rotation = Quaternion.FromToRotation(-Vector3.up, transform.forward);

                PorteOuverte = false;
                Teste = true;
            }
        }




    }
    void OnTriggerEnter(Collider Object)
    {
        if (Object.gameObject.tag == "Player")
        {
            OuverturePorte = true;
        }

    }
    void OnTriggerExit(Collider Object)
    {
        if (Object.gameObject.tag == "Player")
        {
            OuverturePorte = false;
        }
    }
}


Merci


Fred

Narkos
Messages : 46
Inscription : 15 Août 2017 10:22
Localisation : Localisation impossible

Re: Script multiple

Message par Narkos » 09 Jan 2018 10:07

Hello,
FournierF3D a écrit :
08 Jan 2018 22:27
et là ça semble déconné
C'est à dire?
FournierF3D a écrit :
08 Jan 2018 22:27
es ce que je mis prends mal quelques pars et je peux gardé un même script pour toutes mes portes
ou dois je faire un script différents avec le même code mais pour chaque porte ?
A priori tu devrais avoir un seul et unique script, que tu attaches à chacune des portes avec lesquelles tu veux intéragir, et c'est les variables de ton script que tu va configurer différemment sur chaque porte.

FournierF3D
Messages : 38
Inscription : 16 Nov 2017 00:18

Re: Script multiple

Message par FournierF3D » 10 Jan 2018 03:45

au faite, si je règles une portes correctement
les autres semble être aussi affectée par les réglages

l'angle d'ouverture changent par exemples sur les portes

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

Re: Script multiple

Message par boubouk50 » 10 Jan 2018 10:22

Les variables ne sont pas statiques (globales), elles sont locales et propres au gameObject.
Si tu règles une porte, les réglages de l'autre ne seront pas affectés. Fais un test avec des valeurs aberrantes et inverses sur 2 portes.
Si il y a bien un lien entre les réglages alors cela provient d'autre chose.
"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 « Scripting »