I save my Sprite with this code:
Code: Select all
ES3.Save<Sprite> ("SpriteTest", itemBigPic [0]);
As you can see I have a Sprite in my Inspector:
- Problem1.jpg (28.63 KiB) Viewed 4852 times
And load it with:
Code: Select all
if (ES3.KeyExists ("SpriteTest")){itemBigPic[0] = ES3.Load<Sprite> ("SpriteTest");}
But after loading, there is no sprite, or maybe it is but without any name or reference:
- Problem2.jpg (26.67 KiB) Viewed 4852 times
Also it's my Inventory Script that I want to save most of its Array variables:
Code: Select all
using UnityEngine;
using UnityEngine.UI;
using System;
public class Inventory : MonoBehaviour
{
public int Gems;
public GameObject GemText;
public float health;
public RectTransform HealthBar;
public GameObject EquipBtn;
public GameObject UnEquipBtn;
public GameObject ItemBorder;
public String ItemSelected;
public String ItemEquipedName;
public Image ItemEquipedImage;
public Image ItemEquipedBg;
String ItemEquipedCombineNeed;
GameObject ItemToBeMade;
public bool Equiped;
public int ItemNumberSelected = -1;
public const int numItemSlots = 28;
public Text ItemDescBox;
public GameObject LongTextBoxScroll;
public Text ItemLongTextBox;
public Image ItemBigPicBox;
public Image EmptyItemImage;
public AudioClip SelectSound;
public AudioClip EquipSound;
public AudioClip AddGemSound;
public AudioClip EatSound;
public AudioClip CombineSound;
public AudioClip UnEquipSound;
public AudioClip ErrorSound;
public Image EquipBtnIcon;
public Sprite UseIcon;
public Sprite WatchIcon;
public Sprite CombineIcon;
public Sprite ReadIcon;
public Sprite AddGemIcon;
public Sprite EatIcon;
public int EmptySlots = 28;
public bool[] ItemSelect = new bool[numItemSlots];
public String[] itemName = new String[numItemSlots];
public Image[] itemImages = new Image[numItemSlots];
public Image[] itemBgImages = new Image[numItemSlots];
public Button[] itemBtn = new Button[numItemSlots];
public String[] itemDesc = new String[numItemSlots];
public String[] itemType = new String[numItemSlots];
public int[] itemHealth = new int[numItemSlots];
public Sprite[] itemBigPic = new Sprite[numItemSlots];
public String[] itemText = new String[numItemSlots];
public String[] itemToCombine = new String[numItemSlots];
public GameObject[] ItemToMade = new GameObject[numItemSlots];
//public Objects[] items = new Objects[numItemSlots];
Color ItemEquipedImageEmtyColor;
bool ReadyToCombine;
//--------------------------------------------------------------------------
void Awake(){
ItemEquipedImageEmtyColor = ItemEquipedImage.color;
}
// Select Item--------------------------------
public void SelectItem(int ItemNum){
if (ItemNum < numItemSlots) {
// Unselect the rest of Items
for (int i = 0; i < ItemSelect.Length; i++) {
if (itemName [i] != "") {
itemImages [i].color = new Color (itemImages [i].color.r, itemImages [i].color.g, itemImages [i].color.b, 1);
itemBgImages [i].color = new Color (0.5f, 0.5f, 0.5f, 1);
ItemSelect [i] = false;
}
}
// Selecting Items
if (itemName [ItemNum] != "") {
// Select Item to Combine
if (ReadyToCombine == true) {
// Combine Items if they match
if (ItemEquipedCombineNeed == itemName [ItemNum]) {
AudioSource.PlayClipAtPoint (CombineSound, gameObject.transform.position);
RemoveItem (ItemSelected);
ReadyToCombine = false;
// Add New Combined Item
itemName [ItemNum] = ItemToBeMade.GetComponent<Objects>().ItemName;
itemImages [ItemNum].sprite = ItemToBeMade.GetComponent<Objects>().ItemIcon;
itemDesc [ItemNum] = ItemToBeMade.GetComponent<Objects>().ItemDesc;
itemType [ItemNum] = ItemToBeMade.GetComponent<Objects>().ItemType.ToString ();
itemHealth [ItemNum] = ItemToBeMade.GetComponent<Objects>().HealthAmount;
itemBigPic [ItemNum] = ItemToBeMade.GetComponent<Objects>().ItemImage;
if (ItemToBeMade.GetComponent<Objects>().ItemText) {itemText [ItemNum] = ItemToBeMade.GetComponent<Objects>().ItemText.text;}
itemToCombine [ItemNum] = ItemToBeMade.GetComponent<Objects>().CombineMatch;
ItemToMade [ItemNum] = ItemToBeMade.GetComponent<Objects>().AfterCombine;
itemImages [ItemNum].enabled = true;
itemImages [ItemNum].color = Color.white;
}
// Decline Combine if choosing wrong item
if (ItemEquipedCombineNeed != itemName [ItemNum] && ItemEquipedCombineNeed != "") {
ReadyToCombine = false;
AudioSource.PlayClipAtPoint (ErrorSound, gameObject.transform.position);
ItemBorder.GetComponent<Animator> ().Play ("BorderErrorItem");
}
}
// -- Change Equip Icon
if (itemType [ItemNum].ToString () == "Usable") {EquipBtnIcon.sprite = UseIcon;}
if (itemType [ItemNum].ToString () == "Eatable") {EquipBtnIcon.sprite = EatIcon;}
if (itemType [ItemNum].ToString () == "Watchable") {EquipBtnIcon.sprite = WatchIcon;}
if (itemType [ItemNum].ToString () == "Readble") {EquipBtnIcon.sprite = ReadIcon;}
if (itemType [ItemNum].ToString () == "Combinable") {EquipBtnIcon.sprite = CombineIcon;}
if (itemType [ItemNum].ToString () == "Gem") {EquipBtnIcon.sprite = AddGemIcon;}
// Selecting Items (when Not Combining)
if (ReadyToCombine == false) {
AudioSource.PlayClipAtPoint (SelectSound, gameObject.transform.position);
ItemSelected = itemName [ItemNum];
itemBgImages [ItemNum].color = new Color (0.6f, 0.7f, 0.6f, 1);
ItemDescBox.text = itemDesc [ItemNum];
ItemSelect [ItemNum] = true;
ItemNumberSelected = ItemNum;
ItemBorder.GetComponent<Image>().transform.position = itemImages [ItemNumberSelected].transform.position;
ItemBorder.GetComponent<Image>().enabled = true;
//Show Item in EquipBox
EquipBtn.SetActive (true);
ItemEquipedImage.enabled = true;
ItemEquipedImage.sprite = itemImages [ItemNum].sprite;
ItemEquipedImage.color = new Color (1, 1, 1, 0.7f);
//Unequip Previous Item
EquipBtn.SetActive (true);
Equiped = false;
UnEquipBtn.SetActive (false);
}
}
// Unselect it touched empty item box
if (itemName [ItemNum] == "") {
if (Equiped == false) {
ItemEquipedName = null;
ItemEquipedImage.sprite = EmptyItemImage.sprite;
ItemEquipedImage.color = ItemEquipedImageEmtyColor;
ItemEquipedCombineNeed = "";
EquipBtn.SetActive (false);
}
// UnSelect Items When quiting Inventory
for (int i = 0; i < ItemSelect.Length; i++) {
itemImages [i].color = new Color (itemImages [i].color.r, itemImages [i].color.g, itemImages [i].color.b, 1);
//itemBgImages [i].color = new Color (0.5f, 0.5f, 0.5f, 1);
ItemSelect [i] = false;
ItemDescBox.text = null;
ItemBorder.GetComponent<Image>().enabled = false;
}
}
}
// Unselect if touched the screen out of button place
else {
for (int i = 0; i < ItemSelect.Length; i++) {
itemImages [i].color = new Color (itemImages [i].color.r, itemImages [i].color.g, itemImages [i].color.b, 1);
itemBgImages [i].color = new Color (0.5f, 0.5f, 0.5f, 1);
ItemSelect [i] = false;
ItemDescBox.text = null;
ItemBorder.GetComponent<Image>().enabled = false;
}
}
}
//--------- Add new Item-----------------------
public void AddItem(Objects itemToAdd)
{
for (int i = 0; i < itemName.Length; i++)
{
if (itemName [i] == "") {
EmptySlots -= 1;
// propertis of item to add
//items [i] = itemToAdd.ItemPrefab;
itemName [i] = itemToAdd.ItemName;
itemImages [i].sprite = itemToAdd.ItemIcon;
itemBgImages [i].color = new Color (0.5f, 0.5f, 0.5f, 1);
itemDesc [i] = itemToAdd.ItemDesc;
itemType [i] = itemToAdd.ItemType.ToString ();
itemHealth [i] = itemToAdd.HealthAmount;
if (itemToAdd.ItemImage) {itemBigPic [i] = itemToAdd.ItemImage;}
if (itemToAdd.ItemText) {itemText [i] = itemToAdd.ItemText.text;}
if (itemToAdd.CombineMatch != "") {itemToCombine [i] = itemToAdd.CombineMatch;}
if (itemToAdd.AfterCombine) {ItemToMade [i] = itemToAdd.AfterCombine;}
// change the image and color of item slot
itemImages [i].enabled = true;
itemImages [i].color = Color.white;
return;
}
}
}
//--------- Remove Item-----------------------
public void RemoveItem (String itemToRemove)
{
for (int i = 0; i < itemName.Length; i++)
{
//Debug.Log (items[i].ItemName + " / " + itemToRemove + " / " + i + " / " + ItemNumberSelected);
if (itemName[i] == itemToRemove && i == ItemNumberSelected)
{
EmptySlots += 1;
// items[i] = null;
itemImages [i].sprite = null;
itemImages[i].enabled = false;
itemBgImages [i].sprite = EmptyItemImage.sprite;
itemBgImages [i].color = new Color (0.06f, 0.06f, 0.06f, 1);
ItemSelect [i] = false;
itemDesc [i] = "";
itemName [i] = "";
itemType [i] = "";
itemHealth [i] = 0;
itemBigPic [i] = null;
itemText [i] = "";
itemToCombine [i] = "";
ItemToMade [i] = null;
ItemDescBox.text = "";
ItemEquipedName = "";
ItemEquipedCombineNeed = "";
ItemEquipedImage.sprite = null;
ItemEquipedImage.color = ItemEquipedImageEmtyColor;
if (Equiped == true) {
ItemEquipedBg.enabled = false;
ItemEquipedImage.enabled = false;}
EquipBtn.SetActive (false);
UnEquipBtn.SetActive (false);
Equiped = false;
return;
}
}
}
////////////////////////// ---- EQUIP ITEM -----[USE-EAT-READ-WATCH]-------
public void EquipItem(){
if (itemType[ItemNumberSelected].ToString () == "Usable") {
AudioSource.PlayClipAtPoint (EquipSound, gameObject.transform.position);
ItemEquipedName = itemName [ItemNumberSelected];
ItemEquipedImage.sprite = itemImages [ItemNumberSelected].sprite;
ItemEquipedImage.color = new Color (1, 1, 1, 1);
EquipBtn.SetActive (false);
UnEquipBtn.SetActive (true);
Equiped = true;
}
// -- Watch Item
if (itemType[ItemNumberSelected].ToString () == "Watchable") {
AudioSource.PlayClipAtPoint (EquipSound, gameObject.transform.position);
ItemBigPicBox.enabled = true;
ItemBigPicBox.sprite = itemBigPic [ItemNumberSelected];
ItemEquipedName = itemName [ItemNumberSelected];
ItemEquipedImage.sprite = itemImages [ItemNumberSelected].sprite;
ItemEquipedImage.color = new Color (1, 1, 1, 1);
EquipBtn.SetActive (false);
UnEquipBtn.SetActive (true);
Equiped = false;
}
// -- Read Item
if (itemType[ItemNumberSelected].ToString () == "Readble") {
AudioSource.PlayClipAtPoint (EquipSound, gameObject.transform.position);
LongTextBoxScroll.SetActive (true);
ItemLongTextBox.enabled = true;
ItemLongTextBox.text = itemText [ItemNumberSelected];
ItemEquipedName = itemName [ItemNumberSelected];
ItemEquipedImage.sprite = itemImages [ItemNumberSelected].sprite;
ItemEquipedImage.color = new Color (1, 1, 1, 1);
EquipBtn.SetActive (false);
UnEquipBtn.SetActive (true);
Equiped = false;
}
// -- Eat Item
if (itemType [ItemNumberSelected].ToString () == "Eatable") {
if (health < 100) {
AudioSource.PlayClipAtPoint (EatSound, gameObject.transform.position);
health += itemHealth [ItemNumberSelected];
HealthBar.localScale = new Vector3 (1, health / 100, 1);
RemoveItem (ItemSelected);
ItemEquipedName = "";
ItemEquipedImage.enabled = false;
//ItemEquipedImage.sprite = EmptyItemImage.sprite;
ItemEquipedImage.color = ItemEquipedImageEmtyColor;
ItemBorder.GetComponent<Image>().enabled = false;
EquipBtn.SetActive (false);
UnEquipBtn.SetActive (false);
Equiped = false;
} else {
AudioSource.PlayClipAtPoint (ErrorSound, gameObject.transform.position);
ItemBorder.GetComponent<Animator> ().Play ("BorderErrorItem");
}
}
// -- Use GEM
if (itemType[ItemNumberSelected].ToString () == "Gem") {
AudioSource.PlayClipAtPoint (AddGemSound, gameObject.transform.position);
Gems += 1;
GemText.GetComponent<Text>().text = Gems.ToString ();
GemText.GetComponent<Animator> ().Play ("AddGemItem");
RemoveItem (ItemSelected);
ItemEquipedName = "";
ItemEquipedImage.enabled = false;
ItemEquipedImage.color = ItemEquipedImageEmtyColor;
ItemBorder.GetComponent<Image>().enabled = false;
EquipBtn.SetActive (false);
UnEquipBtn.SetActive (false);
Equiped = false;
}
// -- Combine Items
if (itemType [ItemNumberSelected].ToString () == "Combinable") {
AudioSource.PlayClipAtPoint (EquipSound, gameObject.transform.position);
ReadyToCombine = true;
ItemBorder.GetComponent<Image>().enabled = false;
ItemToBeMade = ItemToMade[ItemNumberSelected];
ItemEquipedCombineNeed = itemToCombine[ItemNumberSelected];
ItemEquipedName = itemName [ItemNumberSelected];
ItemEquipedImage.sprite = itemImages [ItemNumberSelected].sprite;
ItemEquipedImage.color = new Color (1, 1, 1, 1);
EquipBtn.SetActive (false);
UnEquipBtn.SetActive (true);
Equiped = false;
}
}
//-----------------------------------------
public void UnequipItem(){
ReadyToCombine = false;
Equiped = false;
if (itemType [ItemNumberSelected].ToString () != "Readble" && itemType [ItemNumberSelected].ToString () != "Watchable") {
ItemEquipedName = null;
ItemEquipedCombineNeed = "";
ItemEquipedImage.enabled = false;
//ItemEquipedImage.sprite = EmptyItemImage.sprite;
ItemEquipedImage.color = ItemEquipedImageEmtyColor;
// EquipBtn.SetActive (true);
ItemBorder.GetComponent<Image>().enabled = false;
// ItemNumberSelected = -1;
}
//
LongTextBoxScroll.SetActive (false);
ItemLongTextBox.enabled = false;
ItemBigPicBox.enabled = false;
AudioSource.PlayClipAtPoint (UnEquipSound, gameObject.transform.position);
if (itemType [ItemNumberSelected].ToString () == "Readble" || itemType[ItemNumberSelected].ToString () == "Watchable") {
EquipBtn.SetActive (true);
}
// UnSelect Items
for (int i = 0; i < ItemSelect.Length; i++) {
if (itemName [i] != "") {
itemImages [i].color = new Color (itemImages [i].color.r, itemImages [i].color.g, itemImages [i].color.b, 1);
itemBgImages [i].color = new Color (0.5f, 0.5f, 0.5f, 1);
}
ItemSelect [i] = false;
ItemDescBox.text = null;
}
}
//---------- Start Inventory
public void ShowInventory(){
EquipBtn.SetActive (false);
if (Equiped == true) {
ItemEquipedImage.enabled = true;
}
ItemEquipedBg.enabled = true;
}
//----------Exit Inventory
public void ExitInventory(){
if (Equiped == false) {
ItemEquipedName = null;
ItemEquipedCombineNeed = "";
ItemEquipedBg.enabled = false;
ItemEquipedBg.sprite = EmptyItemImage.sprite;
ItemEquipedImage.color = ItemEquipedImageEmtyColor;
ItemEquipedImage.enabled = false;
UnEquipBtn.SetActive (false);
}
ItemBigPicBox.enabled = false;
// UnSelect Items When quiting Inventory
for (int i = 0; i < ItemSelect.Length; i++) {
if (itemName [i] != "") {
itemImages [i].color = new Color (itemImages [i].color.r, itemImages [i].color.g, itemImages [i].color.b, 1);
itemBgImages [i].color = new Color (0.5f, 0.5f, 0.5f, 1);
}
ItemSelect [i] = false;
ItemDescBox.text = null;
ItemBorder.GetComponent<Image>().enabled = false;
}
}
void Start(){
HealthBar.localScale = new Vector3 (1, health/100, 1);
}
}