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)
|
public void OnEndDrag (PointerEventData eventData)
|
||||||
{
|
{
|
||||||
_offsetToMouse = Vector3.zero;
|
_offsetToMouse = Vector3.zero;
|
||||||
//Debug.Log (Input.mousePosition.y);
|
if (Input.mousePosition.y < 75) {
|
||||||
if (Input.mousePosition.y < 75)
|
|
||||||
DraggedInstance.SetActive (false);
|
DraggedInstance.SetActive (false);
|
||||||
|
inventory.AddItem (DraggedInstance.name);
|
||||||
|
}
|
||||||
DraggedInstance = null;
|
DraggedInstance = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
public class Inventory : MonoBehaviour
|
public class Inventory : MonoBehaviour
|
||||||
{
|
{
|
||||||
|
@ -9,19 +9,32 @@ public class Inventory : MonoBehaviour
|
||||||
public Item[] items = new Item[numItemSlots];
|
public Item[] items = new Item[numItemSlots];
|
||||||
public const int numItemSlots = 25;
|
public const int numItemSlots = 25;
|
||||||
|
|
||||||
private static bool created = false;
|
|
||||||
|
|
||||||
void Awake()
|
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);
|
Sprite sprite = (Resources.Load<Sprite>(itemNames[i] + "_sprite"));
|
||||||
created = true;
|
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)
|
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++)
|
for (int i = 0; i < items.Length; i++)
|
||||||
{
|
{
|
||||||
if (items[i] == null)
|
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++)
|
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;
|
items[i] = null;
|
||||||
itemImages[i].sprite = 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()
|
void Start()
|
||||||
{
|
{
|
||||||
//inv = FindObjectOfType<Inventory> ();
|
loadMonster();
|
||||||
inv.AddItem (item);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showItems()
|
public void showItems()
|
||||||
|
@ -30,13 +29,16 @@ public class MonsterManager : MonoBehaviour {
|
||||||
|
|
||||||
StringBuilder pos = new StringBuilder ();
|
StringBuilder pos = new StringBuilder ();
|
||||||
string savedString;
|
string savedString;
|
||||||
|
string equippedString = "";
|
||||||
|
|
||||||
for (int i = 0; i < monsterParts.Length; i++) {
|
for (int i = 0; i < monsterParts.Length; i++) {
|
||||||
pos = new StringBuilder ();
|
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);
|
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 ();
|
savedString = pos.ToString ();
|
||||||
PlayerPrefs.SetString(SceneManager.GetActiveScene().name + monsterParts[i].name, savedString);
|
PlayerPrefs.SetString(SceneManager.GetActiveScene().name + monsterParts[i].name, savedString);
|
||||||
}
|
}
|
||||||
|
PlayerPrefs.SetString ("Equipped", equippedString);
|
||||||
/*
|
/*
|
||||||
StringBuilder eyePos = new StringBuilder();
|
StringBuilder eyePos = new StringBuilder();
|
||||||
|
|
||||||
|
@ -78,8 +80,18 @@ public class MonsterManager : MonoBehaviour {
|
||||||
|
|
||||||
public void loadMonster ()
|
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");
|
string savedString = PlayerPrefs.GetString(SceneManager.GetActiveScene().name + "eyePosition");
|
||||||
|
|