Driftix

Unity Random Weapon Generator(2D)

Jan 7th, 2020
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.19 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. public class Test : MonoBehaviour
  6. {
  7.     public int NeededParts = 2;
  8.     public GameObject MyWeapon;
  9.     public List<GameObject> Composants = new List<GameObject>(); //Créer une Liste de Go
  10.     public void Start()
  11.     {
  12.         MyWeapon.SetActive(false);
  13.     }
  14.  
  15.     public void randomParts()
  16.     {
  17.         MyWeapon.SetActive(true);
  18.         int nbGoChild;
  19.         int randomPart;
  20.         int nbChild = MyWeapon.transform.childCount;
  21.         GameObject objet;
  22.         //Seulement pour les obligatoirs
  23.         for (int i = 0; i < NeededParts; i++)
  24.         {
  25.             objet = Composants[i];//On prend le premier Objet de la liste
  26.             nbGoChild = objet.transform.childCount; //On regarde le nombre d'enfant que possède le GO
  27.             randomPart = randomNumber(0, nbGoChild); //On choppe un nombre au hasard en fonction du nombre de GOChild
  28.             MyWeapon.transform.GetChild(i).GetComponentInChildren<SpriteRenderer>().sprite = objet.transform.GetChild(randomPart).GetComponent<SpriteRenderer>().sprite;
  29.             //On remplace la partie correspondante à l'enfant du go MyWeapon par l'objet que l'on a récupéré dans l'enfant de l'objet "objet".
  30.         }
  31.         //Fait le reste
  32.         for (int j = NeededParts; j < nbChild; j++)
  33.         {
  34.             objet = Composants[j];
  35.             nbGoChild = objet.transform.childCount;
  36.             randomPart = randomNumber(-1, nbGoChild);
  37.             if (randomPart == -1)
  38.             {
  39.                 MyWeapon.transform.GetChild(j).GetComponentInChildren<SpriteRenderer>().sprite = null;
  40.                 //Faire plus tard en sorte que lorsque le SpriteRenderer est null on desactive le go (penser à le réactiver)
  41.                 //(Donc pas besoin de turn off le sprite(si on désactive le Go
  42.             }
  43.             else
  44.             {
  45.                 MyWeapon.transform.GetChild(j).GetComponentInChildren<SpriteRenderer>().sprite = objet.transform.GetChild(randomPart).GetComponent<SpriteRenderer>().sprite;
  46.             }
  47.         }
  48.  
  49.     }
  50.     public int randomNumber(int r1, int r2)
  51.     {
  52.         return Random.Range(r1, r2);
  53.     }
  54.    
  55. }
Advertisement
Add Comment
Please, Sign In to add comment