void handlecollisionobjet(ObjetARamasser objetARamasser)
    {
        if (objetARamasser.Type == TypeObjet.PELUCHE && Inventory.instance.objetCount < surchargeHotteTotale)
        {
            print("Chouette, j'ai touché une peluche");
            Destroy(objetARamasser.gameObject);
            Inventory.instance.AddPeluche(1);
            objetARamasser.Usine.nombreObjetUsine--;
        }

        if (objetARamasser.Type == TypeObjet.LIVRE && Inventory.instance.objetCount < surchargeHotteTotale)
        {
            print("Chouette, j'ai touché un livre");
            Destroy(objetARamasser.gameObject);
            Inventory.instance.AddLivre(1);
            objetARamasser.Usine.nombreObjetUsine--;
        }


        if (objetARamasser.Type == TypeObjet.JEU && Inventory.instance.objetCount < surchargeHotteTotale)
        {
            print("Chouette, j'ai touché un jeu");
            Destroy(objetARamasser.gameObject);
            Inventory.instance.AddJeu(1);
            objetARamasser.Usine.nombreObjetUsine--;
        }
    }
Exemple #2
0
    private void OnTriggerExit(Collider other)
    {
        if (other.gameObject.layer == 9)
        {
            other.gameObject.layer = 8;
        }

        o = null;
    }
    void OnTriggerEnter2D(Collider2D collision)
    {
        ObjetARamasser objetARamasser = collision.transform.gameObject.GetComponent <ObjetARamasser>();

        if (objetARamasser)
        {
            handlecollisionobjet(objetARamasser);
        }
    }
    public int surchargeHotteTotale = 4; //le nombre de jouets que peut contenir la hotte au maximum tous types de jouets confondus


    void OnTriggerEnter2D(Collider2D collision)                                                         //s'il y a une collision avec un autre objet, on appelle une fonction qui définit le type d'interaction qui va intervenir
    {
        ObjetARamasser objetARamasser = collision.transform.gameObject.GetComponent <ObjetARamasser>(); //Le script ObjetARamasser nous permet de définir le type d'interaction. On le récupère sur chaque objet avec lequel on entre en collision

        if (objetARamasser)
        {
            handlecollisionobjet(objetARamasser);
        }
    }
Exemple #5
0
 // Update is called once per frame
 private void OnTriggerEnter(Collider other)
 {
     if (other.gameObject.layer == 8)
     {
         other.gameObject.layer = 9;
         if (o == null)
         {
             o = other.gameObject.GetComponent <ObjetARamasser>();
         }
     }
 }
    void creationSucreDorge()
    {
        print("je sucre dorge");
        Transform      nouveauObjet   = Instantiate(ObjetPrefab);
        ObjetARamasser objetARamasser = nouveauObjet.gameObject.GetComponent <ObjetARamasser>();

        objetARamasser.GenerationSO = this; // lie l'objet à l'objet qui le crée : l'objet de l'objet à ramasser = l'objet sur lequel il y a ce script
        Vector3 positionGenerationSO = this.gameObject.transform.position;

        float posX = Random.Range(-12, 19);
        float posY = Random.Range(-13, 17);

        nouveauObjet.position = positionGenerationSO + new Vector3(posX, posY, -0.01f); //on définit une position aléatoire par rapport à la position de l'objet GenerationSO. Cela permet de générer des sucres d'orge avec une position élatoire si l'on a plusieurs zones de création de sucres d'orge.
    }
    void creationObjet()
    {
        print("je produis");
        Transform      nouveauObjet   = Instantiate(ObjetPrefab);
        ObjetARamasser objetARamasser = nouveauObjet.gameObject.GetComponent <ObjetARamasser>();

        objetARamasser.Usine = this; // lie l'objet à l'usine qui le crée : l'usine de objet à ramasser = l'usine sur laquelle il y a ce script
        Vector3 positionUsine = this.gameObject.transform.position;

        float posX = Random.Range(-2, 2);                                        // variation par rapport à la position de l'usine
        float posY = Random.Range(-2, 2);                                        // variation par rapport à la position de l'usine

        nouveauObjet.position = positionUsine + new Vector3(posX, posY, -0.01f); //détermine la position de l'objet créé par rapport à la position de l'usine
    }
    void creationObjet()
    {
        print("je produis");
        Transform      nouveauObjet   = Instantiate(ObjetPrefab);                                //on instancie le préfab que l'on a glissé dans l'inspecteur pour chaque type d'usine
        ObjetARamasser objetARamasser = nouveauObjet.gameObject.GetComponent <ObjetARamasser>(); //Le script "ObjetARamasser" est glissé sur chaque prefab. Avec cette méthode, on récupère le script placé sur chaque objet, qui précise une variable usine dont on va avoir besoin ici pour déterminer la position du nouvel objet instancié.

        objetARamasser.Usine = this;                                                             // lie l'objet à l'usine qui le crée : l'usine de objet à ramasser = l'usine sur laquelle il y a ce script
        Vector3 positionUsine = this.gameObject.transform.position;                              //on définit la position de l'usine par rapport à l'objet "usine" particulier sur lequel est posé le script

        float posX = Random.Range(-2, 2);                                                        // variation par rapport à la position de l'usine
        float posY = Random.Range(-2, 2);                                                        // variation par rapport à la position de l'usine

        nouveauObjet.position = positionUsine + new Vector3(posX, posY, -0.01f);                 //détermine la position de l'objet créé par rapport à la position de l'usine
    }
    void handlecollisionobjet(ObjetARamasser objetARamasser)
    {
        if (objetARamasser.Type == TypeObjet.PELUCHE && Inventory.instance.objetCount < surchargeHotteTotale) //Si l'objet rencontré est une peluche, et que le nombre total de jouets déjà contenus dans la hotte est inférieur à sa capacité maximale, on peut ramasser l'objet
        {
            print("Chouette, j'ai touché une peluche");
            Destroy(objetARamasser.gameObject);      //on détruit l'objet, pour qu'il disparaisse. On le met alors dans notre hotte
            Inventory.instance.AddPeluche(1);        //on ajoute une peluche à notre inventaire
            objetARamasser.Usine.nombreObjetUsine--; //on a récupéré un objet, on supprime donc 1 objet dans l'usine correspondante, pour que celle-ci puisse continuer à générer des objets et qu'elle ne considère pas que cet objet est toujours dans l'usine
            Gift.Play();                             //on déclenche un bruitage qui indique que l'on a récupérer un objet
        }

        //Les actions à effectuer sur les objets de type "livre" et "jeu" sont les mêmes que pour les peluches
        if (objetARamasser.Type == TypeObjet.LIVRE && Inventory.instance.objetCount < surchargeHotteTotale)
        {
            print("Chouette, j'ai touché un livre");
            Destroy(objetARamasser.gameObject);
            Inventory.instance.AddLivre(1);
            objetARamasser.Usine.nombreObjetUsine--;
            Gift.Play();
        }

        if (objetARamasser.Type == TypeObjet.JEU && Inventory.instance.objetCount < surchargeHotteTotale)
        {
            print("Chouette, j'ai touché un jeu");
            Destroy(objetARamasser.gameObject);
            Inventory.instance.AddJeu(1);
            objetARamasser.Usine.nombreObjetUsine--;
            Gift.Play();
        }

        if (objetARamasser.Type == TypeObjet.SUCREDORGE)
        {
            print("Youpi, un sucre d'orge");
            Destroy(objetARamasser.gameObject);                                   //on ramasse le sucre d'orge, donc on le détruit
            PlayerMovement playermovement = this.GetComponent <PlayerMovement>(); //On fait le lien avec le script qui gère le mouvement du player
            playermovement.Acceleration();                                        //dans le script qui gère le mouvement du player, on fait appel à la fonction "accélération", le bonus qui est déclenché lorsqu'on rencontre un sucre d'orge
            Slurp.Play();                                                         //on déclenche un bruitage qui indique au joueur qu'il a récupéré un sucre d'orge, et qu'il a un bonus
        }
    }