Monsters + inventory working
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 4 KiB |
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
@ -36,9 +36,10 @@ public class DragAndDrop : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndD
|
|||
public void OnEndDrag (PointerEventData eventData)
|
||||
{
|
||||
_offsetToMouse = Vector3.zero;
|
||||
//Debug.Log (Input.mousePosition.y);
|
||||
if (Input.mousePosition.y < 75)
|
||||
if (Input.mousePosition.y < 75) {
|
||||
DraggedInstance.SetActive (false);
|
||||
inventory.AddItem (DraggedInstance.name);
|
||||
}
|
||||
DraggedInstance = null;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using UnityEngine.UI;
|
||||
|
||||
using System.Text;
|
||||
|
||||
public class Inventory : MonoBehaviour
|
||||
{
|
||||
|
@ -9,19 +9,32 @@ public class Inventory : MonoBehaviour
|
|||
public Item[] items = new Item[numItemSlots];
|
||||
public const int numItemSlots = 25;
|
||||
|
||||
private static bool created = false;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
if (!created)
|
||||
//PlayerPrefs.SetString("inventory", "");
|
||||
string savedString = PlayerPrefs.GetString("inventory");
|
||||
|
||||
string[] itemNames = savedString.Split(' ');
|
||||
Debug.Log (itemNames [itemNames.Length-1]);
|
||||
for (int i = 0; i < itemNames.Length - 1; i++)
|
||||
{
|
||||
DontDestroyOnLoad(this.gameObject);
|
||||
created = true;
|
||||
Sprite sprite = (Resources.Load<Sprite>(itemNames[i] + "_sprite"));
|
||||
Item itm = new Item ();
|
||||
itm.name = itemNames [i];
|
||||
itm.sprite = sprite;
|
||||
items[i] = itm;
|
||||
itemImages[i].sprite = itm.sprite;
|
||||
itemImages[i].enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
public void AddItem(Item itemToAdd)
|
||||
{
|
||||
StringBuilder invList = new StringBuilder ();
|
||||
invList.Append(PlayerPrefs.GetString ("inventory"));
|
||||
invList.Append(itemToAdd.name).Append(" ");
|
||||
PlayerPrefs.SetString ("inventory", invList.ToString());
|
||||
|
||||
for (int i = 0; i < items.Length; i++)
|
||||
{
|
||||
if (items[i] == null)
|
||||
|
@ -34,13 +47,42 @@ public class Inventory : MonoBehaviour
|
|||
}
|
||||
}
|
||||
|
||||
public void RemoveItem (Item itemToRemove)
|
||||
public void AddItem(string itemName)
|
||||
{
|
||||
GameObject instance = (GameObject)Instantiate(Resources.Load(itemToRemove.name));
|
||||
StringBuilder invList = new StringBuilder ();
|
||||
invList.Append(PlayerPrefs.GetString ("inventory"));
|
||||
invList.Append(itemName).Append(" ");
|
||||
PlayerPrefs.SetString ("inventory", invList.ToString());
|
||||
|
||||
for (int i = 0; i < items.Length; i++)
|
||||
{
|
||||
if (items[i] == itemToRemove)
|
||||
if (items[i] == null)
|
||||
{
|
||||
Sprite sprite = (Resources.Load<Sprite>(itemName + "_sprite"));
|
||||
Item itm = new Item ();
|
||||
itm.name = itemName;
|
||||
itm.sprite = sprite;
|
||||
items[i] = itm;
|
||||
itemImages[i].sprite = itm.sprite;
|
||||
itemImages[i].enabled = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveItem (Item itemToRemove)
|
||||
{
|
||||
StringBuilder invList = new StringBuilder ();
|
||||
invList.Append(PlayerPrefs.GetString ("inventory"));
|
||||
int index = invList.ToString ().IndexOf (itemToRemove.name + " ");
|
||||
invList.Remove(index, (itemToRemove.name + " ").Length);
|
||||
PlayerPrefs.SetString ("inventory", invList.ToString());
|
||||
GameObject instance = (GameObject)Instantiate(Resources.Load(itemToRemove.name));
|
||||
instance.name = itemToRemove.name;
|
||||
|
||||
for (int i = 0; i < items.Length; i++)
|
||||
{
|
||||
if (items[i].name == itemToRemove.name)
|
||||
{
|
||||
items[i] = null;
|
||||
itemImages[i].sprite = null;
|
||||
|
@ -49,4 +91,30 @@ public class Inventory : MonoBehaviour
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveItem (string itemName)
|
||||
{
|
||||
StringBuilder invList = new StringBuilder ();
|
||||
invList.Append(PlayerPrefs.GetString ("inventory"));
|
||||
int index = invList.ToString ().IndexOf (itemName + " ");
|
||||
invList.Remove(index, (itemName + " ").Length);
|
||||
PlayerPrefs.SetString ("inventory", invList.ToString());
|
||||
GameObject instance = (GameObject)Instantiate(Resources.Load(itemName));
|
||||
instance.GetComponent<DragAndDrop> ().inventory = this;
|
||||
instance.name = itemName;
|
||||
|
||||
for (int i = 0; i < items.Length - 1; i++)
|
||||
{
|
||||
if (items [i] != null) {
|
||||
Debug.Log (items [i].name + " == " + itemName);
|
||||
if (items [i].name == itemName) {
|
||||
items [i] = null;
|
||||
itemImages [i].sprite = null;
|
||||
itemImages [i].enabled = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
34
MoCha/Assets/Scripts/ItemSlotBehavior.cs
Normal file
|
@ -0,0 +1,34 @@
|
|||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using Image = UnityEngine.UI.Image;
|
||||
|
||||
public class ItemSlotBehavior : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
|
||||
{
|
||||
public static GameObject DraggedInstance;
|
||||
public Inventory inventory;
|
||||
|
||||
Vector3 _startPosition;
|
||||
Vector3 _offsetToMouse;
|
||||
float _zDistanceToCamera;
|
||||
|
||||
#region Interface Implementations
|
||||
|
||||
public void OnBeginDrag (PointerEventData eventData)
|
||||
{
|
||||
DraggedInstance = gameObject;
|
||||
Debug.Log ("Removing: " + DraggedInstance.GetComponent<Image> ().sprite.name.Remove (DraggedInstance.GetComponent<Image> ().sprite.name.Length - 7));
|
||||
inventory.RemoveItem(DraggedInstance.GetComponent<Image>().sprite.name.Remove(DraggedInstance.GetComponent<Image>().sprite.name.Length-7));
|
||||
}
|
||||
|
||||
public void OnDrag (PointerEventData eventData)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void OnEndDrag (PointerEventData eventData)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
13
MoCha/Assets/Scripts/ItemSlotBehavior.cs.meta
Normal file
|
@ -0,0 +1,13 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 062d9f417b017b445bd5b92d657b31d1
|
||||
timeCreated: 1524730867
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -13,8 +13,7 @@ public class MonsterManager : MonoBehaviour {
|
|||
|
||||
void Start()
|
||||
{
|
||||
//inv = FindObjectOfType<Inventory> ();
|
||||
inv.AddItem (item);
|
||||
loadMonster();
|
||||
}
|
||||
|
||||
public void showItems()
|
||||
|
@ -30,13 +29,16 @@ public class MonsterManager : MonoBehaviour {
|
|||
|
||||
StringBuilder pos = new StringBuilder ();
|
||||
string savedString;
|
||||
string equippedString = "";
|
||||
|
||||
for (int i = 0; i < monsterParts.Length; i++) {
|
||||
pos = new StringBuilder ();
|
||||
pos.Append(GameObject.Find(monsterParts[i].name).transform.position.x).Append(" ").Append(GameObject.Find(monsterParts[i].name).transform.position.y).Append(" ").Append(GameObject.Find(monsterParts[i].name).transform.position.z);
|
||||
equippedString = equippedString + monsterParts [i].name + " ";
|
||||
savedString = pos.ToString ();
|
||||
PlayerPrefs.SetString(SceneManager.GetActiveScene().name + monsterParts[i].name, savedString);
|
||||
}
|
||||
PlayerPrefs.SetString ("Equipped", equippedString);
|
||||
/*
|
||||
StringBuilder eyePos = new StringBuilder();
|
||||
|
||||
|
@ -78,8 +80,18 @@ public class MonsterManager : MonoBehaviour {
|
|||
|
||||
public void loadMonster ()
|
||||
{
|
||||
string savedString;
|
||||
string[] values;
|
||||
|
||||
string equippedString = PlayerPrefs.GetString("Equipped");
|
||||
string[] equipped = equippedString.Split (' ');
|
||||
|
||||
for (int i = 0; i < equipped.Length - 1; i++) {
|
||||
string savedString = PlayerPrefs.GetString(SceneManager.GetActiveScene().name + equipped[i]);
|
||||
string[] values = savedString.Split ();
|
||||
GameObject instance = (GameObject)Instantiate(Resources.Load(equipped[i]));
|
||||
instance.name = equipped [i];
|
||||
instance.GetComponent<DragAndDrop> ().inventory = inv;
|
||||
instance.transform.position = new Vector3(float.Parse(values[0]),float.Parse(values[1]),float.Parse(values[2]));
|
||||
}
|
||||
|
||||
/*
|
||||
string savedString = PlayerPrefs.GetString(SceneManager.GetActiveScene().name + "eyePosition");
|
||||
|
|