2017-05-03 98 views
-1

我在玩Unity,但我不是很熟悉C#。 我想我想要的是相當容易的,但不是說一個母語爲英語的人我想我錯過了正確的關鍵字來搜索它。c#靜態類/結構對象列表

我要的是一個類(或結構?)只是收集數據的幾個位:

public class Biome { 
    string name; 
    Color color; 
    float base height; (...) 
} 

然後,我希望對象本的預定義列表。像海洋,草地,森林。這些應該可以通過代碼輕鬆訪問,因爲我將需要很多信息。如果可能的話,他們至多可以通過他們的名字進入。此外,我希望列表可以在Unity編輯器中顯示,以便我可以更改這些值(調整顏色等)。

我該怎麼做,或者是否有一個名稱,以便我可以成功搜索它?

+0

當您說對象的預定義列表時,您是什麼意思?這些對象是Biome類的實例還是它們是Biome類的成員? – RH6

回答

0

將可序列化標記放在您的類上並創建該類型的公共成員。現在,當您將組件添加到遊戲對象並在層次結構中選中它時,您的數據將在檢查器中可編輯。例如 -

public class MyComponent : MonoBehaviour 
{ 
    // Declare your serializable data 
    [System.Serializable] 
    public class Biome { 
     public string name; 
     public Color color; 
     public float height; 
    } 

    // Create public members of your custom type 
    public Biome Ocean; 
    public Biome Meadow; 
    public Biome Forest; 
    ... 

} 
+0

有沒有辦法讓靜態成員?就像C#的Colors類一樣,Colors是類和Colors.Black總是一樣的嗎?靜態成員甚至是正確的詞嗎? 我真的很難找到正確的關鍵字甚至搜索的東西。 – Soronume

+0

是的,你也可以有'static'或'const'成員,你可以像Colors.Black一樣訪問。記住'const'成員始終是靜態的。所以你指定一個成員爲'static'或'const',但不能將它們放在一起。 –