Untiy3D,C 泛型研究實戰筆記

2021-10-08 20:06:35 字數 1678 閱讀 4308

**簡單的說泛型就是為了減少**量,增加開發效率的一種工具。在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...