【ハルシオンブログ】Enumからランダムで1つを選択する方法。
オリンピックが始まりましたね。
金メダルが現時点で5個ですか。
金の数は世界2位ですね。
日本頑張れ~!
さてUnityのお話。
凄い簡単な話なんですが、Enumをランダムで取得する方法。
画面にボタンを1個おいて、次のコードを書いてみた
[Blog0726.cs]
結果はこんな感じ。

8回ボタンを押してみた。
ランダムでEnumを取得するところはここ。
Directionが東西南北の4つなら、
でもいいけど、Enumの中にCOUNTというのを用意して、Enumの数がいくつ増えてもいいようにしておいてます。
これでいくらでもEnumからランダムに値をとることができますね!
ということで今日はここまで。
あでゅ~ノシ
金メダルが現時点で5個ですか。
金の数は世界2位ですね。
日本頑張れ~!
さてUnityのお話。
凄い簡単な話なんですが、Enumをランダムで取得する方法。
画面にボタンを1個おいて、次のコードを書いてみた
[Blog0726.cs]
using System;
using UnityEngine;
using UnityEngine.UI;
public class Blog0726 : MonoBehaviour
{
[SerializeField] Button btnRandom;
enum Direction {
North,
East,
South,
West,
COUNT,
}
void Start()
{
// ボタンを押すたびにランダムに方向を取得
btnRandom.onClick.AddListener(GetRandomDirection);
}
void GetRandomDirection() {
Direction nextDir = (Direction)Enum.ToObject(typeof(Direction), UnityEngine.Random.Range(0, (int)Direction.COUNT));
Debug.Log(nextDir);
}
}
結果はこんな感じ。

8回ボタンを押してみた。
ランダムでEnumを取得するところはここ。
Direction nextDir = (Direction)Enum.ToObject(typeof(Direction), UnityEngine.Random.Range(0, (int)Direction.COUNT));
Directionが東西南北の4つなら、
Direction nextDir = (Direction)Enum.ToObject(typeof(Direction), UnityEngine.Random.Range(0, 4);
でもいいけど、Enumの中にCOUNTというのを用意して、Enumの数がいくつ増えてもいいようにしておいてます。
これでいくらでもEnumからランダムに値をとることができますね!
ということで今日はここまで。
あでゅ~ノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ】リフレクションを使って別クラスのprivate変数にアクセスする。 | 【ハルシオンブログ】Listでのソートの仕方。(あ、以前同じような内容かいたかも »
コメント
| h o m e |