FC2ブログ
    06 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 08

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【ハルシオンブログ】Enumからランダムで1つを選択する方法。 

    オリンピックが始まりましたね。
    金メダルが現時点で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)

    tb 0 : cm 0