**簡單的說泛型就是為了減少**量,增加開發效率的一種工具。在unity3d中如何使用泛型呢,我們來看下面的例子
//物件的父物體
public transform btnsetposi, inputsetposi, slidersetposi, dropdownsetposi;
//button陣列
public button[
] btnset;
//inputfield陣列
public inputfield[
] inputset;
//slider陣列
public slider[
] sliderset;
//dropdown陣列
public dropdown[
] dropdownset;
//分別把父物體下面的子物體新增到對應陣列中
[contextmenu
("setinit")]
void
setinit()
inputset = new inputfield[inputsetposi.childcount]
;for
(int i =
0; i < inputset.length; i++
) sliderset = new slider[slidersetposi.childcount]
;for
(int i =
0; i < sliderset.length; i++
) dropdownset = new dropdown[dropdownsetposi.childcount]
;for
(int i =
0; i < dropdownset.length; i++
)}
**中實現了乙個獲取子物體對應型別陣列的功能。
這裡我們發現每乙個型別的陣列,都要單獨的去寫乙個獲取方法,**利用率很低,如何提高**利用率。是我們這次研究的主要目的。
我們知道。unity中的型別都是基於object的,為什麼不用object呢?可以用object嗎?
當然可以。具體要看專案的**需求去做設計。object的確可以提高**利用率,但是會多乙個裝箱和拆箱的過程。會提降低**的效率。所以我們首先考慮泛型的使用。
public transform btnsetposi, inputsetposi, slidersetposi, dropdownsetposi;
public button[
] btnset;
public inputfield[
] inputset;
public slider[
] sliderset;
public dropdown[
] dropdownset;
[contextmenu
("setinit")]
void
setinit()
//建立泛型陣列
public t[
] getchildlist
(transform myparents) where t : component
//返回陣列
return myset;
}
這樣,**就簡化了。看著也很美觀。 C primer學習 泛型演算法 3
auto f const int a,const int b cout f 12,13 endl for each也是一種演算法,可以用for代替 void biggies s words,string size type sz 按長度排序 找到第乙個 auto wz find if words.b...
C 泛型集合類 3
dictionary 字典集合,儲存一系列的鍵值對 key value 可以根據鍵而不是索引來獲取值。字典中插入鍵值對時,自動記錄哪個鍵和哪個值關聯。字典中不能包含重複的鍵,如果使用add方法新增字典中已經存在的鍵時,會丟擲異常 但是使用方括號 記號法來新增的話,即使字典中已經存在,也不會丟擲異常,...
Boolan C STL與泛型程式設計 3
主要內容 本節深入剖析了各種常用容器和容器介面卡的底層支撐,容器主要分為三大類,順序容器 關聯容器 無序容器。其中主要介紹了順序容器中deque的內部實現,以及預設deque作為底層支撐的兩個容器介面卡stack和queue。並且對紅黑樹進行了深入探索,以及由它實現的set multiset map...