Destaque
- Gerar link
- X
- Outros aplicativos
Marcadores
Dia 98 - Sistema de inventario #4
Certa Vez alguém disse que tentar algo sem o estar pronto causa frustação e desistência, mas como saber se está pronto ? sem se testar de vez em quando ?
Hora de refazer umas coisas, esse inventario esta me dando dor de cabeça, então vou tentar refazer ele todo :(
OBS: fiz um backup no Google drive antes... vai que cago tudo ainda mais
Replanejar aqui:
Classes
- InventarioVisualizer
- responsável pela exibição e atualização da exibição do inventário
- Inventario
- vai guardar uma lista com todos itens do inventario
- Slot
- fica no slot, objeto pai do obj com o itemholder
- vai armazenar algumas restrições. e vai avisar o inventário de mudanças de item no slot.
- ItemHolder
- armazena o obj item
- monobehavior
- é um button
- Item
- Guarda as info do item
- é um ScriptableObject
- - - - - - - -
A troca tem que envolver uma classe, "unica" pq ela precisa armazenar as variáveis de origem e destino da troca. então vai continuar como estava, e vai ser o InventarioVisualizer. mas ele não vai se comunicar com o Inventario durante a troca, apenas com o Slot que vai fazer verificacoes e vai se comunicar com o visualizer e o inventario
- - - - - - - -
Ao fazer uma troca a primeira etapa vai ser excluir os dois itens de seus lugares no inventario, os métodos de exclusão retornaram uma bool informando se a exclusão foi um sucesso.
se foi, a troca é feita, senão não é feita.
- - - - - - - -
Se o item for nulo, não tem problema. a troca ocorre do mesmo jeito, e itens nulos passam direto na verificação de restrições do slot.
- - - - - - - -
Quando clicar e segurar no itemholder:
itemholder.Drag(ele mesmo) > inventarioVisualizer.Drag(itemholder.gameobject)
o inventarioVisualizer.Drag vai cuidar de armazenar o obj em uma var global privada e vai mover ele pela tela.
Quando soltar o item encima de outro
itemholder.drop(ele mesmo) > inventarioVisualizer.Drop(itemholder.gameobject)
OBS: esse itemholder não é o que está sendo arrastado, sim o que você esta soltando o outro encima.
esse inventarioVisualizer.Drop vai cuidar de guiar as devidas verificações e realizar as trocas.
ele vai fazer isso usando o Slot.
os métodos de verificações e troca contido no slot e inventario sempre vão retornar uma bollean, para informar se está ok prosseguir com a troca.
- - - - - - - -
Slot - Classe
- Verifica se o objeto pode entrar no slot ou não, conferindo se ele obedece as restrições do slot.
- como um slot de só armas e escudos
- ou só calçados e por ai vai
- comunica o inventario da troca
remove o objeto antigo- e adiciona o novo
- e age caso os métodos de add e remove retornarem false.
- - - - - - - -
CONCLUINDO: Refiz, tá funcionando mas não esta salvando direito, na troca apenas um item está sendo salvo corretamente .-. o que simplesmente não faz sentido...
Eu até descobri onde fica o bug, mas não entendo por que ? na hora que chamo os slots para adicionar os itens, apenas um deles realmente adiciona o item na List Se eu altero a ordem, eu altero o que adiciona na List :( enfim...
Eu realmente queria terminar isso hoje, mas minha cabeça não aguenta mais, então ficará para amanhã.
PS: eu resolvi o probleminha do vídeo na hora de equipar os itens nas mãos...
PS²: acho que dessa vez, dando uma pequena planejada antes, sinto que a coisa fluiu melhor
- Gerar link
- X
- Outros aplicativos
Marcadores:
Desafio Diário
Divagações
unity
Comentários
Postar um comentário