PauLinhu221 Posted May 1, 2021 at 04:47 PM Report Share #622176 Posted May 1, 2021 at 04:47 PM Boas programadores, estou a desenvolver um jogo no unity e uma das partes fundamentais desse jogo é o inventário. Aqui está uma pequena contextualização de código: //Item.cs public class Item{} //Vestige.cs public class Vestige : Item{} //VestigeBag.cs public class VestigeBag: Item { //Um VestigeBag requer um objeto do tipo Vestige e um objeto do tipo Bag Vestige vestige; Bag bag; public VestigeBag(Vestige vestige, Bag bag) { this.vestige=vestige; this.bag=bag; } } Sendo assim, para instanciar um objeto do tipo VestigeBag (saco de vestígios) seria necessário um objeto do tipo Vestige e um do tipo Bag. *O player quando recolhe um Vestige fica sem o saco e recebe um VestigeBag O Vestige é um item que está no mapa, porém o player tem de ter um Bag no inventário para poder recolher o Vestige do mapa. O inventário está feito numa lista do tipo Item. Estou a tentar adicionar o VestigeBag ao inventário do player desta forma: //Inventory.cs public class Inventory { public List<Item> itemList; public Inventory() { itemList = new List<Item>(); } public void AddItem(string item, Inventory playerInventory) { if(item=="VestigeBag") itemList.Add(new VestigeBag(new Vestige(), playerInventory.GetItem("Bag"))); } } //player.cs (...) inventory.AddItem("VestigeBag", inventory); //inventário é transportado como argumento para a funcao ter acesso ao inventario do player (para remover o Bag) (...) A função GetItem() serviria para encontrar e retornar o objeto requisitado (neste caso o Bag) presente no inventário do jogador, para o incluir na instancia do objeto VestigeBag: public Item GetItem(string req_item) { foreach(Item item in GetItemList()) { //A func GetItemList() retorna lista do inventário if(item.GetType().Name==req_item) { return item; } } return null; } O problema está onde se chama a função para obter o item, que retorna um objeto do tipo Item e não do tipo bag, o que origina o erro: Cannot convert from 'Item' to 'Bag' Se alguém me pudesse dar uma mãozinha ficaria agradecido, já estou a bater a cabeça em todos os conceitos de POO e ainda n resolvi isto. Antecipadamente grato! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now