enumの値をランダムで取得する
enumの値をランダムで取得する方法。
C#のLinqを使ってランダム取得する。結構、汎用的に使えそうなのでUtilityクラスにでも入れとくといいかも。
using UnityEngine; using System.Collections; using System.Collections.Generic; using System; using System.Linq; public class EnumRandom : MonoBehaviour { public enum WidgetType { Label, Sprite, SlicedSprite, TiledSprite, FilledSprite, SimpleTexture, Button, ImageButton, } public void Random() { for (int i = 0; i < 10; i++) { var value = RandomEnumValue(); Debug.Log(i + " " + value.ToString()); } } static readonly System.Random _Random = new System.Random(); public static T RandomEnumValue () { return Enum .GetValues(typeof(T)) .Cast () .OrderBy(x => _Random.Next()) .FirstOrDefault(); } }
参考
http://stackoverflow.com/questions/3132126/how-do-i-select-a-random-value-from-an-enumeration