How can I display a ScriptableObject as a list inGame?

I want to make an Inventory system similar to that of The Witcher 3 where I can approach a chest and open it giving me a list of the Items stored inside. I want to be able to either take all or to choose them separately with different controls. How do I best do this? I need it to be both mouse/keyboard and Gamepad compatible.

I have never played Witcher 3 but based on the description, you need…

A trigger for the chest.
Which when triggered, will open up chest contents as GUI.

That’s basically it.

Also, if you want a it to work with a gamepad, you can just add a variable that selects/highlights the GUI buttons. You can then select the buttons based on the gamepad’s movements and the positions of the other buttons. You might need to write a custom class that allows Joysticks controls to be implemented.

You’ll have to figure out the rest by yourself. We can tell you the approach to make it possible but you’ll have to code it yourself.