MAKAR | AR/VR/MR 教學

教學

陣列

陣列

陣列是一種數據結構,用於存儲一組相同類型的數據,並通過索引快速訪問每個元素,就像一排盒子,每個盒子都裝著相同類型的東西,而且您可以透過編索引找到每個盒子,方便地管理一組相似的資料,例如一連串的數字或文字。下面將說明各個與陣列相關的邏輯積木。
 
 
內容目錄

 

 


建立空陣列

 

說明:當建立空陣列時就會自動新增一個變數 myList。

 

 

 

添加

 

說明:將指定的內容添加到陣列裡。

 

 

範例:我們舉一個結合「建立空陣列」及「添加至陣列」的例子。

 

第一部分:

 

首先,我們在場景中建立三個 Cube,名稱分別是 Cube、Cube(1)、Cube(2),接著建立一個空陣列,此時已產生變數 myList。通常陣列適合處理大量的資訊,這次的範例我們先以三個 Cube 為例。

 

再拉「添加」的積木並設定為「添加"Cube"至myList」,將第一個名為「Cube」的物件加入至 myList 中。

 

接著,拉「指定間格迴圈」積木並設定為「重複執行 i 從 1 到 2 間隔 1」,底下放上「添加至陣列」積木,搭配組合文字設定為「添加 組合文字 “Cube (“ 、i、”)” 至 myList」,將第二、三個名為「Cube(1)」和「Cube(2)」的物件加入至  myList 中。

 

第二部分:

 

最後,我們拉「點擊執行」積木,欲設定點擊按鈕後三個 Cube 一同往前走,再拉「指定間格迴圈」積木並設定為「重複執行 i 從 0 到 2 間隔 1」,底下放上「秒數內移動物件」積木,搭配「取得名稱為 "Sphere" 形狀物件」積木,將其設定為「在 1 秒內移動取得名稱為 myList 中的物件 i 2 米向前」

 

為何是設定 0 到 2?

 

積木中的 0 到 2 是指物件的索引,索引是指陣列中每個元素的位置標識,它是從零開始的整數,我們現在的元素有〔Cube, Cube(1), Cube(2)〕,所以對應的索引便會是:

 

Cube 是索引 0,表示在陣列中的第一個位子、

Cube(1) 是索引 1,表示在陣列中的第二個位子、

Cube(2) 是索引 2,表示在陣列中的第三個位子。

 

因此我們才會設定 0 至 2 的數字。

 

所以可以想像,當今天的數據資料龐大又必須同時控制時,陣列就是一個很好使用的功能。




▲ 利用陣列同時控制三個物件

 



 


為了更方便理解陣列的功能,接下來陣列的各項範例,我們使用「指定間格迴圈」積木,設定為「重複執行 i 從 1 到 5 間隔 1」,底下新增陣列的「添加」積木,設定為「添加 i 至 myList」,到這裡我們已建立了 1~ 5 的資料到 myList 陣列之中

 

索引數字的排列為:

 

索引:0、1、2、3、4

數字:1、2、3、4、5

 

藉由接下來的範例,您會更加清楚索引與數字的關係,並搭配除錯積木檢驗,明白各個積木運作出來的數據。
 


 

 

 

組成

 

說明:將多個元素組成在一起的資料結構。



 

範例:我們建立一個空陣列,此時產生了陣列 myList,接著拉「組成」積木,在裡面建立1、2、3,因此現在 myList 中有1、2、3 三個數值。


  
 

插入

 

說明:在已建立的陣列中將元素插入至相應的位置。



 

範例:建立「插入」積木並設定成「添加 6 至 myList 的 3」,意思是指數字 6 要插入至索引 3——

 

插入前

索引:0、1、2、3、4

數字:1、2、3、4、5

 

插入後

索引:0、1、2、3、4、5

數字:1、2、3、6、4、5

 


 


 

 

刪除

 

說明:在已建立陣列中刪除其中一個元素。

 

 

範例:建立「刪除」積木並設定成「從 myList 刪除物件 0」,意思是指索引 0 的數字會被刪除,但索引 0 仍在,後面的數字往前遞補——

 

刪除前

索引:0、1、2、3、4

數字:1、2、3、4、5

 

刪除後

索引:0、1、2、3

數字:2、3、4、5




 


 

替換

 

說明:在某個元素位置替換成新的元素。

 

 

範例:建立「替換」積木並設定成「用 2 替換 myList 中的 0」,意思是指索引 0 的數字會替會成 2——

 

替換前

索引:0、1、2、3、4

數字:1、2、3、4、5

 

替換後

索引:0、1、2、3、4

數字:2、2、3、4、5

 


 



 

提取

 

說明:從特定的範圍提取某個元素。

 

 

由於「提取」積木並不是非獨立的缺口積木,因此需要放在其他積木當中才能發揮提取的作用。請參考上面「添加」積木的範例,在「秒數內移動物件」積木中有使用到提取積木。



 

提取並刪除

 

說明:從特定的範圍提取某個元素並刪除。

 

 

範例:由於「提取並刪除」積木並不是非獨立的缺口積木,因此我們把它放進除錯積木,並設定成「在 myList 中選擇物件 0 並且刪除」,意思是指從這個範圍中提取索引 0 的數字並且刪除,但索引 0 仍保留,後面數字往前遞補。為了檢驗這件事,我們直接使用除錯檢驗 myList 中的資料——

 

提取並刪除前

索引:0、1、2、3、4

數字:1、2、3、4、5

 

提取並刪除後

索引:0、1、2、3

數字:2、3、4、5

 




 

檢驗資料的索引

 

說明:確認資料位在哪個索引。

 

 

範例:由於「檢驗索引資料」積木並不是非獨立的缺口積木,因此我們把它放進除錯積木,並設定成「myList 陣列中 3 的索引」,我們可得知數字 3 位在索引 2——

 

索引:0、1、2、3、4

數字:1、2、3、4、5


 


 

檢驗資料是否在陣列中

 

說明:在已建立的陣列中,確認資料是否在裡面。

 

 

範例:由於「檢驗資料是否在陣列中」積木並不是非獨立的缺口積木,因此我們把它放進除錯積木,並設定成「myList 包含 10 嗎?」,意思是確認 myList 陣列中是否有資料 10 ——

 

最後得出的結果為 False,因此我們可以得知 10 不包含在 myList 裡面。