This week I worked on the GUI and loot, I made an inventory screen with a rudimentary paper doll of the character to figure out how this would handle. I also wanted to be able to find items in the game world and move them from and to the inventory.
Talking to one of my NPCs
I decided I wanted to make all items take up one square both for simplicity, but also because playing the “move and rotate to fit all items” game was not interesting to me. I don’t want to waste time trying to figure out how many items I can carry via a grid placement puzzle.
Making an ARPG is already complicated, why complicate things I have no interest in, right?
Moving objects from a chest to the inventory
I adjusted my paper doll slots a bit as well
I was already using two Canvases in Unity to handle the GUI in one (Overlay mode) and Hit point display, mob/NPC name display with the other (World Space Canvas), so I wanted items to be in the 3d world, but I really didn’t have an interest in scattering everything on the ground regardless of the item. So I decided to make a 3D UI element that would carry the items found in a chest or corpse for example. Now all I had to do was to use my inventory code to move things around, right?
Well no, you have to be able to Raycast on both Canvases, sort through the results and have shared space for the object if you want this to be seamless and not having to create/destroy objects all the time. I made it work, you can seamlessly move items from one type of a container to another and it’s smooth and works regardless of resolution.
So my script handles raycasting on both Canvases, sorting through the results using Lists, recognizing the item type (using Tags) and what to do with it based on that.
I added a model for the Portals, I got this off the Asset Store along with a few others which you can find here: Elements of the Environment
Going through a portal
I also added sounds for the portal and item pick-up and placement, as well as the chest and such. They are all currently placeholders, but the game becomes 50% more satisfying.
This all led me to update the Quest log window a bit as well as the main UI bar.
Sweet GUI updates on the Quest log
Then I decided to make my main character match my Script more, removed the clothing and left him with a loincloth, which I also reflected in the paper-doll.
Finally I made the loincloth into actual cloth in the game itself.