Question by
Naminu · Sep 13, 2015 at 05:56 PM ·
androidbuttonchangespriterendererwindows phone 8
Sprite change doesn't work in built game.
I want to change the SpriteRenderer sprite to another one by pressing a GUI Button. In the editor, it works perfectly fine, with no problems. But when I build it for android or W.P, it doesn't work at all. The sprite remains the default one.
What happens in the editor: https://gyazo.com/88b8cf867d94932802bf9296d6fce0e6
What happens in built version(android): https://gyazo.com/9988c6a664c92c4b5703b7b8864990aa
Here is my script: using UnityEngine; using System.Collections;
public class Shop : MonoBehaviour {
int catPrice = 10;
public Sprite defaultSprite;
public Sprite catSprite;
public GameObject Player;
int moneyz;
public bool hasBeenPressed;
public SpriteRenderer spriteRenderer;
void Start ()
{
moneyz = PlayerPrefs.GetInt("Score");
spriteRenderer = Player.GetComponent<SpriteRenderer>();
int state = PlayerPrefs.GetInt("hasBeenPressed", 0);
if (state == 1)
hasBeenPressed = true;
else
hasBeenPressed = false;
}
public bool IsCatBought()
{
return hasBeenPressed;
}
void OnGUI()
{
if(!hasBeenPressed)
{
if(GUI.Button (new Rect(Screen.width / 2 - 30, 50, 90, 30), "Buy Cat Player."))
{
if(PlayerPrefs.GetInt("Score", moneyz) < 10)
{
GUI.Label (new Rect(Screen.width / 2 - 40, 250, 100, 30), "Not enought moneyz");
}
else
{
PlayerPrefs.SetInt("Score", moneyz - catPrice);
Player.GetComponent<SpriteRenderer> ().sprite = Resources.Load("Player_Cat", typeof(Sprite)) as Sprite;
hasBeenPressed = true;
PlayerPrefs.SetInt("hasBeenPressed", 1);
}
}
}
if(PlayerPrefs.GetInt("hasBeenPressed") == 1)
{
if(GUI.Button (new Rect(Screen.width / 2 - 30, 250, 90, 30), "Cat Player."))
{
Player.GetComponent<SpriteRenderer> ().sprite = Resources.Load("Player_Cat", typeof(Sprite)) as Sprite;
}
}
if(GUI.Button (new Rect(Screen.width / 2 - 40, 100, 100, 30), "Game"))
{
Application.LoadLevel(1);
}
if(GUI.Button (new Rect(Screen.width / 2 - 40, 150, 100, 30), "Back to Menu"))
{
Application.LoadLevel(0);
}
if(GUI.Button (new Rect(Screen.width / 2 - 40, 200, 100, 30), "Default Player."))
{
Player.GetComponent<SpriteRenderer> ().sprite = Resources.Load("Player_Normal", typeof(Sprite)) as Sprite;
}
}
}
Also, I have used multiple ways to change the sprite but none of them worked.
Comment