// Changes Button Text and Image void ChangeButtonTextAndImage(int button, int rng, List <objectDef> objectsincat) { var rn = Random.Range(0, categoryDict.Count - 1); var currentObject = objectsincat[Random.Range(0, objectsincat.Count - 1)]; Debug.Log(currentObject.image); var TraitIcons = new List <Image>(); switch (button) { case 0: t_FirstButton.text = currentObject.name; b_FirstButton.GetComponent <Image>().sprite = Resources.Load <Sprite>(currentObject.image); b_FirstButton.GetComponent <AudioSource>().clip = Resources.Load <AudioClip>(currentObject.sound); buttonOneObj = currentObject; ItemOneCost.text = currentObject.cost.ToString(); baseItemScore1.text = currentObject.value.ToString(); TraitIcons = b_FirstButton.GetComponent <TraitHolder>().Traits; SetUpTraitIcons(TraitIcons, currentObject); break; case 1: t_SecondButton.text = currentObject.name; b_SecondButton.GetComponent <Image>().sprite = Resources.Load <Sprite>(currentObject.image); b_SecondButton.GetComponent <AudioSource>().clip = Resources.Load <AudioClip>(currentObject.sound); buttonTwoObj = currentObject; ItemTwoCost.text = currentObject.cost.ToString(); baseItemScore2.text = currentObject.value.ToString(); TraitIcons = b_SecondButton.GetComponent <TraitHolder>().Traits; SetUpTraitIcons(TraitIcons, currentObject); break; case 2: t_ThirdButton.text = currentObject.name; b_ThirdButton.GetComponent <Image>().sprite = Resources.Load <Sprite>(currentObject.image); b_ThirdButton.GetComponent <AudioSource>().clip = Resources.Load <AudioClip>(currentObject.sound); buttonThreeObj = currentObject; ItemThreeCost.text = currentObject.cost.ToString(); baseItemScore3.text = currentObject.value.ToString(); TraitIcons = b_ThirdButton.GetComponent <TraitHolder>().Traits; SetUpTraitIcons(TraitIcons, currentObject); break; } }
void SetUpTraitIcons(List <Image> TraitIcons, objectDef currentObject) { for (int i = 0; i < TraitIcons.Count; i++) { if (i < currentObject.traits.Count) { foreach (var trait in AllTraits) { if (trait.name == currentObject.traits[i]) { TraitIcons[i].sprite = Resources.Load <Sprite>(trait.icon); TraitIcons[i].gameObject.SetActive(true); } } } else { TraitIcons[i].gameObject.SetActive(false); } } }