了解Unity的Inspector中的組件屬性
游戲?qū)ο笸ǔ:性S多組件來(lái)保證它做出正確的表現(xiàn)。比如哪轿,選擇Main Camera并注意Inspector面板。其中的一個(gè)組件就是Camera杨耙。如果他沒(méi)有這個(gè)組件,他就會(huì)喪失作為攝像頭的功能按脚。它仍然會(huì)作為一個(gè)游戲?qū)ο蟠嬖谠谀愕膱?chǎng)景中,但是它不再有攝像頭的功能了辅搬。
變量成為了組件的屬性
任何游戲?qū)ο髢?nèi)的組件只不過(guò)是用來(lái)定義一個(gè)類(lèi)的代碼,無(wú)論你或者Unity是否親手寫(xiě)了代碼堪遂。我們只不過(guò)沒(méi)有去修改這些Unity內(nèi)置代碼的權(quán)限。這意味著我們?cè)?strong>Inspector中看到的屬性只不過(guò)是一些變量而已溶褪。他們?nèi)匀淮娣胖恍?shù)據(jù)并等待著方法的調(diào)用。
Unity略微地改變著代碼文件和變量的名稱(chēng)
當(dāng)我們將我們的代碼文件添加到游戲?qū)ο笾袝r(shí)猿妈,我們的代碼在Inspector中看起來(lái)就是一個(gè)組件。Unity只對(duì)他們做了一些細(xì)小的改動(dòng)彭则。你也許注意到了當(dāng)我們向Main Camera內(nèi)添加LearningScript的時(shí)候,Unity會(huì)將它以Learning Script的命名放在Inspector面板里俯抖。Unity會(huì)在文件名稱(chēng)的中間加一個(gè)空格來(lái)分開(kāi)兩個(gè)單詞,同樣瓦胎,在變量名中也會(huì)出現(xiàn)同樣的現(xiàn)象芬萍。注意變量number1他會(huì)被顯示為Number 1,并且number2也同樣會(huì)被顯示為Number 2搔啊。Unity同樣會(huì)將首字母大寫(xiě)柬祠,以此來(lái)改變Inspector中的可讀性负芋。
在Inspector面板中修改屬性的值
你會(huì)在以下兩種情境中修改屬性的值
- 在Play模式下
- 在開(kāi)發(fā)模式下
當(dāng)你在Play模式下的時(shí)候,你的修改會(huì)立即被執(zhí)行,這對(duì)你調(diào)試和想要看到結(jié)果的時(shí)候是非常有利的芝硬。
當(dāng)你在Play模式下,你將會(huì)立即看到更改的效果拌阴。這對(duì)你調(diào)試和想要看到結(jié)果的時(shí)候是非常有利的。但是你需要記下來(lái)你的所有修改迟赃,應(yīng)為當(dāng)你停止Play模式的時(shí)候,你的修改并不會(huì)被保存下來(lái)
當(dāng)你在開(kāi)發(fā)模式下厂镇,你對(duì)屬性所做的修改都會(huì)被Unity保存下來(lái)纤壁。這意味著如果你退出Unity并再次啟動(dòng)它,這些修改仍然會(huì)被保留下來(lái)酌媒。當(dāng)然,直至你點(diǎn)擊Play之前秒咨,你并不會(huì)看到你修改的結(jié)果掌挚。
你在Inspector面板中對(duì)屬性值所做的修改并不會(huì)切實(shí)影響你的代碼雨席。改變你代碼文件的唯一途徑就是去開(kāi)發(fā)工具里面直接編輯代碼吠式。你在Inspector面板中對(duì)值做的任何改變你也需要在代碼中實(shí)現(xiàn)它們。
如果你想要去除你在Inspector面板中所做的修改特占,你可以將他們重置回你在代碼中設(shè)定的值糙置。點(diǎn)擊你代碼組件最右側(cè)的齒輪圖標(biāo)摩钙,并選擇彈出菜單中的Reset選項(xiàng)查辩。
將變量列在Inspector面板中
我確定你現(xiàn)在糾結(jié)于變量聲明語(yǔ)句開(kāi)頭的public是什么意思:
public int number1 = 2;
這意味著這個(gè)變量將是可見(jiàn)并且容易得到的胖笛。他將會(huì)以屬性的形式顯示在Inspector面板中宜岛,所以你可以操作這個(gè)變量中存放的值。這也意味著它可以通過(guò)點(diǎn)句法來(lái)使其他代碼可以方便的調(diào)用它萍倡。你將會(huì)在第六章中學(xué)到關(guān)于點(diǎn)句法的更多知識(shí)。
動(dòng)手時(shí)間
并不是所有的變量都要是public的阱佛。如果變量并不需要在Inspector面板中顯示或者并不希望被其他代碼調(diào)用帖汞,他也不會(huì)去讓場(chǎng)景中的Inspector被雜亂的屬性所充斥凑术。在LearningScript中,做以下幾步:
-
將第六行改為:
private int number1 = 2;
-
將第七行改為:
int number2 = 9;
保存文件
在Unity中選擇Main Camera
發(fā)生了什么淮逊?
你將會(huì)注意到,Inspector面板中的屬性泄鹏,Number 1和Number 2都不見(jiàn)了
- 第六行:
private int number1 = 2;
前面的單詞明確地生命變量是private,所以他不再會(huì)作為屬性出現(xiàn)在Inspector面板中舶治,現(xiàn)在他是一個(gè)私有的變量并存儲(chǔ)數(shù)據(jù)。 - 第七行:
int number2 = 9;
這個(gè)變量也變得不可見(jiàn)了歼疮,但是你并沒(méi)有明確地生命他是private诈唬。
如果你變量是否是public或private感到疑惑韩脏,那么铸磅,變量是private的。
明確聲明變量究竟是public還是private是一個(gè)好習(xí)慣阅仔。
所以現(xiàn)在當(dāng)你點(diǎn)擊Play時(shí),代碼就像之前定義的一樣運(yùn)行了八酒。只不過(guò)你現(xiàn)在沒(méi)法再在Inspector面板中操作它們了。