If you have pickups such as ammo, as scriptable objects, can you read the data from those containers directly and display them on the UI once you pick them up? Or does it need a constructor to store the data you need?
Your question is a bit unclear. In general you can access any public scriptable object field as soon as you have a reference to this scriptable object and have values assigned. You don’t need to instantiate this object to access them. Do you mean that by “do i need a constructor”?.
As with everything i can always recommend to read the documentation as it contains good example of how to use it. Link to docu.