Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class Test : MonoBehaviour
- {
- public int NeededParts = 2;
- public GameObject MyWeapon;
- public List<GameObject> Composants = new List<GameObject>(); //Créer une Liste de Go
- public void Start()
- {
- MyWeapon.SetActive(false);
- }
- public void randomParts()
- {
- MyWeapon.SetActive(true);
- int nbGoChild;
- int randomPart;
- int nbChild = MyWeapon.transform.childCount;
- GameObject objet;
- //Seulement pour les obligatoirs
- for (int i = 0; i < NeededParts; i++)
- {
- objet = Composants[i];//On prend le premier Objet de la liste
- nbGoChild = objet.transform.childCount; //On regarde le nombre d'enfant que possède le GO
- randomPart = randomNumber(0, nbGoChild); //On choppe un nombre au hasard en fonction du nombre de GOChild
- MyWeapon.transform.GetChild(i).GetComponentInChildren<SpriteRenderer>().sprite = objet.transform.GetChild(randomPart).GetComponent<SpriteRenderer>().sprite;
- //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".
- }
- //Fait le reste
- for (int j = NeededParts; j < nbChild; j++)
- {
- objet = Composants[j];
- nbGoChild = objet.transform.childCount;
- randomPart = randomNumber(-1, nbGoChild);
- if (randomPart == -1)
- {
- MyWeapon.transform.GetChild(j).GetComponentInChildren<SpriteRenderer>().sprite = null;
- //Faire plus tard en sorte que lorsque le SpriteRenderer est null on desactive le go (penser à le réactiver)
- //(Donc pas besoin de turn off le sprite(si on désactive le Go
- }
- else
- {
- MyWeapon.transform.GetChild(j).GetComponentInChildren<SpriteRenderer>().sprite = objet.transform.GetChild(randomPart).GetComponent<SpriteRenderer>().sprite;
- }
- }
- }
- public int randomNumber(int r1, int r2)
- {
- return Random.Range(r1, r2);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment