Así que me puse manos a la obra he hice esto:
Código
using UnityEngine; using System.Collections; //ItemDataBase public class ItemScript : MonoBehaviour { private GameObject LoadItemPrefab(string name) { return (GameObject)Resources.Load ("prefabs/Items/"+name); } private Texture LoadItemTex(string name) { return (Texture)Resources.Load ("textures/Items/"+name); } void Start() { InventoryItem preset; preset.id = 1; preset.itemname = "Ring2"; preset.DisplayName = "Ring of Gods"; preset.itemtex = LoadItemTex (preset.itemname); preset.worldObject = LoadItemPrefab (preset.itemname); inv.AddNewItem(preset, preset.itemname); //Aquí se supone que es donde se crea el Item, esto es llamado antes que la clase GameGUI para que el se inserten los Items en el Diccionario.... } } //Item Class public class InventoryItem { public GameObject worldObject; public int id; public string itemname; public string DisplayName; public Texture itemtex; public string itemtype; public string equipmenttype; public string usable; public float itemweight; public bool droppable; public Transform itemmodel; public int itemstacksize; public int itemstacklimit; public bool showStack; public int bagsize; public bool showBag; public InventoryItem[] BagItem; } public class Inventory { public void AddNewItem(InventoryItem item, string name) { itemsBase.Add (name, item); } public InventoryItem FindItem(string name) { return itemsBase[name]; } } public class GameGUI : MonoBehaviour { public void Start() { //Y en el slots 3 se añade el Item Ring2... InventorySlots[3] = FindItem("Ring2"); //Aquí es donde salta la excepción de que no se encontró la Key en el Diccionario. } }
Tampoco le puedo hacer debug al Diccionario por que mi IDE (la que viene por defecto con Unity) es Mono-Develop, y bueno paso de cambiar de IDE al Unity porque es un montón de movidas porque tiene sus propias clases Inheritadas y es un follón.... Cambia mucho el code, y si tengo alguna duda, pues tengo que ir a lo Hardcore sin poder poner Ayuda en la comunidad oficial...
Así que, porque se supone que no encuentra la Key si la función start de la clase ItemScript se llama antes de que se pida la información sobre dicho diccionario.... ??
Un saludo.