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

¡¡»ØÄꤷ¤¿Ä¹¤µ¤Î¥é¥ó¥À¥à¤Ê¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»úÎó¤òÀ¸À®¤¹¤ëµ¡Ç½¤Î¼ÂÁõÎã¤Ç¤¹¡£



AlphabetManager ¥¯¥é¥¹



using System;

public static class AlphabetManager
{
    private static readonly string Alphabets = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

    /// <summary>
    /// »ØÄꤵ¤ì¤¿Ä¹¤µ¤Î¥é¥ó¥À¥à¤Ê¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»úÎó¤òÀ¸À®¤·¤Þ¤¹¡£
    /// ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ïʸ»úÎó¤ÎŤµ¤Ï5¤Ç¤¹¡£
    /// </summary>
    /// <param name="length">À¸À®¤¹¤ë¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»úÎó¤ÎŤµ¡£</param>
    /// <returns>»ØÄꤵ¤ì¤¿Ä¹¤µ¤Î¥é¥ó¥À¥à¤Ê¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»úÎó¡£</returns>
    public static string GetRamdomAlphabet(int length = 5)
    {
        // Íð¿ôÀ¸À®´ï¤Î¥¤¥ó¥¹¥¿¥ó¥¹
        Random random = new();
        
        // »ØÄꤵ¤ì¤¿¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»úÎó¤ò»ØÄꤵ¤ì¤¿²ó¿ô¤À¤±·«¤êÊÖ¤·¡¢
        // ¤½¤ì¤¾¤ì¤«¤é¥é¥ó¥À¥à¤Ë1ʸ»ú¤º¤ÄÁª¤Ó¡¢¿·¤·¤¤Ê¸»úÎó¤òÀ¸À®¤¹¤ë
        string result = "";
        
        for (int i = 0; i < n; i++)
        {
            result += txt[random.Next(txt.Length)]; 
        }
        
        return result;
    }
}


²òÀâ


¡¡Random ¥¯¥é¥¹¤Ë¤¢¤ë Next ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ¡¢»öÁ°¤ËÍÑ°Õ¤·¤Æ¤ª¤¤¤¿Ê¸»úÎ󤫤é¥é¥ó¥À¥à¤Êʸ»ú£±¤Ä¤òÃê½Ð¤·¡¢
¤½¤ì¤ò»ØÄê²ó¿ô·«¤êÊÖ¤¹¤³¤È¤Ç¥é¥ó¥À¥à¤Êʸ»ú¤Îʸ»úÎó¤òÀ¸À®¤·¤Æ¤¤¤Þ¤¹¡£

¡¡¤³¤Î½èÍý¤Î¾ì¹ç¡¢³Æʸ»ú¤¬ Alphabets ¤«¤é¥é¥ó¥À¥à¤ËÁªÂò¤µ¤ì¤Æ¤¤¤ë¤¿¤á¡¢Æ±¤¸Ê¸»ú¤¬Ê£¿ô²óÁª¤Ð¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£
Î㤨¤Ð¡¢"aaaaa"¤ä"abcde"¤Î¤è¤¦¤Ê·ë²Ì¤âȯÀ¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£

¡¡¥é¥ó¥À¥à¤Êʸ»úÎóÀ¸À®¤Ç¤Ï¡¢½ÅÊ£¤äÆÃÄê¤Î¥Ñ¥¿¡¼¥ó¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤Ëα°Õ¤¹¤ë¤³¤È¤¬½ÅÍפǤ¹¡£


¡ã¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¡ä


¡¡LINQ ¤ò³èÍѤ·¤¿¾ì¹ç¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤Ç¤­¤Þ¤¹¡£

using System;
using System.Linq;

public static class AlphabetManager
{
    private static readonly string Alphabets = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

    /// <summary>
    /// »ØÄꤵ¤ì¤¿Ä¹¤µ¤Î¥é¥ó¥À¥à¤Ê¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»úÎó¤òÀ¸À®¤·¤Þ¤¹¡£
    /// ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ïʸ»úÎó¤ÎŤµ¤Ï5¤Ç¤¹¡£
    /// </summary>
    /// <param name="length">À¸À®¤¹¤ë¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»úÎó¤ÎŤµ¡£</param>
    /// <returns>»ØÄꤵ¤ì¤¿Ä¹¤µ¤Î¥é¥ó¥À¥à¤Ê¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»úÎó¡£</returns>
    public static string GetRamdomAlphabet(int length = 5)
    {
        // Íð¿ôÀ¸À®´ï¤Î¥¤¥ó¥¹¥¿¥ó¥¹
        Random random = new();

        return new string(Enumerable.Repeat(Alphabets, length)
            .Select(alphabet => alphabet[random.Next(alphabet.Length)])
            .ToArray());
    }
}



¡¡Enumerable.Repeat¤Ç»ØÄꤷ¤¿Ä¹¤µ¤Îʸ»úÎó¤òÀ¸À®¤·¡¢¤½¤ì¤ò Select ¤Ç¥é¥ó¥À¥à¤ËÁªÂò¤·¡¢
ToArray ¤Çʸ»úÇÛÎó¤ËÊÑ´¹¤·¤Æ¡¢ºÇ½ªÅª¤Ë new string ¤Çʸ»úÎó¤ËÌᤷ¤Æ¤¤¤Þ¤¹¡£

        // ¾åµ­½èÍý¤ò LINQ ¤ÇÃÖ¤­´¹¤¨¤¿¾ì¹ç
        return new string(Enumerable.Repeat(Alphabets, length)
            .Select(alphabet => alphabet[random.Next(alphabet.Length)])
            .ToArray());

¡¡Enumerable.Repeat(Alphabets, length) ¤Ë¤è¤Ã¤Æ Alphabets ¤¬ length ²ó·«¤êÊÖ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¤·¤¿¤¬¤Ã¤Æ¡¢Select ¤Î¥é¥à¥À¼°Æâ¤Î°ú¿ô¤Ç¤¢¤ë alphabet ¤Ï Alphabets ¤½¤Î¤â¤Î¤ò»Ø¤·¤Þ¤¹¡£¤³¤ÎÉôʬ¤Ç³Æʸ»úÎó¤¬ random.Next(alphabet.Length) ¤Ç¥é¥ó¥À¥à¤ËÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

¡¡»ØÄꤵ¤ì¤¿ alphabet ʸ»úÎ󤫤é¥é¥ó¥À¥à¤Ë1¤Ä¤Îʸ»ú¤òÁªÂò¤·¤Æ¤¤¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢alphabet[random.Next(alphabet.Length)] ¤Ï¡¢alphabet ʸ»úÎó¤ÎÃ椫¤é¥é¥ó¥À¥à¤Ë1ʸ»ú¤òÁªÂò¤·¤Æ¤¤¤Þ¤¹¡£
¤³¤Î½èÍý¤ò length ²ó·«¤êÊÖ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ºÇ½ªÅª¤Ë length ¸Ä¤Î¥é¥ó¥À¥à¤Êʸ»úÎ󤬤Ǥ­¡¢¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°Á°¤ÈƱ¤¸½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£


¡ã½ÅÊ£¤·¤Ê¤¤Ê¸»ú¤ò»ØÄê¿ôÁªÂò¤¹¤ë¡ä


¡¡Î㤨¤Ð¡¢½ÅÊ£¤·¤Ê¤¤Ê¸»ú¤ò»ØÄê¿ôÁªÂò¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ê¼ÂÁõÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£


using System.Text;


/// <summary>
/// »ØÄꤵ¤ì¤¿Ä¹¤µ¤Î¥é¥ó¥À¥à¤Ê¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»úÎó¤òÀ¸À®¤·¤Þ¤¹¡£½ÅÊ£¤Ê¤·¥Ð¡¼¥¸¥ç¥ó¡£
/// ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ïʸ»úÎó¤ÎŤµ¤Ï5¤Ç¤¹¡£
/// </summary>
/// <param name="length">À¸À®¤¹¤ë¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»úÎó¤ÎŤµ¡£</param>
/// <returns>»ØÄꤵ¤ì¤¿Ä¹¤µ¤Î¥é¥ó¥À¥à¤Ê¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»úÎó¡£</returns>
public static string GetRandomUniqueAlphabet(int length = 5)
{
    Random random = new();
    
    // ÁªÂò¤·¤¿Ê¸»ú¤òÊÝ»ý¤¹¤ë¤¿¤á¤ÎHashSet
    HashSet<char> selectedChars = new HashSet<char>();

    // ʸ»úÎó¤ÎŤµ¤¬¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Î¼ïÎà¿ô¤òĶ¤¨¤ë¾ì¹ç¤Ï¡¢¼ïÎà¿ô¤Ë¹ç¤ï¤»¤ë
    length = Math.Min(length, Alphabets.Length);

    // StringBuilder¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òºîÀ®
    StringBuilder resultBuilder = new StringBuilder();

    // ÁªÂò¤µ¤ì¤¿Ê¸»ú¤¬»ØÄê¤ÎŤµ¤Ë㤹¤ë¤Þ¤Ç·«¤êÊÖ¤¹
    while (selectedChars.Count < length)
    {
        // ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»úÎ󤫤é¥é¥ó¥À¥à¤Ë1ʸ»úÁª¤Ö
        char selectedChar = Alphabets[random.Next(Alphabets.Length)];

        // ½ÅÊ£¤òËɤ°¤¿¤á¡¢HashSet¤ËÄɲäǤ­¤¿¾ì¹ç¤Î¤ßÊÝ»ý¤¹¤ë
        if (selectedChars.Add(selectedChar))
        {
            // selectedChar ¤¬¤Þ¤ÀÁªÂò¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï·ë²Ì¤ËÄɲ乤ë
            resultBuilder.Append(selectedChar);
        }
    }

¡¡¡¡// ʸ»úÎó¤òºîÀ®¤·¤ÆÌ᤹
    return resultBuilder.ToString();
}

¡¡¤³¤Î¼ÂÁõ¤Ç¤Ï¡¢HashSet ¤ò»È¤Ã¤ÆÁªÂò¤µ¤ì¤¿Ê¸»ú¤òÊÝ»ý¤·¡¢¿·¤¿¤ËÁª¤Ð¤ì¤¿Ê¸»ú¤¬´û¤Ë¥»¥Ã¥È¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Î¤ßÄɲä·¤Þ¤¹¡£
¤³¤ì¤Ë¤è¤ê¡¢¥é¥ó¥À¥à¤Êʸ»úÎ󤬻ØÄꤵ¤ì¤¿Ä¹¤µ¤Ë㤹¤ë¤Þ¤Ç¡¢½ÅÊ£¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤»¤ó¡£
HashSet ¤Ï½ÅÊ£¤·¤Ê¤¤Á°Äó¤ÇÍøÍѤǤ­¤ë¥³¥ì¥¯¥·¥ç¥óµ¡Ç½¤Ç¤¹¤Î¤Ç¡¢¤³¤¦¤¤¤Ã¤¿¾ìÌ̤ÇÊØÍø¤Ç¤¹¡£


MicroSoft
HashSet<T> ¥¯¥é¥¹

https://learn.microsoft.com/ja-jp/dotnet/api/syste...



¡¡¤Þ¤¿ Math.Min ¥á¥½¥Ã¥É¤òÍøÍѤ·¡¢»ØÄꤵ¤ì¤¿Ä¹¤µ length ¤¬¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Î¼ïÎà¿ô¤òĶ¤¨¤Ê¤¤¤è¤¦¤Ë³Îǧ¤·¤Æ¤¤¤Þ¤¹¡£
¤â¤· length ¤¬ Alphabets.Length ¤è¤ê¤âÂ礭¤¤¾ì¹ç¤Ï¡¢length ¤ò Alphabets.Length ¤ËÀ©¸Â¤¹¤ë¤³¤È¤Ç¡¢¤¤¤º¤ì¤«¾®¤µ¤¤Êý¤Ë¼ý¤Þ¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ë¤è¤ê¡¢¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Î¼ïÎà¿ô¤òĶ¤¨¤ë¤è¤¦¤Ê»ØÄ꤬¤µ¤ì¤¿¾ì¹ç¤Ç¤â¡¢ÉÔÀµ¤Ê¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬È¯À¸¤»¤º¤ËºÑ¤ß¤Þ¤¹¡£

¡¡¤Ê¤ª¡¢StringBuilder ¤Î½é´üÃÍ¤Ï string.Empty(Ťµ 0 ¤Îʸ»úÎó("")) ¤Ç¤¹¡£
²¾¤Ë length ¤¬ 0 ¤Î¾ì¹ç¡¢while ʸ¤Ï¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£¤½¤Î¤¿¤á¡¢StringBuilder ·¿¤Î resultBuilder ÊÑ¿ô¤ÎÃÍ¤Ï "" ¤Ç¤¹¡£
¤è¤Ã¤Æ ToString ¥á¥½¥Ã¥É¤Î·ë²Ì¤âŤµ 0 ¤Îʸ»úÎó("") ¤Ë¤Ê¤ê¤Þ¤¹¡£Ëü¤¬°ì¤Î¾ì¹ç¤Ë¤â null ¥¨¥é¡¼¤Ë¤Ï¤Ê¤ê¤Þ¤»¤ó¡£

MicroSoft
StringBuilder ¥³¥ó¥¹¥È¥é¥¯¥¿¡¼

https://learn.microsoft.com/ja-jp/dotnet/api/syste...


¡ã¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¡ä


¡¡LINQ ¤ò³èÍѤ·¤¿¾ì¹ç¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤Ç¤­¤Þ¤¹¡£


/// <summary>
/// »ØÄꤵ¤ì¤¿Ä¹¤µ¤Î¥é¥ó¥À¥à¤Ê¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»úÎó¤òÀ¸À®¤·¤Þ¤¹¡£½ÅÊ£¤Ê¤·¥Ð¡¼¥¸¥ç¥ó¡£
/// ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ïʸ»úÎó¤ÎŤµ¤Ï5¤Ç¤¹¡£
/// </summary>
/// <param name="length">À¸À®¤¹¤ë¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»úÎó¤ÎŤµ¡£</param>
/// <returns>»ØÄꤵ¤ì¤¿Ä¹¤µ¤Î¥é¥ó¥À¥à¤Ê¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»úÎó¡£</returns>
public static string GetRandomUniqueAlphabet(int length = 5)
{
    Random random = new();
        
¡¡¡¡length = Math.Min(length, Alphabets.Length);

    // LINQ¤ò»ÈÍѤ·¤Æ½ÅÊ£¤Ê¤·¤Î¥é¥ó¥À¥à¤Ê char[] ÇÛÎó¤òÀ¸À®(¤³¤Î»þÅÀ¤Ç¤Ïʸ»úÎó(string)¤Ç¤Ï¤Ê¤¤)
    char[] result = Enumerable.Range(0, length)
    ¡¡¡¡             .Select(_ => Alphabets[random.Next(Alphabets.Length)])
                     .Distinct()
                     .ToArray();

    // char ÇÛÎ󤫤鿷¤·¤¤Ê¸»úÎó(string)¤òºîÀ®¤·¤ÆÌ᤹
    return new string(result);

¡¡¤³¤Î¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤Ç¤Ï¡¢Enumerable.Range¤ò»ÈÍѤ·¤Æ°ú¿ô¤Ç»ØÄꤷ¤¿¿ôÃͤΥ·¡¼¥±¥ó¥¹¤òÀ¸À®¤·¡¢
Select ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ³Æ¿ôÃͤËÂФ·¤Æ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤«¤é¥é¥ó¥À¥à¤Êʸ»ú¤òÁªÂò¤·¤Þ¤¹¡£
¤½¤·¤Æ¡¢Distinct¥á¥½¥Ã¥É¤ò»ÈÍѤ·¤Æ·ë²Ì¤Ë½ÅÊ£¤¬¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£

¡¡ºÇ¸å¤Ë¡¢·ë²Ì¤ò char ÇÛÎó¤ËÊÑ´¹¤·¤Æ¡¢¤½¤Î char ÇÛÎ󤫤鿷¤·¤¤Ê¸»úÎó(string)¤òºîÀ®¤·¤Þ¤¹¡£



¡¡¤³¤Î½èÍý¤ò±þÍѤ¹¤ì¤Ð¡¢¿ô»ú¤äµ­¹æ¤ò´Þ¤á¤¿¥é¥ó¥À¥à¤Êʸ»úÎó¤âÀ¸À®²Äǽ¤Ç¤¹¡£

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


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

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

Menu



´ðÁÃ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

private



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

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