列舉其實不是必要的東西
但是他可以讓你比較好閱讀
在這我就用遊戲狀態來當作範例
enum
public class Test : MonoBehaviour { // 宣告你的列舉變數 遊戲狀態 // Use this for initialization |
哪這邊也補充一下一些重點
其實如果你看過我的switch的教學
你會發現 列舉跟他是一樣的
只是如果你都用int來表示 久了以後
你回來看你的程式 你會被這數字搞瘋
1是代表什麼 ?? 2是什麼
這就是列舉的好處 方便我們閱讀 一看就知道是什麼樣的狀態
那列舉其實也有int值表示 程式中都會從0開始 (像是索引值)
但是我們是可以修改他的
// 列舉遊戲狀態 (預設的int值) enum GameStatus { GAME_READY, // int值為0 GAME_START, // int值為1 GAME_OVER // int值為2 } |
// 列舉遊戲狀態 (修改int值) enum GameStatus { GAME_READY = 0, // 遊戲準備 GAME_START = 2, // 遊戲開始 GAME_OVER = 1 // 遊戲結束 } |
你可以將你的列舉印出Log來看看 前面用(int)將他轉型
Debug.Log((int)GameStatus.GAME_START); |
你會發現你的Start已經變為2了
那他的規則就是
如果你沒修改他 他就依照上一個的int值來+1
而如是以下的狀態
// 列舉遊戲狀態 |
不過基本上我們很少會對enum做很複雜的更改 頂多只有在第一個會做修改
那在這邊我會講int轉型是因為
同樣的我們也可以將int轉為列舉
Debug.Log((GameStatus)2); |
這時候的int數就會變成列舉索引2的MAX
在某些情況下 你會用數字來代表
你就可以將這數字轉成你的列舉狀態
這樣應該對enum的介紹有了解了吧
如果還是不懂可以留言哦!!!
留言列表