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--; } }
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); } }
// 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 } }