比如你用Java寫了一個(gè)自己的class叫MyClass佩厚,然后在另一個(gè)文件里創(chuàng)建了一個(gè)這個(gè)對(duì)象:
MyClass classobject = new MyClass();
這里面的MyClass相當(dāng)于你上面說的Transform茵瘾,是類名索抓。而transform是Transform類的實(shí)例倦挂,相當(dāng)于這里的classobject。所以你不能說Transform.position进倍,而要指明是這個(gè)對(duì)象的transform.position。在Unity里面审磁,場景中的每個(gè)對(duì)象都有一個(gè)類型為Gameobject和Transform的實(shí)例,分別名為gameobject和transform岂座。gameobject主要負(fù)責(zé)這個(gè)物體上的一些部件之類的東西态蒂,而transform則負(fù)責(zé)了這個(gè)對(duì)象的位置、旋轉(zhuǎn)费什、縮放等信息钾恢。可視化的話就是面板里面的這個(gè)部分
GameObject go,parent;
Transform t = go.transform;
t.parent = parent.transform;//使parent成為go的父級(jí)
activeInHierarchy狀態(tài)代表物體在場景中的實(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è)迭代器,這是過去的容器端值辕漂。如果容器為空呢灶,然后begin()= =end()。
private是成員修飾符钉嘹,不能用于類的鸯乃;internal類和成員都可以修飾。而且兩個(gè)的范圍也不一樣跋涣,internal的成員(非類)在同一個(gè)命名空間下其他類可以訪問缨睡,private只能本類。這樣看界限劃分也就是同一類陈辱、同一程序集和所有
對(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)開辟內(nèi)存,開啟了較大一塊內(nèi)存作為緩存媚送,即所謂的Reserved內(nèi)存中燥,而運(yùn)行時(shí),unity所使用的內(nèi)存首先是向Reserved中來申請(qǐng)內(nèi)存塘偎,當(dāng)不使用時(shí)也是先向Reserved中釋放內(nè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)偏窝。這部分我們無法控制收恢。
- mono進(jìn)行內(nèi)存申請(qǐng)和釋放時(shí),會(huì)向底層unity進(jìn)行內(nèi)存的申請(qǐng)和釋放祭往。
- unity自身的內(nèi)存池并不會(huì)像gc算法一樣提供內(nèi)存回收伦意,釋放。