Need Advice on how create interaction to drag items out of inventory and place them where ever you like in a room

Hi all,

New to the community and just started using Unity. I would like to build a game where you have a blank room or environment where you can drop in different pieces of furniture or equipment from an inventory. In simplest terms imagine creating a dollhouse and you have an inventory of items to fill it up with. You just drag the items out of your inventory and place them where you want pretty much the equivalent of moving game pieces I guess. (I am willing to purchase an inventory system if needed)

I know all this is probably possible in Unity the problem is I have no idea how to begin this from a lets get to building perspective in Unity. I have all of my 3D assets built, I know how to bring assets into the engine I just have no idea how to create the user interaction, i.e. moving the items around while in the game and placing them part. Any help/pointers would be greatly appreciated.

Well, that’s a complicated question.

You’re going to need a class to manage the available inventory, an interface to choose an item, and placement code to put it in 3D space.

Managing inventory in code would be simple data structures, so there are plenty of tutorials on that to get you started. And, same with the interface component; lots of tutorials.

The last part is the hardest. When a user clicks a button for an object, you want to instantiate it from a prefab reference, and have a script that will raycast into the room from the mouse position and the camera’s transform, then determine the point you want to place it. Then you need to determine the location on the object to snap to (so it doesn’t go halfway through a wall when you place it). Usually, you can determine this from the bounding volume of the object. Then it’s as simple as de-linking it from the mouse moving script when the mouse button is pressed.