close

陣列在遊戲中也是必定會使用的東西

因為我們在遊戲中一定會有複數的東西在使用

好比說你的物品欄一定不是只有一個東西

你也可以用這種方式來存取

那一開始先讓大家看陣列的一些宣告方式

public class Test : MonoBehaviour {
    
    // Use this for initialization
    void Start ()
    {
        // 宣告一個int陣列 空間長度5
        int[] array1 = new int[5];

        // 宣告一個int陣列 空間長度依照大括弧
        int[] array2 = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

        // 也可以縮減成這樣
        int[] array3 = { 1, 2, 3 };

        // 二維陣列 (多維陣列)
        // 第一次看到可能會覺得有點複雜
        // 其實他只是在多一個大括弧塞兩個陣列而已 
        int[,] array4 = new int[,] { { 1, 2, 3 }, { 4, 5, 6} };

        // 不規則陣列
        int[][] array5 = new int[2][];

        // 不規則陣列 宣告時直接初始化
        int[][] array6 = 
        {
            new [] { 1, 2, 3 },
            new [] { 1 }
        };
    }
}

這邊其實有一個很重要的地方要注意

我會強調這個是因為有些學程式很久的人竟然會不知道

就是多維陣列及不規則陣列的差別

 

多維陣列 (規則陣列)

int[,] array4 = new int[,] { { 1, 2, 3 }, { 4, 5, 6} };

為什麼他是規則 因為他們所宣告的長度必須相同

<錯誤範例>

int[,] array4 = new int[,] { { 1, 2, 3 }, { 4, 5 } };

一開始已經訂為長度3 後面的陣列就必須也要是3

看到錯誤範例 { 4, 5 } 裡面只有2個數字 所以長度是2 很明顯錯誤

如果你沒有資料  就必須改成

int[,] array4 = new int[,] { { 1, 2, 3 }, { 4, 5, 0 } };

 

 

不規則陣列

 int[][] array6 = 
        {
            new [] { 1, 2, 3 },
            new [] { 1 }
        };

裡面的長度我們可以不同  所以稱為不規則陣列

 

 

兩者差異

基本上要有一個觀念  每開一個陣列空間  都會增加我們的記憶體空間

這點相信你應該了解差異在哪了

如果每個陣列長度不同

當然建議使用不規則的陣列

可以節省你的空間

雖然這點空間對現在的機體來說沒什麼太大的影響

但還是建立一下這觀念

如果有疑問歡迎底下留言哦!!!

arrow
arrow

    Weight 發表在 痞客邦 留言(1) 人氣()