I honestly have no clue why this is happening, but the method from UIManager class SetSelected() isn’t isnt getting called when I call it from the Cast script. I have confirmed that the if statements in Update do pass as true. I know the SetSelected() isn’t getting called because the debugging print functions never printed.
UIManager.cs
using UnityEngine;
using System.Collections;
public class UIManager : MonoBehaviour {
public Transform[] spellBoxes;
public Sprite fireballSelected;
public Sprite iceballSelected;
public void SetSelected(int x)
{
switch(x)
{
case (0) :
spellBoxes[x].GetComponent<SpriteRenderer>().sprite = fireballSelected;
break;
case (1) :
spellBoxes[x].GetComponent<SpriteRenderer>().sprite = iceballSelected;
break;
default :
break;
}
}
}
Cast.cs
using UnityEngine;
using System.Collections;
public class Cast : MonoBehaviour {
public float fireRate = 0;
public int damage = 10;
public Transform Fireball;
public Transform Iceball;
static public Transform selection;
private UnitySampleAssets._2D.PlatformerCharacter2D character;
private UIManager selectedBox;
float timeToFire = 0;
void Update ()
{
if(Input.GetKeyDown(KeyCode.Alpha1))
{
selection = Fireball;
selectedBox.SetSelected(0);
}
if(Input.GetKeyDown(KeyCode.Alpha2))
{
selection = Iceball;
selectedBox.SetSelected(1);
}
}
}