比如你用Java寫(xiě)了一個(gè)自己的class叫MyClass,然后在另一個(gè)文件里創(chuàng)建了一個(gè)這個(gè)對(duì)象:
MyClass classobject = new MyClass();
這里面的MyClass相當(dāng)于你上面說(shuō)的Transform,是類(lèi)名。而transform是Transform類(lèi)的實(shí)例,相當(dāng)于這里的classobject。所以你不能說(shuō)Transform.position,而要指明是這個(gè)對(duì)象的transform.position。在Unity里面,場(chǎng)景中的每個(gè)對(duì)象都有一個(gè)類(lèi)型為Gameobject和Transform的實(shí)例,分別名為gameobject和transform。gameobject主要負(fù)責(zé)這個(gè)物體上的一些部件之類(lèi)的東西,而transform則負(fù)責(zé)了這個(gè)對(duì)象的位置、旋轉(zhuǎn)、縮放等信息??梢暬脑?huà)就是面板里面的這個(gè)部分
GameObject go,parent;
Transform t = go.transform;
t.parent = parent.transform;//使parent成為go的父級(jí)
activeInHierarchy狀態(tài)代表物體在場(chǎng)景中的實(shí)際的active狀態(tài)。實(shí)際上代表的是物體及其所有祖先物體的activeSelf狀態(tài)。而activeSelf對(duì)應(yīng)于其在inspector中的checkbox是否被勾選
activeSelf狀態(tài)代表物體自身的activeSelf狀態(tài),所以當(dāng)物體本身activeSelf為true,而其所有祖先物體的activeSelf狀態(tài)不全為true時(shí),這個(gè)物體的activeInHierarchy狀態(tài)為false。
begin()返回的迭代器在容器的第一個(gè)元素。end()返回一個(gè)迭代器,這是過(guò)去的容器端值。如果容器為空,然后begin()= =end()。
private是成員修飾符,不能用于類(lèi)的;internal類(lèi)和成員都可以修飾。而且兩個(gè)的范圍也不一樣,internal的成員(非類(lèi))在同一個(gè)命名空間下其他類(lèi)可以訪問(wèn),private只能本類(lèi)。這樣看界限劃分也就是同一類(lèi)、同一程序集和所有
對(duì)于排序中拖拽物體滑動(dòng)用到ui drag scrollview時(shí),需要加box colider.
關(guān)于協(xié)程
協(xié)程不是線程,協(xié)程的本質(zhì)還不清楚。
在協(xié)程內(nèi)部停掉用yield break
yield return (int 型數(shù)字,bool值,null)都是等待下一幀再繼續(xù)執(zhí)行
1&2&3. Used Total和Reserved 均是物理內(nèi)存,其中Reserved是unity向系統(tǒng)申請(qǐng)的總內(nèi)存,Unity底層為了不經(jīng)常向系統(tǒng)申請(qǐng)開(kāi)辟內(nèi)存,開(kāi)啟了較大一塊內(nèi)存作為緩存,即所謂的Reserved內(nèi)存,而運(yùn)行時(shí),unity所使用的內(nèi)存首先是向Reserved中來(lái)申請(qǐng)內(nèi)存,當(dāng)不使用時(shí)也是先向Reserved中釋放內(nèi)存,從而來(lái)保證游戲運(yùn)行的流暢性。當(dāng)Reserved中空余內(nèi)存不夠程序下一次申請(qǐng)內(nèi)存的大小時(shí),Reserved就會(huì)重新向系統(tǒng)申請(qǐng)內(nèi)存。同時(shí),當(dāng)Used Total向Reserved釋放一定內(nèi)存后,Reserved也會(huì)將一部分內(nèi)存釋放會(huì)系統(tǒng)。這部分我們無(wú)法控制。
- mono進(jìn)行內(nèi)存申請(qǐng)和釋放時(shí),會(huì)向底層unity進(jìn)行內(nèi)存的申請(qǐng)和釋放。
- unity自身的內(nèi)存池并不會(huì)像gc算法一樣提供內(nèi)存回收,釋放。