how to create a gui menu?

What Im pointing here is that I want to create a menu that when I press a specific button like “E”, a mini window will show on your screen which is your item storage… thanks

You’d probably want some kind of script looking for inputs that calls for actions to happen based on button presses (“E” may trigger your item storage, “M” for a mini map, etc.). You can check for button presses with the Input class with GetButtonDown(). Unity Input documentation

You can do GUI menus a few different ways in Unity. You can use the built in UnityGUI class (using the GUI class: Unity GUI documentation) but it is quite inefficient. If you’re putting this game on phones, or even shooting for lower-end machines, you may want to consider other methods of setting up your GUI.

A popular alternative is to use GUITextures and GUITexts to create menus. Each texture or text take 1 draw call, which can add up for mobile devices. As long as your menus are not complex, you could use this method since you should only be showing one menu at a time. Unity GUITexture documentation

If you use GUITextures, the easiest way to have multiple different menus that show/hide is to sort your menus in the Hierarchy tab. So, let’s say you have your items storage screen. In your Hierachy you’d probably want something like this:

ItemStorage  (blank gameObject)
- Background Texture (GuiTexture)
- Close Button (GuiTexture)
- Window text (GuiText)

The ItemStorage object can be used to control showing or hiding that item menu. By using GameObject.SetActiveRecursively(bool), you can turn all the objects childed to ItemStorage gameObject to active or inactive. An inactive object will not be shown and will not run attached scripts. So, when set your ItemStorage object to inactive using SetActiveRecursively(), your menu will hide. And when you set it to active, it will appear.

One issue with this is if there are childed objects that you do not want to show. You could set these individual objects to be inactive after calling SetActiveRecursively().

There are likely other ways to create your in-game menus (I’ve used Brady’s SpriteManager to create UIs on mobile devices where draw calls are precious). I’d encourage you to research the different options, find their pros/cons, and decide which would work best for your game. GUITextures are easy to implement and not bad if your draw calls are not high.