SetDiamondMaterialTime.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1.  using UnityEngine;
  2. // Use this Script in parent folder of all Humans
  3. public class SetDiamondMaterialTime : MonoBehaviour
  4. {
  5. [Header("Visibility:")]
  6. public bool showHumans = true;
  7. [Header("Diamond Materials:")]
  8. public Material year2019;
  9. public Material year2020;
  10. public Material year2021;
  11. public Material default_mat;
  12. // Start is called before the first frame update
  13. void Start()
  14. {
  15. Component[] years = gameObject.GetComponentsInChildren<InstantiatePrefab>();
  16. foreach (var year in years)
  17. {
  18. GameObject[][] humansGO = year.GetComponent<InstantiatePrefab>().humanGameObject;
  19. for (int i = 0; i < humansGO.Length; ++i)
  20. for (int j = 0; j < humansGO[i].Length; ++j)
  21. {
  22. // Diamond object is visible
  23. humansGO[i][j].transform.Find("Diamond").gameObject.SetActive(true);
  24. // If bool showHumans is not ticked, then the DummyModel is not visible
  25. if (!showHumans)
  26. humansGO[i][j].transform.Find("DummyModel").gameObject.SetActive(false);
  27. if (humansGO[i][j].CompareTag("2021"))
  28. humansGO[i][j].transform.Find("Diamond").GetComponent<MeshRenderer>().material = year2021;
  29. else if (humansGO[i][j].CompareTag("2020"))
  30. humansGO[i][j].transform.Find("Diamond").GetComponent<MeshRenderer>().material = year2020;
  31. else if (humansGO[i][j].CompareTag("2019"))
  32. humansGO[i][j].transform.Find("Diamond").GetComponent<MeshRenderer>().material = year2019;
  33. else
  34. humansGO[i][j].transform.Find("Diamond").GetComponent<MeshRenderer>().material = default_mat;
  35. }
  36. }
  37. }
  38. }