Unity¤Ë´ØÏ¢¤¹¤ëµ­»ö¤Ç¤¹

¡¡Enum¤Î¼ïÎबÁý¤¨¤Æ¤­¤¿¾ì¹ç¤Ë¡¢¤½¤ÎÅÔÅÙÊÑ´¹½èÍý¤òÄɲ乤ë¤Î¤¬ÂçÊÑ¡ÊÌÌÅݡˤÀ¤Ã¤¿¤Î¤Ç
¥¸¥§¥Í¥ê¥¯¥¹¤òÍøÍѤ·¤Æ¡¢Ê¸»úÎó¤ò<T>¤Ë»ØÄꤷ¤¿enum ¤ËÊÑ´¹¤¹¤ë¥æ¡¼¥Æ¥£¥ê¥Æ¥£¥¯¥é¥¹¤òºîÀ®¤·¤Þ¤·¤¿¡£

¡¡¤³¤Á¤é¤¬¥½¡¼¥¹¤Ç¤¹¡£¡ÊGithub¤âƱ¤¸¤Ç¤¹¡Ë
https://github.com/mitsuruyamaura/ConvertEnumType


using System;

/// <summary>
/// string => enum¤Ø¤ÎÊÑ´¹ÍÑ¥¯¥é¥¹
/// </summary>
public class ConvertEnumType {

    /// <summary>
    /// string¤ò»ØÄꤷ¤¿¥¿¥¤¥×¤ÎEnum¤ËÊÑ´¹¤¹¤ë
    /// </summary>
    public static IEnum FromString<IEnum>(string str) where IEnum : struct {
        return (IEnum)Enum.Parse(typeof(IEnum), str, true);
    }
}

¥Ý¥¤¥ó¥È¤È¤·¤Þ¤·¤Æ¤Ï¡¢
¡¦ÊÑ´¹¥á¥½¥Ã¥É¤Î¸Æ¤Ó½Ð¤·»þ¡¢Enum.Parse¤Î¤è¤¦¤Ë2²óƱ¤¸Enum¤Î¼ïÎà¤ò»ØÄꤹ¤ëɬÍפ¬¤Ê¤¤¤³¤È¡£
¡¦Ê¸»úÎó¤ÎÂçʸ»ú¡¦¾®Ê¸»ú¤Î¶èÊ̤ʤ¯Enum¤ËÊÑ´¹¤Ç¤­¤ë¤³¤È¡£
¡¦Ê¸»úÎó¤òEnum¤ËÊÑ´¹¤·¤ÆÇÛÎ󡦥ꥹ¥È¤Ë¤¹¤ë¾ì¹ç¤Ë¤ÏLinq¤ò»È¤¦¤È1¹Ô¤Ç½ñ¤±¤ë¤³¤È

¡¡¤Ê¤É¤Ç¤·¤ç¤¦¤«¡£where¤ÇIEnum¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹¤¬¡¢¹½Â¤ÂÎ(struct)¤À¤ÈÆþ¤Ã¤Æ¤·¤Þ¤¦¤¿¤áÃí°Õ¤¬É¬ÍפǤ¹¡£
¤È¤Ï¤¤¤¨¡¢¤³¤ì¤ÏÌá¤êÃͤΤ¢¤ë½èÍý¤Ç¤¹¤Î¤Ç¡¢º¸ÊÕ¤ÎÃͤ¬Ìá¤ëÃͤȰۤʤë¾ì¹ç¤Ë¤Ï¥³¥ó¥Ñ¥¤¥ë½ÐÍ褺¤Ë¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£»ÈÍѴְ㤤¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¡£

¡¡¤³¤ì¤òƧ¤Þ¤¨¤Æ¡¢¥µ¥ó¥×¥ë¥¯¥é¥¹¤òºîÀ®¤·¤Æ¤ß¤Þ¤¹¡£

using System.Collections.Generic;
using UnityEngine;
using System.Linq;

public class EnumTest : MonoBehaviour {

¡¡¡¡// TestÍѤËEnum¤ò3¼ïÎàÍÑ°Õ
    public enum TIME_TYPE {
        MORNING,
        AFTERNOON,
        EVENING,
        NIGHT,
    }

    public enum DAY_TYPE {
        SUNDAY,
        MANDAY,
        TUESDAY,
        WEDNESDAY,
        THURSDAY,
        FRIDAY,
        SATURDAY
    }

    public enum SEASON_TYPE {
        SPRING,
        SUMMER,
        AUTUMN,
        WINTER
    }

    // DebugÍѤËpublic¤Ç¡£¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¾å¤Ç³Îǧ¤Ç¤­¤ë¤è¤¦¤Ë
    public DAY_TYPE dayType;
    public TIME_TYPE[] timeTypeArray;
    public List<SEASON_TYPE> seasonTypeList = new List<SEASON_TYPE>();

    // »ÈÍÑÎã
    void Start() {
        // ʸ»úÎó¤ò°ú¿ô¤ÇÅϤ·¤¿¼ïÎà¤ÎEnum¤ËÊÑ´¹
        string day = "friday";
        dayType = ConvertEnumType.FromString<DAY_TYPE>(day);

        // ÇÛÎóÍѤËʸ»úÎó¤òÍÑ°Õ
        string times = "NIGHT,afternoon,Morning";

        // ¤³¤Î1¹Ô¤Ç¾åµ­¤ÎEnum.Parse¤ÈÇÛÎ󲽤¬½ÐÍè¤ë(Select(x => (x))¤Î°ú¿ô¤Ï¾Êά¤Ç¤­¤Þ¤¹)
        timeTypeArray = times.Split(',').Select(ConvertEnumType.FromString<TIME_TYPE>).ToArray();

        // List¤Î¾ì¹ç¤âƱ¤¸
        // ListÍѤËʸ»úÎó¤òÍÑ°Õ¤·¤Æ¡¢ÊÑ´¹
        string seasons = "summer,Winter,spring,AUTUMN";
        seasonTypeList = seasons.Split(',').Select(ConvertEnumType.FromString<SEASON_TYPE>).ToList();
    }
}

¤³¤Á¤é¤¬¼Â¹ÔÁ°¡£


¤³¤Á¤é¤¬¼Â¹Ô¸å¤Ç¤¹¡£


¡¡¤¤¤Þ¤Þ¤ÇJson¤Ç¼èÆÀ¤·¤¿Ê¸»úÎó¤òEnum²½¤·¤ÆÇÛÎó¤Ë¤¹¤ëºÝ¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¤¤Æ¤¤¤Þ¤·¤¿¤Î¤Ç¡¢º£²ó¤Î¥á¥½¥Ã¥É¤òÍÑ°Õ¤¹¤ë¤³¤È¤Ç¡¢½èÍý¤âÈó¾ï¤Ë¤¹¤Ã¤­¤ê¤·¤Þ¤·¤¿¡£

    // ÇÛÎóÍѤËʸ»úÎó¤òÍÑ°Õ
    string times = "NIGHT,afternoon,Morning";

    // ʸ»úÎó¤òʬ³ä¤·¤Æ¡¢string¤ÎÇÛÎó¤òºîÀ®
    string[] strArray = timeArray.Split(',').ToArray();

    // EnumÍѤÎÇÛÎó¤ò½é´ü²½
    timeTypeArray = new TIME_TYPE[strArray.Length];

    // string¤ÎÇÛÎó¤òEnum¤ËÊÑ´¹¤·¤ÆÇÛÎó¤Ë¡ÊLinq»È¤ï¤Ê¤¤¾ì¹ç¡Ë
    for (int i = 0; i < strArray.Length; i++) {
        timeTypeArray[i] = (TIME_TYPE)Enum.Parse(typeof(TIME_TYPE), strArray[i]);
    }

¡¡°Ê¾å¤Ë¤Ê¤ê¤Þ¤¹¡£

¤Ê¤ª¤³¤Á¤é¤Ï¡¢teratail¤Ë¤Æ»ä¤¬¼ÁÌ䡦ºîÀ®¤µ¤»¤Æ夤¤¿¤â¤Î¤ò¡¢²þ¤á¤Æºî¤ê¤Ê¤ª¤·¤¿¤â¤Î¤Ç¤¹¡£

¥³¥á¥ó¥È¤ò¤«¤¯


¡Öhttp://¡×¤ò´Þ¤àÅê¹Æ¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ÍøÍѵ¬Ìó¤ò¤´³Îǧ¤Î¤¦¤¨¤´µ­Æþ²¼¤µ¤¤

Menu



´ðÁÃ

µ»½Ñ/Ãμ±(¼ÂÁõÎã)

3D¥¢¥¯¥·¥ç¥ó¥²¡¼¥à

2D¤ª¤Ï¤¸¤­¥²¡¼¥à(ȯŸÊÔ)

2D¶¯À©²£¥¹¥¯¥í¡¼¥ë¥¢¥¯¥·¥ç¥ó(ȯŸÊÔ)

2D¥¿¥Ã¥×¥·¥å¡¼¥Æ¥£¥ó¥°(³ÈÄ¥ÊÔ)

¥ì¡¼¥¹¥²¡¼¥à(È´¿è)

2DÊüÃÖ¥²¡¼¥à(ȯŸÊÔ)

3D¥ì¡¼¥ë¥¬¥ó¥·¥å¡¼¥Æ¥£¥ó¥°(±þÍÑÊÔ)

3Dæ½Ð¥²¡¼¥à(È´¿è)

2D¥ê¥¢¥ë¥¿¥¤¥à¥¹¥È¥é¥Æ¥¸¡¼

3D¥¿¥Ã¥×¥¢¥¯¥·¥ç¥ó(NavMeshAgent »ÈÍÑ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥«¥¨¥ë¤Î°Ù¤Ë¡Á¡¢¥Ü¥³¥¹¥«¥¦¥©¡¼¥ºÉ÷)

VideoPlayer ¥¤¥Ù¥ó¥ÈϢư¤Î¼ÂÁõÎã

VideoPlayer ¥ê¥¹¥ÈÆ⤫¤é¥à¡¼¥Ó¡¼ºÆÀ¸¤Î¼ÂÁõÎã(ȯŸ)

AR ²èÁüÉÕ¤­¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À®¤Î¼ÂÁõÎã

AR ¥ê¥¹¥ÈÆ⤫¤éÀ¸À®¤Î¼ÂÁõÎã(ȯŸ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥µ¥Ð¥¤¥Ð¡¼É÷)

private



¤³¤Î¥µ¥¤¥ÈÆâ¤ÎºîÉʤϥæ¥Ë¥Æ¥£¤Á¤ã¤ó¥é¥¤¥»¥ó¥¹¾ò¹à¤Î¸µ¤ËÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£

´ÉÍý¿Í/Éû´ÉÍý¿Í¤Î¤ßÊÔ½¸¤Ç¤­¤Þ¤¹