Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

Sprite appears in game mode but not in built version.

Discussion in '2D' started by Naminu, Sep 15, 2015.

  1. Naminu

    Naminu

    Joined:
    Aug 12, 2014
    Posts:
    5
  2. leoyaik

    leoyaik

    Joined:
    Oct 13, 2014
    Posts:
    6
    Can you show the code where you do the switch?
     
  3. Naminu

    Naminu

    Joined:
    Aug 12, 2014
    Posts:
    5
    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 = catSprite;
    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 = catSprite;
    }
    }

    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 = defaultSprite;
    }
    }
    }
     
  4. Leo-Yaik

    Leo-Yaik

    Unity Technologies

    Joined:
    Aug 13, 2014
    Posts:
    434
    Hi

    Load Level will remove everything from the current scene and replace it with the content of the scene you want to load.

    You can use LoadLevelAdditive to preserve the content of the current scene or do the check and assignment in the 'Game' scene.
     
    theANMATOR2b likes this.