一、故事背景

1.我画了一幅画,把它放在室外,所有人都可以看见这个画,所有人都可以对这个画进行修改。

C# 通俗讲解Public、Private以及Protected、[HideInInspector]、[SerializeField]的区别-LMLPHP

2.我非常非常努力,赚了一大笔钱,这笔钱,只能我和我的子孙后代用,但如果我的孩子需要传给他们的孩子,也可以用。

C# 通俗讲解Public、Private以及Protected、[HideInInspector]、[SerializeField]的区别-LMLPHP

3.我娶了一个媳妇,她只是我的,不能给别人,也不能被自己的孩子继承(不要杠,杠就是你是对的!)

以上三种情况,我们在代码里也会遇见。


二、Public、Protected以及Private
三、unity面板里的Public、Protected以及Private

如果你是在unity里写的,public和其他俩还有一个重要的区别,就是public是可以在面板里被看见的,其他两个不可以。

C# 通俗讲解Public、Private以及Protected、[HideInInspector]、[SerializeField]的区别-LMLPHP

四、[HideInInspector]、[SerializeField]的区别

在上一条的情况下,我们在Unity里面使用,会出现新的需求:

1.(public)我还是愿意让所有代码都调用到,都可以修改,可是,我不想再面板上看见它。那就在代码上面加上[HideInInspector],意思是,在面板中隐藏

    [HideInInspector]
    public int apple = 10;

2.(Protected、Private)其他功能我想保持不变,可我希望能在面板上看见,在面板上改动它。

那就在代码上面加上[SerializeField],意思是,在面板中显示并可以操作

    [SerializeField]
    protected int apple2 = 10;

    [SerializeField]
    private int apple3 = 10;
12-13 14:02