Question by
mercedgonzalez259 · Apr 12, 2018 at 11:41 PM ·
characterplayerprefssave dataselection
How do I save a previously bought characters in my Game?
I was wondering how do I save a previously bought characters in my Game? I want to use playerprefs to remember a array of bool values (isbought[10] and isEquipped( isEquipped is not a array of bools, just one)) but i do not know how. I don't really have a clear thought of how to make my thing save bought thing when you close the game and show that you bought it when you run it again. Please if you have any recommendations let me know.
Here is the characterSelect Sript:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class CharacterSelect : MonoBehaviour {
private GameObject[] characterList;
public int index;
public Text PriceTag;
public bool mainMenu;
public AudioClip ErrorSnd;
public AudioClip BoughtSnd;
public Button BuyBtn;
public Sprite EquipImg;
public Sprite BuyImg;
public Sprite CheckMarkImg;
private static int points;
private AudioSource source;
private bool[] AlreadyBought;
private int smallValue = 200;
private int midValue = 400;
private int highValue = 1000;
private int largeValue = 5000;
private bool[] isbought = new bool[10];
private bool isEquipped;
void Awake()
{
isbought[0] = true;
index = PlayerPrefs.GetInt("CharacterSelected");
characterList = new GameObject[transform.childCount];
IsActive();
for (int i = 0; i < transform.childCount; i++)
characterList[i] = transform.GetChild(i).gameObject;
// toggle off their renderer
foreach (GameObject go in characterList)
go.SetActive(false);
// toggle on the selected Character
if (mainMenu == true)
{
source = GetComponent<AudioSource>();
if (characterList[index])
characterList[index].SetActive(true);
}
}
// left arrow button <-----
public void ToggleLeft()
{
characterList[index].SetActive(false);
index--;
if (index < 0)
index = characterList.Length - 1;
IsActive();
characterList[index].SetActive(true);
}
// right arrow button ----->
public void ToggleRight()
{
characterList[index].SetActive(false);
index++;
if (index == characterList.Length)
index = 0;
IsActive();
characterList[index].SetActive(true);
}
// buy button
public void ApplyButton()
{
points = Cube_Movement.Piont;
if (points >= smallValue)
if (index == 0 || index == 1 || index == 2 || index == 3 || index == 4)
SelectedCharacter();
if (points >= midValue)
if (index == 5 || index == 6 || index == 7)
SelectedCharacter();
if (points >= highValue)
if (index == 8)
SelectedCharacter();
if (points >= largeValue)
if (index == 9)
SelectedCharacter();
}
void SelectedCharacter()
{
source.PlayOneShot(BoughtSnd);
PlayerPrefs.SetInt("CharacterSelected", index);
isEquipped = true;
PriceTag.text = "0";
BuyBtn.image.sprite = CheckMarkImg;
isbought[index] = true;
}
//this is part of the ToggleRight() and ToggleLeft()
void IsActive()
{
if (mainMenu == true)
{
if (index == 0)
ButtonImage(index, 0);
if (index == 1)
ButtonImage(index, smallValue);
if (index == 2)
ButtonImage(index, smallValue);
if (index == 3)
ButtonImage(index, smallValue);
if (index == 4)
ButtonImage(index, smallValue);
if (index == 5)
ButtonImage(index, midValue);
if (index == 6)
ButtonImage(index, midValue);
if (index == 7)
ButtonImage(index, midValue);
if (index == 8)
ButtonImage(index, highValue);
if (index == 9)
ButtonImage(index, largeValue);
}
}
public void ButtonImage(int _Index, int ValueAmount)
{
if (isbought[_Index] == true)
{
BuyBtn.image.sprite = EquipImg;
PriceTag.text = "0";
}
if (isbought[_Index] == false)
{
PriceTag.text = "" + ValueAmount;
BuyBtn.image.sprite = BuyImg;
}
}
}
@LINKENN @duck @Bunny83 @Eric5h5 @whydoidoit @Mike 3 @fafase @robertbu @aldonaletto
please someone respond... pls.
Comment