[Resolved] Image not changing on Toggle
Here's my code
public class MusicPlay : MonoBehaviour {
public SpriteRenderer toggle;
private bool music = true;
public Sprite on;
public Sprite off;
public void ToggleMusic () {
Debug.Log("Toggle pressed");
musicOn = !musicOn;
if (music)
{
toggle.GetComponent<SpriteRenderer>().sprite = on;
Debug.Log("Toggle image: " + on);
}
else
{
toggle.GetComponent<SpriteRenderer>().sprite = off;
Debug.Log("Toggle image: " + off);
}
}
}
And my log messages are
Toggle (UnityEngine.GameObject)
UnityEngine.Debug:Log(Object)
MusicPlay:Start() (at Assets/Scripts/MusicPlay.cs:24)
Toggle pressed
UnityEngine.Debug:Log(Object)
MusicPlay:ToggleMusic() (at Assets/Scripts/MusicPlay.cs:33)
UnityEngine.EventSystems.EventSystem:Update()
Toggle image: musicOff 1 (UnityEngine.Sprite)
UnityEngine.Debug:Log(Object)
MusicPlay:ToggleMusic() (at Assets/Scripts/MusicPlay.cs:40)
UnityEngine.EventSystems.EventSystem:Update()
Since it prints out the Sprite name, I'm fairly sure the assignment was done properly. It may be something to do with the SpriteRenderer? The toggle was done by adding an Image to the canvas, then adding the Toggle component to the object, then finally adding a SpriteRenderer component on top of it. I just dragged the game object into the SpriteRenderer field.
Answer by zeejay94 · Sep 23, 2016 at 07:55 PM
So I tried using Image instead and it worked perfectly. Still not sure what's wrong with the code above, but if anyone is facing the same issue...
public class MusicPlay : MonoBehaviour {
public Image toggle;
private bool music = true;
public Sprite on;
public Sprite off;
public void ToggleMusic () {
musicOn = !musicOn;
if (music)
{
toggle.GetComponent<Image>().sprite = on;
}
else
{
toggle.GetComponent<Image>().sprite = off;
}
}
}
This worked.
Your answer
Follow this Question
Related Questions
How do I save the state of a toggle button? 1 Answer
Issues with fullscreen toggle 0 Answers
Toggle UI Text With UI Toggle Button 1 Answer
How I can mute music by toggle !! 0 Answers
Image Appear on Trigger is not work on ARcamera(vuforia) 0 Answers