ºÇ½ª¹¹¿·¡§ orika_ex_miyako 2022ǯ12·î02Æü(¶â) 10:44:32ÍúÎò
¡¡¼ê½ç¡¤È¢¤Þ¤Ç¤Ç¡¢¥¹¥¥ëÍѤΥܥ¿¥ó¤ÎºîÀ®¤È¡¢UIManager¥¹¥¯¥ê¥×¥È¤Î½¤Àµ¤¬½ªÎ»¤·¤Þ¤·¤¿¡£
¡¡ºÇ¸å¤Î¼ê½ç¤Ç¤Ï¡¢¥¹¥¥ë¤Î̾Á°¤òÅÐÏ¿¤¹¤ë SkillType¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Þ¤¹¡£
¡¡¤½¤ì¤Ë¹ç¤ï¤»¤Æ¡¢GameData¥¹¥¯¥ê¥×¥È¤Ë¤ÏSkillType¤òÀßÄê¤Ç¤¤ë¤è¤¦¤Ë¡¢SkillType·¿¤Î selectedSkillType ÊÑ¿ô¤òÄɲä·¤Þ¤¹¡£
¤³¤ÎÊÑ¿ô¤òÍøÍѤ·¤Æ¥²¡¼¥àÆâ¤Ç»ÈÍѤ¹¤ë¥¹¥¥ë¤Î¼ïÎà¤òÀßÄê¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë¥í¥¸¥Ã¥¯¤Ç¤¹¡£
¡¡GameManager¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥¹¥¥ë¤Î¸ú²Ì¤ò¼Â¹Ô¤¹¤ë¥á¥½¥Ã¥É¤ä¡¢¥¹¥¥ë¤òÅÐÏ¿¤¹¤ëºÝ¤Î¼«Æ°Ê¬´ô¤ò»ý¤Ä¥á¥½¥Ã¥É¤òºîÀ®¤·¡¢¼ÂÁõ¤·¤Æ¤¤¤¤Þ¤¹¡£
¡¡¼ÂÁõ¤Î¼ê½ç¤Ç¤¹¡£
¡¡£±¡¥enum·¿¤ÎSkillType¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë ¡¡£²¡¥GameData¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤¹¤ë ¡¡£³¡¥GameManager¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤¹¤ë ¡¡£´¡¥¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÆ°ºî¤ò³Îǧ¤¹¤ë
¡¡¤³¤³¤Ç³Ø½¬¤¹¤ë½èÍý¤ÏÆñ¤·¤¤¤¿¤á¡¢°ìÅÙ¼ÂÁõ¤·¤Æ½ªÎ»¤Ç¤Ï¤Ê¤¯¤Æ¡¢·«¤êÊÖ¤·¤Æ³Ø½¬¤¹¤ë¤³¤È¤ò´«¤á¤Þ¤¹¡£
¡¡¿·¤·¤¯³Ø½¬¤¹¤ëÆâÍƤǤ¹¡£
¡¦Dictionary¤Î¼ÂÁõÎã¡¡¡ÁAdd¥á¥½¥Ã¥É¡¢ContainsKey¥á¥½¥Ã¥É¡¢KeyValuePair·¿¹½Â¤ÂΡÁ ¡¦Linq¤Îµ¡Ç½¤Î¼ÂÁõÎã¡¡¡ÁOrderByDescending¥á¥½¥Ã¥É¡¢First()¥á¥½¥Ã¥É¡¢¥á¥½¥Ã¥É¥Á¥§¡¼¥ó¤Ë¤Ä¤¤¤Æ¡Á ¡¦¥á¥½¥Ã¥É¤Î°ú¿ô¤Ë¡¢Ìá¤êÃͤò»ý¤Ä¥á¥½¥Ã¥É¤òÍøÍѤ¹¤ëÊýË¡ ¡¦UnityAction¤Î¼ÂÁõÎã¡¡¡ÁSwitchʸ¤ÈÌá¤êÃͤγèÍÑ¡Á
¡¡¥¹¥¥ë¤Î̾Á°¤ò´ÉÍý¤Ç¤¤ë¤è¤¦¤Ë enum·¿¤Î¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¤ª¤¤Þ¤¹¡£
¤³¤³¤Ë¤Þ¤È¤á¤Æ¥¹¥¥ë¤Î̾Á°¤òÅÐÏ¿¤·¤Æ¤ª¤¯¤³¤È¤Ç´ÉÍý¤¬¤·¤ä¤¹¤¯¡¢»²¾È¤¹¤ëºÝ¤Ë SkillType ¤Çµ½Ò¤Ç¤¤Þ¤¹¤Î¤Ç¡¢
Î㤨¤Ð¡¢½èÍý¤Î¤¿¤Ó¤Ë¥¹¥¥ë̾¤òʸ»úÎó¤Ç½ñ¤¯É¬Íפ¬¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
¡¡enum ¤ÎÎóµó»Ò¤ÏÆüËܸì¤Ç¤âÅÐÏ¿¤Ç¤¤Þ¤¹¡£ÀèƬ¤Îʸ»ú¤¬¿ô»ú¤Î¾ì¹ç¤Ë¤Ï¡¢Á´³Ñ¡¦È¾³ÑÌä¤ï¤º¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡º£²ó¤Ï±Ñ¸ì¤Ç¡¢¥á¥½¥Ã¥É̾¤ÈƱ̾¤Ç¥¹¥¥ë̾¤òÅÐÏ¿¤·¤Æ¤¤¤Þ¤¹¡£
SkillType.cs
¡¡°ÊÁ°¤ËºîÀ®¤·¤¿ EtoType ¤ÈƱ¤¸¤Ç enum·¿¤Î¤ß¤Î¥¹¥¯¥ê¥×¥È¤Ï MonoBehaviour ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤Þ¤»¤ó¤Î¤Ç¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¤¬
¥¢¥µ¥¤¥ó¤ÎɬÍפʤ¯¡¢¤¹¤Ù¤Æ¤Î¥¹¥¯¥ê¥×¥È¤«¤é»²¾È¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡Àë¸À¥Õ¥£¡¼¥ë¥É¤Ë SkillType·¿¤ÎÊÑ¿ô¤òÄɲä·¤Þ¤¹¡£¤³¤ÎÃͤò»²¾È¤·¤Æ»ÈÍѤ¹¤ë¥¹¥¥ë¤Î¼ïÎà¤òÀßÄꤹ¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
GameData.cs
¡¡GameData¥¹¥¯¥ê¥×¥È¤Î½¤Àµ¤¬½ªÎ»¤·¤¿¤é¡¢GameData¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÁªÂò¤·¤Æ¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤ò³Îǧ¤·¤Þ¤¹¡£
¿·¤·¤¯ selectedSkillType ¤¬¥¢¥µ¥¤¥ó¾ðÊó¤È¤·¤Æɽ¼¨¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢¤³¤Á¤é¤ò³Îǧ¤·¤Æ¤ª¤¤Þ¤¹¡£
²¼µ¤Î²èÁü¤Î¤è¤¦¤Ë¡¢DeleteMaxEtoType ¤Èɽ¼¨¤µ¤ì¤Æ¤¤¤ì¤ÐÌäÂꤢ¤ê¤Þ¤»¤ó¡£¤â¤·¤âɽ¼¨¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¥×¥ë¥À¥¦¥ó¥á¥Ë¥å¡¼¤ò²¡¤·¤ÆÁªÂò¤·¤Æ¤ª¤¤Þ¤¹¡£
¡¡¸½ºß¤Ï£±¤Ä¤À¤±¤Ç¤¹¤¬SkillType¤ÎenumÎóµó»Ò¤òÁý¤ä¤¹¤È¥×¥ë¥À¥¦¥ó¥á¥Ë¥å¡¼¤ËÄɲ䵤ì¤Þ¤¹¡£
º£¸å¡¢Î㤨¤Ð¡¢´³»Ù¤Î¼ïÎà¤Ë±þ¤¸¤Æ¥¹¥¥ë¤òÊѹ¹¤·¤¿¤¤¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¢¤³¤ÎÊÑ¿ô¤ò¾å¼ê¤¯³èÍѤ·¤Æ¤¯¤À¤µ¤¤¡£
GameData¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü
¡¡Dictionary¤ÏList¤Ê¤É¤ÈƱ¤¸¥³¥ì¥¯¥·¥ç¥ó¤È¸Æ¤Ð¤ì¤ëµ¡Ç½¤Ç¤¹¡£Key¤ÈValue¤ò¥»¥Ã¥È¤Ë¤·¤ÆÍ×ÁǤòÅÐÏ¿¡¦¤Þ¤È¤á¤Æ¡Ê¥³¥ì¥¯¥·¥ç¥ó¡Ë¤¤¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
SamuraiBlogÍÍ¡¡
¡ÚC#ÆþÌç¡ÛDictionary¤ÎKey¡¢Value¤Î»È¤¤Êý(Í×ÁǤÎÄɲᢼèÆÀ¤â²òÀâ)
https://www.sejuku.net/blog/41326
¡¡Dictionary¥¯¥é¥¹¤Ë¤Ï¿§¡¹¤Êµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¤¬¡¢º£²ó»ÈÍѤ·¤Æ¤¤¤ëµ¡Ç½¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤¤Þ¤¹¡£
¡¡¤Þ¤º¤ÏÀë¸À¤Ç¤¹¡£¤Ê¤ªDictionaryµ¡Ç½¤ò»È¤¦¤¿¤á¤Ë¤Ï using System.Collections.Generic ¤ÎÀë¸À¤¬É¬Íפˤʤê¤Þ¤¹¤¬
¤³¤ÎÀë¸À¤Ï¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¤È¼«Æ°Åª¤ËÄɲ䵤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢ºï½ü¤·¤Æ¤¤¤Ê¤¤¸Â¤ê¤ÏÀë¸À¤¹¤ì¤Ð»ÈÍѤǤ¤ë¤È»×¤Ã¤Æ¤¤¤ÆÌäÂꤢ¤ê¤Þ¤»¤ó¡£
¡¡Dictionary<Key¤Î·¿Ì¾, Value¤Î·¿Ì¾> ÊÑ¿ô̾ = new Dictionary<Key¤Î·¿Ì¾, Value¤Î·¿Ì¾>(¥³¥ó¥¹¥È¥é¥¯¥¿(ÉáÃʤ϶õ¤Ç¤è¤¤));
¡¡¥³¥ó¥¹¥È¥é¥¯¥¿¡¦¥á¥½¥Ã¥É¤òÍøÍѤ·¤¿¤ê¡¢Àë¸À¤ÈƱ»þ¤Ë½é´ü²½¤ò¤¹¤ë¤³¤È¤â½ÐÍè¤Þ¤¹¡£
º£²ó¤Ï¥á¥½¥Ã¥ÉÆâ¤ÇÀë¸À¤Î¤ß¤·¤Æ¤¤¤Þ¤¹¡£(ÊÑ¿ô¤Î¥¹¥³¡¼¥×¤¬¥á¥½¥Ã¥ÉÆâ¤Î¤ß¤Ç»ÈÍѤǤ¤ì¤Ð¤è¤¤¤¿¤á¡¢Àë¸À¥Õ¥£¡¼¥ë¥É¤Ç¤Ï¤Ê¤¯¥á¥½¥Ã¥ÉÆâ¤ÇÀë¸À¤·¤Æ¤¤¤Þ¤¹¡£)
¡¡Dictionary<EtoType, int> dictionary = new Dictionary<EtoType, int>();
¡¡Key¤¬EtoType·¿¡¢Value¤¬int·¿¡¢ÊÑ¿ô̾¤Ïdictionary¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¡¡Add¥á¥½¥Ã¥É¤Ç¤Ï°ú¿ô¤Ë»ØÄꤷ¤¿ÃͤòÍ×ÁǤËÄɲ乤뤳¤È¤¬½ÐÍè¤Þ¤¹¡£List¤ÎAdd¥á¥½¥Ã¥É¤ÈƱ¤¸¤Ç¤¹¤¬¡¢Key¤ÈValue¤ÎξÊý¤ò»ØÄꤷ¤ÆÃͤòÄɲä·¤Þ¤¹¡£
¡¡dictionary.Add(eto.etoType, 1);¡¡¡¡¡¡// °ú¿ô¤ËKey, Value¤ò»ØÄꤹ¤ë
¡¡ContainsKey¥á¥½¥Ã¥É¤Ç¤Ï¡¢°ú¿ô¤Ë»ØÄꤷ¤¿Key¤ÎÃͤ¬¡¢ÂоݤÎDictionary¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤òȽÃǤ·
´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï true¡¢´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï false ¤òÌ᤹½èÍý¤Ç¤¹¡£
¡¡if (dictionary.ContainsKey(eto.etoType)) { }
¡¡dictionary¤¬¸¡º÷ÂоݤÎDictionary¤Ç¤¹¡£¤³¤ÎDictionary¤ËÂФ·¤Æ¡¢ContainsKey¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¡¢Í×ÁǤÎÃæ¤Ë¤¢¤ë Key ¤ÎÃÍ¤Ë eto.etoType ¡¢
¤Ä¤Þ¤ê £µ¤Ä¤Î´³»Ù¤Î¤¦¤Á¡¢¤É¤Î EtoType ¤Ç¤¢¤ë¤«¤ò etoListÆâ¤ò½çÈÖ¤ËȽÄꤷ¤Æ¤¤¤Þ¤¹
¤³¤Î½èÍý¤Î·ë²Ì¤Ë¤è¤Ã¤Æ¡¢Dictionary¤ËÍ×ÁǤòÄɲä·¤¿¤ê¡¢¤¹¤Ç¤Ë¤¢¤ëÍ×ÁǤˤĤ¤¤Æ¤ÏValue¤ÎÃͤòÁý¤ä¤¹½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡¤³¤ÎIfʸÀá¤Î½èÍý¤Ë¤è¤Ã¤ÆdictionaryÊÑ¿ô¤Ë¤Ï¡¢£µ¤Ä¤Î´³»Ù¤ÎÍ×ÁǤ¬½ç¤ËÄɲ䵤졢¤¹¤Ç¤ËÄɲ䵤ì¤Æ¤¤¤ë´³»Ù¤Ë¤Ä¤¤¤Æ¤Ï¿ô¤òÁý¤ä¤·¤Æ¤¤¤¯¡¢¤È¤¤¤¦½èÍý¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£
¤½¤·¤Æ¡Ö¤¹¤Ç¤ËÄɲ䵤ì¤Æ¤¤¤ë´³»Ù¡×¤È¤¤¤¦¾ðÊó¤ò¡¢º£²ó¤ÏContainsKey¥á¥½¥Ã¥É¤òÍѤ¤¤Æ¡¢if¾ò·ï¤Îʬ´ô¤ËÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
¡¡KeyValuePair¹½Â¤ÂΤϡ¢DictionaryÆâ¤ÎKey¤ÈValue¤ÎξÊý¤ò¼èÆÀ¤¹¤ë½èÍý¤Ç¤¹¡£
¤³¤³¤Ç¤Ï¤³¤Î½èÍý¤òÍøÍѤ·¤Æ¡¢5¤Ä¤Î¼ïÎà¤Î´³»Ù¤¬DictionaryÆâ¤ËÍ×ÁǤȤ·¤ÆÄɲ䵤졢¤½¤Î¿ô¤¬¤½¤ì¤¾¤ì¤¤¤¯¤Ä¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Æ¤¤¤Þ¤¹¡£
¡¡foreach (KeyValuePair<EtoType, int> keyValuePair in dictionary) { ¡¡¡¡Debug.Log("´³»Ù : " + keyValuePair.Key + " ¿ô : " + keyValuePair.Value); }
¥Ç¥Ð¥Ã¥°¥í¥°¤Ç³Îǧ
¡¡Linq¡Ê¥ê¥ó¥¯¡Ë¤È¤Ï¡¢¥³¥ì¥¯¥·¥ç¥ó(Dictionary¤äList¤Ê¤É)¤ÎÍ×ÁǤòÁàºî¤·¤Æ¡¢¸¡º÷¤·¤¿¤ê½¸·×¤¹¤ë½èÍý¤ò´Ê·é¤Ëµ½Ò¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¥é¥¤¥Ö¥é¥ê(Ê£¿ô¤Îµ¡Ç½¤ò¤Þ¤È¤á¤¿¤â¤Î)¤Ç¤¹¡£
¡¡Linq¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤ÏÀë¸À¤¬É¬Íפˤʤê¤Þ¤¹¡£¡¡
using System.Linq;
¡¡Linq¤òµ½Ò¤¹¤ëºÝ¤Ë¤Ï¥é¥à¥À¼°¤Îµ½Ò¤òÍѤ¤¤Þ¤¹¡£¥é¥à¥À¼°¤Ë¤Ä¤¤¤Æ¤Ï¤³¤Á¤é¤ò¤´³Îǧ¤¯¤À¤µ¤¤¡£
¤Þ¤¿¤³¤Î¥Ú¡¼¥¸Æâ¤Î²¼Ãʤˤ⵻ö¤¬¤¢¤ê¤Þ¤¹¡£(¥é¥à¥À¼°¤Ë¤è¤ëÌá¤êÃͤνèÍý)
SamuraiBlogÍÍ
¡ÚC#ÆþÌç¡ÛLINQ¤Î»È¤¤ÊýÁí¤Þ¤È¤á(Select¡¢Where¡¢GroupBy¤Ê¤É)
https://www.sejuku.net/blog/56519
¡¡Linq¤Ë¤Ï¿¤¯¤Îµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¤¬º£²óÍøÍѤ·¤Æ¤¤¤ëµ¡Ç½¤Ë¤Ä¤¤¤Æ¤Þ¤È¤á¤Æ¤ª¤¤Þ¤¹¡£
¤½¤Î¤Û¤«¤Îµ¡Ç½¤Ë¤Ä¤¤¤Æ¤Ïµ»ö¤¬¤¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¤¬¡¢¤³¤Á¤é¤Î¥µ¥¤¥È¤â»²¹Í¤Ë¤Ê¤ê¤Þ¤¹¡£
ÃÏÊ¿Àþ¤Ë¹Ô¤¯ÍÍ
LINQ¤Î³ÈÄ¥¥á¥½¥Ã¥É°ìÍ÷¤È¡¢¤Û¤ÜÁ´Éô¤Î¥µ¥ó¥×¥ë¤òºî¤Ã¤Æ¤ß¤Þ¤·¤¿¡£
https://yujisoftware.hatenablog.com/entry/20111031...
¡¡»ØÄꤷ¤¿¥³¥ì¥¯¥·¥ç¥ó¤ò¡¢»ØÄꤷ¤¿°ú¿ô¤ÎÃͤò´ð½à¤Ë¡¢¥³¥ì¥¯¥·¥ç¥óÆâ¤ÎÍ×ÁǤÎʤӽç¤ò¹ß½çʤӤ˥½¡¼¥È¤·¤Þ¤¹¡£
¡¡dictionary.OrderByDescending(x => x.Value)
¡¡¤³¤Î¥á¥½¥Ã¥É¤ÎÁ°¤Ë½ñ¤«¤ì¤Æ¤ë¥³¥ì¥¯¥·¥ç¥ó¡¢¤¢¤ë¤¤¤Ï¥á¥½¥Ã¥É¤ÎÌá¤êÃͤËÂФ·¤Æ½èÍý¤¬¹Ô¤ï¤ì¤Þ¤¹¤Î¤Çº£²ó¤Î¾ì¹ç¤Ë¤Ï
dictionaryÊÑ¿ôÆâ¤Ë¤¢¤ë¤¹¤Ù¤Æ¤ÎÍ×ÁǤËÂФ·¤Æ¹ß½çʤӤˤè¤ë¥½¡¼¥È½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£Ê¤ÓÂؤ¨¤ë´ð½à¤È¤Ê¤ëÃͤˤϡ¢Value ¤ÎÃͤò»ØÄꤷ¤Æ¤¤¤Þ¤¹¡£
¤³¤ÎDictionary¤Ï<EtoType, int>¤ÇÀë¸À¤·¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢Value ¤Ï int ¤ÎÃͤˤʤê¤Þ¤¹¡£
¡¡¤½¤Î¤¿¤á¡¢int¤ÎÃͤ¬Â礤¤Í×ÁǤòÀèƬ¤Ë¡¢DictionaryÆâ¤ÎʤÓÂؤ¨¤Î½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡¤³¤Î¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢¥³¥ì¥¯¥·¥ç¥óÆâ¤ÎºÇ½é¤ÎÍ×ÁǤòÊÖ¤·¤Þ¤¹¡£¤³¤Î½èÍý¤ò¹Ô¤¦Á°¤ËOrderByDescending¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç
Dictionary¤Îʤӽç¤Ï¹ß½ç¤ËÊ¤Óľ¤µ¤ì¤Æ¤¤¤ë¾õÂ֤Ǥ¹¡£¤½¤ÎºÇ½é¤ÎÍ×ÁǤò¼èÆÀ¤¹¤ë¤È¤¤¤¦½èÍý¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢
²¼µ¤Î½èÍý¤Î¾ì¹ç¤Ë¤Ï¡¢ºÇ¤â¿ô¤Î¿¤¤´³»Ù¤Î¼ïÎà(EtoType)¤¬ÃͤȤ·¤ÆÊ֤뤳¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¤½¤·¤Æ¤½¤Î·ë²Ì¤¬¡¢maxEtoType ÊÑ¿ô¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£º¸Êդȱ¦Êդη¿¤¬Æ±¤¸¤Ç¤¢¤ë¤³¤È¤¬Ê¬¤«¤ê¤Þ¤¹¡£
¡¡EtoType maxEtoType = dictionary.OrderByDescending(x => x.Value).First().Key;
¡¡Linq¤Ç¤Ï¡¢¥á¥½¥Ã¥É¤Î¸å¤Ë¥Ô¥ê¥ª¥É¤ò¤¦¤Ä¤³¤È¤Ç¡¢Á°¤Î½èÍý¤Ë³¤±¤Æ¾¤Î¥á¥½¥Ã¥É¤Î½èÍý¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£DoTween¤ÎSetEase¥á¥½¥Ã¥É¤äOnComplete¥á¥½¥Ã¥É¤Ê¤É¤ÈƱ¤¸¤Ç¤¹¡£
¤³¤Î¤è¤¦¤Ë£±¤Ä¤Î½èÍý¤ËÊ£¿ô¤Î¥á¥½¥Ã¥É¤ò½ñ¤¤¤Æ¡¢Á°¤Î½èÍý¤Î·ë²Ì¤ò¼õ¤±¤Æ¡¢¼¡¤Ë½ñ¤«¤ì¤¿¥á¥½¥Ã¥É¤ò½èÍý¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¤³¤ÎµË¡¤ò¥á¥½¥Ã¥É¥Á¥§¡¼¥ó¤È¸Æ¤Ó¤Þ¤¹¡£
¡¡EtoType maxEtoType = dictionary.OrderByDescending(x => x.Value).First().Key;
¡¡º£²ó¤Î¥±¡¼¥¹¤Ç¤Ï¤Þ¤º dictionaryÊÑ¿ô¤ËÂФ·¤Æ OrderByDescending¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¡¢ListÆâ¤Îʤӽ礬¹ß½çʤӤ˥½¡¼¥ÈÁàºî¤µ¤ì¤Þ¤¹¡£
¤½¤Î·ë²Ì¤ò¼õ¤±¤ÆFirst()¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤ë¡¢¤È¤¤¤¦½èÍý¤Îή¤ì¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
ÊÌ¡¹¤Î½èÍý¤È¤·¤Æµ½Ò¤ò¤¹¤ëɬÍפ¬¤Ê¤¤¤¿¤á¡¢½èÍý¤òÄɤ¤¤ä¤¹¤¯¡¢¤Þ¤¿´Ê·é¤Ë½ñ¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡ÉáÃʥ᥽¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Î°ú¿ô¤Ë¤Ï¡¢ÊÑ¿ô¤Ç¤¢¤Ã¤¿¤ê¡¢¼Â¿ô¤ò»ØÄꤹ¤ë¤³¤È¤¬Â¿¤¤¤Ç¤¹¤¬¡¢
¸Æ¤Ó½Ð¤·Àè¤Î°ú¿ô¤ÈƱ¤¸·¿¤ÎÌá¤êÃͤò»ý¤Ä¥á¥½¥Ã¥É¤Ç¤¢¤ì¤Ð¡¢¤½¤ì¤ò¥á¥½¥Ã¥É¤Î°ú¿ô¤È¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¤³¤³¤Ç¤Ï2¤«½ê¤ÇÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£½çÈ֤˸«¤Æ¤¤¤¤Þ¤¹¡£
¡¡¤Þ¤º¤Ï¥á¥½¥Ã¥É¤Î°ú¿ô¤È¤·¤Æ¡¢Ìá¤êÃͤò»ý¤Ä¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹½èÍý¤Ç¤¹¡£
¤³¤Î¾ì¹ç¡¢°ú¿ô¤ÎÃͤˤÏÌá¤êÃͤò»ý¤Ä¥á¥½¥Ã¥É¤Î½èÍý·ë²Ì(return¤µ¤ì¤¿ÃÍ)¤¬ÃͤȤ·¤Æ»È¤ï¤ì¤Þ¤¹¡£
¡¡¥á¥½¥Ã¥É¤Î°ú¿ô¤Î·¿ ¡¡public IEnumerator SetUpSkillButton(UnityAction unityAction) {
¡¡¾åµ¤Î¥á¥½¥Ã¥É¤Ç¤¢¤ì¤Ð¡¢UnityAction·¿¤ò°ú¿ô¤È¤·¤Æ¤¤¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢¤³¤Î°ú¿ô¤ò¸Æ¤Ó½Ð¤·¤Æ½èÍý¤ò¹Ô¤¦¤Ë¤Ï¡¢
°ú¿ô¤ËUnityAction·¿¤ÎÃͤòÅϤ¹É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
¡¡¾åµ¤Î¥á¥½¥Ã¥É¤Î¸Æ¤Ó½Ð¤· ¡¡yield return StartCoroutine(uiManager.SetUpSkillButton(GetSkill(skillType)));
¡¡°ú¿ô¤ò³Îǧ¤·¤Þ¤·¤ç¤¦¡£ÊÑ¿ô¤Ç¤â¼Â¿ô¤Ç¤â¤Ê¤¯¡¢¥á¥½¥Ã¥É¤¬°ú¿ô¤È¤·¤Æµ½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤½¤ì¤Ç¤Ï¼¡¤Ë¡¢¤³¤ÎGetSkill¥á¥½¥Ã¥É¤ò³Îǧ¤·¤Æ¤ß¤Þ¤¹¡£
¡¡Ìá¤êÃͤò»ý¤Ä¥á¥½¥Ã¥É public UnityAction GetSkill(SkillType chooseSkillType) { switch (chooseSkillType) { case SkillType.DeleteMaxEtoType: return DeleteMaxEtoType; // TODO ¥¹¥¥ë¤¬Áý¤¨¤¿¾ì¹ç¤Ë¤ÏÄɲ乤ë } return null; }
¡¡Ìá¤êÃͤò»ý¤Ä¥á¥½¥Ã¥É¤Ç¤¢¤ë¤¿¤á¡¢void¤Ç¤Ï¤Ê¤¯¡¢»ØÄꤷ¤Æ¤¤¤ë·¿¤ò return ½èÍý¤Ë¤è¤Ã¤Æ¡¢¸Æ¤Ó½Ð¤·¸µ¤ËÃͤòÌ᤹½èÍý¤¬¼Â¹Ô¤Ç¤¤ë¥á¥½¥Ã¥É¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡¤³¤ÎGetSkill¥á¥½¥Ã¥É¤Ç¤Ï°ú¿ô¤È¤·¤Æ¼õ¤±¼è¤Ã¤¿SkillType·¿¤ÎÊÑ¿ô¤ò¸µ¤Ë¡¢UnityAction·¿¤ÎÃͤò¡¢¸Æ¤Ó½Ð¤·¸µ¤Ç¤¢¤ëSetUpSkillButton¥á¥½¥Ã¥É¤Î°ú¿ô¤È¤·¤ÆÌᤷ¤Æ¤¤¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢Àè¤Û¤É¤Î½èÍý¤ËÌá¤êÃͤò¤¢¤Æ¤Ï¤á¤Æ¤ß¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê½èÍý¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡yield return StartCoroutine(uiManager.SetUpSkillButton(GetSkill(skillType)¤Î½èÍý·ë²Ì¤È¤·¤Æ¡¢UnityAciton·¿¤ÎÃͤ¬Æþ¤Ã¤Æ¤¤¤ë)); ¡¡¡¡¢¡¡¸Æ¤Ó½Ð¤·¸µ¤È¸Æ¤Ó½Ð¤·Àè¤Î¥á¥½¥Ã¥É¤Î·¿¤¬¡ÖUnityAction·¿¡×¤Ç°ìÃפ¹¤ë¤¿¤á¡¢½èÍý¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤¤ë ¡¡ ¡¡public IEnumerator SetUpSkillButton(UnityAction unityAction) {¡¡¡¡<=¡¡¤³¤ÎÊÑ¿ô¤Ë¤Ï¡¢GetSkill(skillType)¤Î½èÍý·ë²Ì¤¬ÂåÆþ¤µ¤ì¤Æ¤¤¤ë¡¡
¡¡
¡¡°Ê¾å¤Î¤è¤¦¤Ê½èÍý¤Îή¤ì¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ÊÑ¿ô¤ä¼Â¿ô¤ÎÃͤÀ¤±¤Ç¤Ï¤Ê¤¯¡¢Ìá¤êÃͤÎÃͤâ°ú¿ô¤È¤·¤ÆÅϤ¹¤³¤È¤¬¤Ç¤¤ë¤³¤È¤ò³Ð¤¨¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£
¡¡
¡¡List¤Ë¤ÏRemoveAll¥á¥½¥Ã¥É¤È¤¤¤¦½èÍý¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î½èÍý¤Ï°ú¿ô¤Ë»ØÄꤷ¤¿¾ò·ï¤Ë¹çÃפ¹¤ëÍ×ÁǤòListÆ⤫¤éºï½ü¤¹¤ë½èÍý¤Ç¤¹¡£
°ú¿ô¤Ï¥Ç¥ê¥²¡¼¥È¤È¸Æ¤Ð¤ì¤ë½èÍý¤¬ÍѤ¤¤é¤ì¤Æ¤ª¤ê¡¢ÊÑ¿ô¤ò»ØÄꤹ¤ë¤«¡¢Ìá¤êÃͤò»ý¤Ä¥á¥½¥Ã¥É¤ò»ØÄꤹ¤ë¤«¡¢¥é¥à¥À¼°¤Ë¤è¤ëµ½Ò¤Ë¤è¤Ã¤Æºï½ü¤¹¤ëÍ×ÁǤò»ØÄꤹ¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡º£²ó¤Ï¥é¥à¥À¼°¤òÍѤ¤¤ë¤³¤È¤Ç¡¢List¤«¤éºï½ü¤¹¤ëÍ×ÁǤò¡¢»ØÄꤷ¤¿¾ò·ï¤Ë¾È¤é¤·¹ç¤ï¤»¤Æ·èÄꤹ¤ë½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡// etoList¤«¤éÂоݤδ³»Ù¤òºï½ü ¡¡etoList.RemoveAll(x => x.etoType == maxEtoType);
¡¡¤Þ¤º°ú¿ô¤ÎºÇ½é¤Î x ÊÑ¿ô¤Ç¤¹¤¬¡¢¤³¤ì¤ÏǤ°Õ¤ÎÊÑ¿ô¤ò»ØÄê¤Ç¤¤Þ¤¹¡£¤³¤³¤Ç¤Ï x ¤ÈÀë¸À¤·¤Æ¤¤¤Þ¤¹¡£
¤³¤Î x ÊÑ¿ô¤ÎÃͤǤ¹¤¬¡¢etoList ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤ÎÍ×ÁǤò»Ø¤·¼¨¤·¤Æ¤¤¤Þ¤¹¡£¤½¤·¤ÆÍ×ÁǤÎÃͤ¬£±¤Ä¤º¤Ä¡¢½çÈ֤ˤ³¤Î x ¤ÎÃͤȤ·¤ÆÂåÆþ¤µ¤ì¤Æ¤¤¤¤Þ¤¹¡£
¡¡ÂåÆþ¤µ¤ì¤¿Ãͤλý¤Ä¾ðÊó¤Î¤¦¤Á¡¢etoType ¤È¤¤¤¦Ã;ðÊ󤬤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤³¤ÎÃÍ¤È maxEtoType ¤ÎÃͤȤ¬¹çÃפ¹¤ë¤«¤ò¾ò·ï¤Ë¡¢¸¡º÷¤·¤Æ¤¤¤¤Þ¤¹¡£
x.etoType == maxEtoType ¤ÎÉôʬ¤¬¾ò·ï¤Ç¤¹¡£== ¤Ç¤¹¤Î¤Ç¡¢º¸Êդȱ¦ÊÕ¤ÎÃͤ¬¹çÃפ·¤¿Í×ÁǤˤĤ¤¤Æ¤Ï¡¢ºï½ü¤ÎÂоݤȤʤäơ¢List¤«¤éºï½ü¤µ¤ì¤Þ¤¹¡£
¡¡½èÍý¤ÎÆâÍƤò¤ï¤«¤ê¤ä¤¹¤¯¤¹¤ë¤¿¤á¡¢etoList¤ÎÍ×ÁǤòÎã¤Ë½ñ¤½Ð¤·¤Æ¤ß¤Æ¡¢½èÍý¤Îή¤ì¤òÄɤäƤߤޤ¹¡£
¡¡etoList.Add(eto0); ¡¡etoList.Add(eto1); ¡¡etoList.Add(eto2); ¡¡if(eto0.etoType == maxEtoType){ // ¾ò·ï¤Ë¹çÃפ·¤¿¤Î¤Ç¤³¤ÎÍ×ÁǤòList¤«¤éºï½ü¤·¤Þ¤¹¡£¹çÃפ·¤Ê¤±¤ì¤Ð²¿¤â½èÍý¤»¤º¤Ë¡¢²¼¤Î½èÍý¤Ë¤¦¤Ä¤ê¤Þ¤¹ ¡¡¡¡¡¡etoList.Remove(eto0); ¡¡} if(eto1.etoType == maxEtoType){ // ¾ò·ï¤Ë¹çÃפ·¤¿¤Î¤Ç¤³¤ÎÍ×ÁǤòList¤«¤éºï½ü¤·¤Þ¤¹¡£¹çÃפ·¤Ê¤±¤ì¤Ð²¿¤â½èÍý¤»¤º¤Ë¡¢²¼¤Î½èÍý¤Ë¤¦¤Ä¤ê¤Þ¤¹ ¡¡¡¡¡¡etoList.Remove(eto1); ¡¡} ¡¡if(eto2.etoType == maxEtoType){ // ¾ò·ï¤Ë¹çÃפ·¤¿¤Î¤Ç¤³¤ÎÍ×ÁǤòList¤«¤éºï½ü¤·¤Þ¤¹¡£¹çÃפ·¤Ê¤±¤ì¤Ð²¿¤â½èÍý¤»¤º¤Ë¡¢²¼¤Î½èÍý¤Ë¤¦¤Ä¤ê¤Þ¤¹ ¡¡¡¡¡¡etoList.Remove(eto2); ¡¡}
¡¡ifʸ¤«¤é¤ÎϢ³¤·¤¿½èÍý¤¬¡¢¥é¥à¥À¼°¤Î (x => x.etoType == maxEtoType) Éôʬ¤Î½èÍý¤Ç¤¹¡£x ¤ÎÃͤ¬½çÈ֤ˡ¢¤È¤¤¤¦¤Î¤Ï¡¢¤³¤Îή¤ì¤ò»Ø¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¤³¤ì¤ÏÎãÂê¤Ç¤¹¤Î¤Ç¤è¤¤¤Ç¤¹¤¬¡¢ËÜÍèList¤È¤Ï²ÄÊѤǤ¢¤ê¡¢¤½¤ÎÅÔÅÙ¡¢¥²¡¼¥à¤Î¾õÂ֤ˤè¤Ã¤ÆÍ×ÁǤ¬¤¤¤¯¤ÄÆþ¤Ã¤Æ¤¤¤ë¤«¤ÏÆÃÄê¤Ç¤¤Þ¤»¤ó¡£
¤Ä¤Þ¤ê¡¢ifʸ¤òÍÑ°Õ¤·¤Æ¤¤¤¿¤Î¤Ç¤Ï½èÍý¤¬¹Ô¤¨¤Ê¤¤¾õ¶·¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£¡¡
¡¡¤½¤Î¤¿¤á¡¢º£²ó¤Î¤è¤¦¤Ê¥±¡¼¥¹¤Ç¤Ï¡¢¥é¥à¥À¼°¤òÍѤ¤¤ë¤³¤È¤Ç¡¢¤½¤Î»þ¤ÎList¤ÎÍ×ÁǤò¤¹¤Ù¤Æ¾ò·ï¤ËÅö¤Æ¤Ï¤á¤Æ³Îǧ¤¹¤ë¡¢¤È¤¤¤¦½èÍý¤¬Íý¤Ë¤«¤Ê¤Ã¤Æ¤¤¤ë½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡UnityAction·¿¤ÏUnity¤¬ÍÑ°Õ¤·¤Æ¤¤¤ë¥Ç¥ê¥²¡¼¥È¤Ç¤¹¡£¥Ç¥ê¥²¡¼¥È¤Ï¤ï¤«¤ê¤ä¤¹¤¯¤¤¤¦¤È¡¢¥á¥½¥Ã¥É¤òÂåÆþ¤¹¤ë¤³¤È¤¬¤Ç¤¤ë·¿¡ÊÊÑ¿ô¡Ë¤Ç¤¹¡£
¡¡UnityAction·¿¤ÏUnityEngine.Events¤È¤·¤Æ̾Á°¶õ´Ö¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¤Þ¤¹¤Î¤Ç¡¢»ÈÍѤ¹¤ë¾ì¹ç¤Ë¤ÏÀë¸À¤¬É¬ÍפǤ¹¡£
°ì»þŪ¤Ë»È¤¦¤À¤±¤Ê¤é¤½¤Î¤È¤¤Ë£±²ó¤À¤±Àë¸À¤·¤Æ¤âÍøÍѤǤ¤Þ¤¹¤¬¡¢using¤ÇÀë¸À¤·¤Æ¤ª¤¤Þ¤·¤ç¤¦¡£
¡¡using UnityEngine.Events;
¡¡UnityAction·¿¤Ï¥Ç¥ê¥²¡¼¥È¤Ç¤¹¤Î¤Ç¡¢²¼µ¤Î¤è¤¦¤Ë¥á¥½¥Ã¥É¤òÂåÆþ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡Ìá¤êÃͤò»ý¤Ä¥á¥½¥Ã¥É public UnityAction GetSkill(SkillType chooseSkillType) { switch (chooseSkillType) { case SkillType.DeleteMaxEtoType: return DeleteMaxEtoType;¡¡¡¡¡¡¡¡¡¡¡¡<=¡¡DeleteMaxEtoType¥á¥½¥Ã¥É¤òUnityAction·¿¤È¤·¤ÆÂåÆþ¤·¤Æ¤¤¤ë // TODO ¥¹¥¥ë¤¬Áý¤¨¤¿¾ì¹ç¤Ë¤ÏÄɲ乤ë } return null; }
¡¡¤½¤Î¤¿¤á¼¡¤Î¥á¥½¥Ã¥É¤Î°ú¿ô¤Ë¤Ï¡¢DeleteMaxEtoType¤È¤¤¤¦¥á¥½¥Ã¥É¤¬UnityAction¤ÎÃͤȤ·¤ÆÂåÆþ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡public IEnumerator SetUpSkillButton(UnityAction unityAction) {¡¡¡¡<=¡¡¤³¤ÎÊÑ¿ô¤Ë¤Ï¡¢GetSkill(skillType)¤Î½èÍý·ë²Ì¡¡=¡¡DeleteMaxEtoType¤È¤¤¤¦¥á¥½¥Ã¥É¤¬ÂåÆþ¤µ¤ì¤Æ¤¤¤ë ¡¡¡¡¡¡// UnityEvent¤ËunityAction¤òÅÐÏ¿(UnityAction¤Ë¤Ï¥á¥½¥Ã¥É¤¬ÂåÆþ¤µ¤ì¤Æ¤¤¤ë) unityEvent.AddListener(unityAction);¡¡<=¡¡¤³¤ÎAddListner¥á¥½¥Ã¥É¤ËÅÐÏ¿¤µ¤ì¤ëÃͤϡ¢DeleteMaxEtoType¤È¤¤¤¦¥á¥½¥Ã¥É¤Ë¤Ê¤ê¤Þ¤¹
¡¡¥Ç¥ê¥²¡¼¥È¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥á¥½¥Ã¥É¤âÊÑ¿ô¤ÎÃͤȤ·¤ÆÂåÆþ¤·¡¢Â¾¤Î°ú¿ô¤ÈƱ¤¸¤è¤¦¤ËƱ¤¸·¿Æâ¤Ç¤Î¼õ¤±ÅϤ·¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡°Ê¾å¤Ç¥¹¥¥ë¤Î¼ÂÁõ¤Ë¤«¤«¤ï¤ë¤¹¤Ù¤Æ¤Î¼ê½ç¤¬½ªÎ»¤·¤Þ¤·¤¿¡£¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÆ°ºî¤ò³Îǧ¤·¤Æ¤¤¤¤Þ¤¹¡£
¡¡³Îǧ¥Ý¥¤¥ó¥È¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
¡¡ÅÀ¿ô¤Ï²Ã»»¤µ¤ì¤Þ¤¹¤¬¡¢¥¹¥¥ë¥Ý¥¤¥ó¥È¤ÏÁý¤¨¤Ê¤¤¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£
https://gyazo.com/dac33a484835491f9369998487bda351
https://gyazo.com/a6f2f765197abf3016bdabfb8fad86e5
¡¡°Ê¾å¤Ç¥¹¥¥ë¤Î¼ÂÁõ¤Ï´°À®¤Ç¤¹¡£ÂçÊѤªÈè¤ìÍͤǤ·¤¿¡ª
¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£
¡¡¼¡¤Ï ȯŸ£±£² ¤Ç¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯