一、故事背景
1.我画了一幅画,把它放在室外,所有人都可以看见这个画,所有人都可以对这个画进行修改。
2.我非常非常努力,赚了一大笔钱,这笔钱,只能我和我的子孙后代用,但如果我的孩子需要传给他们的孩子,也可以用。
3.我娶了一个媳妇,她只是我的,不能给别人,也不能被自己的孩子继承(不要杠,杠就是你是对的!)
以上三种情况,我们在代码里也会遇见。
二、Public、Protected以及Private
如果我在一个代码里写了public int apple;
那么,这个apple是其他代码也可以调用到的,甚至可以更改。
如果我在一个代码里写了protected int apple;
那么,这个apple只能被现在这个代码和继承了自己的代码使用和更改。
如果我在一个代码里写了Private int apple;
那么,这个apple只能被现在这个代码使用和更改。
三、unity面板里的Public、Protected以及Private
如果你是在unity里写的,public和其他俩还有一个重要的区别,就是public是可以在面板里被看见的,其他两个不可以。
四、[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;