Make variable visible in inspector

I have class (inherited from monobehaviour) with public variable of type “Item”, it’s also my custom class, but not inherited from monobehaviour (and must not, in my understanding of my project structure), so i can’t make this variable visible in inspector, so i can set which “item” i want to be in object with this script from start, any solutions?

You need to attach the Serializable attribute

public class MyClass
    public int value; // will show
    [SerializeField] private int serPrivValue; // will show
    [SerializeField] private int serProtValue; // will show      

    private int privValue; // will not show
    protected int protValue; // will not show

moderating here was too long, i already got answer on other forum, answer is: make non-inherited class inherited from ScriptableObject and then use CreateAssetMenu so i can choose which object i want to be in my monobehaviour script