ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2023ǯ09·î19Æü(²Ð) 20:41:14ÍúÎò
¡¡¤Ê¤ª¡¢¥µ¥ó¥×¥ë¥³¡¼¥É¤Î Dictionary ¤Î½é´ü²½¤Ë¤Ï Target-typed new ɽ¸½¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
¡¡°Ê²¼¤Ï¡¢¥¢¥¤¥Æ¥à¤ÈÃÆÌô¤Î´ÉÍý¤ËDictionary¤ò³èÍѤ¹¤ëÎã¤Ç¤¹¡£
¡¡¤³¤Î¥³¡¼¥É¤Ï¡¢¥¢¥¤¥Æ¥à¤ÈÃÆÌô¤ÎÀ¸À®¡¢´ÉÍý¡¢¤ª¤è¤Ó»ÈÍѤò Dictionary ¤Ë¤è¤ê¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
enum ¤òºîÀ®¤·¤Æ¤½¤ì¤¾¤ì¤Î¥¡¼¤È¤·¡¢½ê»ý¤·¤Æ¤¤¤ë¿ô¤òÃͤȤ·¤Þ¤¹¡£
using System.Collections.Generic; public enum ItemType { HealthPotion, AmmoPack, Shield, } public enum AmmoType { PistolAmmo, ShotgunShells, RifleAmmo, } public class GameManager : MonoBehaviour { // ¥¢¥¤¥Æ¥à¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹ private Dictionary<ItemType, int> itemInventory = new (); // ÃÆÌô¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹ private Dictionary<AmmoType, int> ammoInventory = new (); private void Start() { // ½é´ü¥¢¥¤¥Æ¥à¤ÈÃÆÌô¤ÎÀßÄê itemInventory[ItemType.HealthPotion] = 3; itemInventory[ItemType.AmmoPack] = 5; itemInventory[ItemType.Shield] = 1; ammoInventory[AmmoType.PistolAmmo] = 50; ammoInventory[AmmoType.ShotgunShells] = 20; ammoInventory[AmmoType.RifleAmmo] = 100; // ¥¢¥¤¥Æ¥à¤Î»ÈÍÑÎã UseItem(ItemType.HealthPotion); UseItem(ItemType.AmmoPack); // ÃÆÌô¤Î»ÈÍÑÎã UseAmmo(AmmoType.PistolAmmo, 10); UseAmmo(AmmoType.ShotgunShells, 5); } // ¥¢¥¤¥Æ¥à¤ò»ÈÍѤ¹¤ë¥á¥½¥Ã¥É private void UseItem(ItemType itemType) { if (itemInventory.ContainsKey(itemType) && itemInventory[itemType] > 0) { // ¥¢¥¤¥Æ¥à¤ò»ÈÍѤ¹¤ë½èÍý¤ò¤³¤³¤ËÄɲà Debug.Log($"¥¢¥¤¥Æ¥à¤ò»ÈÍÑ : { itemType }"); itemInventory[itemType]--; } else { Debug.Log($"¥¢¥¤¥Æ¥à¤¬ÉÔ¤·¤Æ¤¤¤Þ¤¹ : { itemType }"); } } // ÃÆÌô¤ò»ÈÍѤ¹¤ë¥á¥½¥Ã¥É private void UseAmmo(AmmoType ammoType, int amount) { if (ammoInventory.ContainsKey(ammoType) && ammoInventory[ammoType] >= amount) { // ÃÆÌô¤ò»ÈÍѤ¹¤ë½èÍý¤ò¤³¤³¤ËÄɲà Debug.Log($"ÃÆÌô¤ò»ÈÍÑ : { ammoType } (¿ôÎÌ : { amount })"); ammoInventory[ammoType] -= amount; } else { Debug.Log($"ÃÆÌô¤¬ÉÔ¤·¤Æ¤¤¤Þ¤¹ : { ammoType }"); } } }
¡¡¤³¤Î¥µ¥ó¥×¥ë¥³¡¼¥É¤Ç¤Ï¡¢2¤Ä¤ÎDictionary¤ò»ÈÍѤ·¤Æ¥¢¥¤¥Æ¥à¤ÈÃÆÌô¤ò´ÉÍý¤·¤Æ¤¤¤Þ¤¹¡£
¡¡Start¥á¥½¥Ã¥É¤Ç½é´üÃͤòÀßÄꤷ¡¢UseItem¤ÈUseAmmo¥á¥½¥Ã¥É¤ò»ÈÍѤ·¤Æ¥¢¥¤¥Æ¥à¤ÈÃÆÌô¤ò»ÈÍѤǤ¤Þ¤¹¡£
¥¢¥¤¥Æ¥à¤ÈÃÆÌô¤Î¼ïÎà¤Ïenum¤Ç´ÉÍý¤µ¤ì¡¢¤½¤ì¤¾¤ì¤Î¼ïÎà¤ËÂбþ¤¹¤ë¿ôÎ̤¬Dictionary¤ÇÄÉÀפµ¤ì¤Þ¤¹¡£
¡¡¥¢¥¤¥Æ¥à¤ÈÃÆÌô¤ò»ÈÍѤ¹¤ëºÝ¤Ë¤Ï¡¢Dictionary¤ò¥Á¥§¥Ã¥¯¤·¤ÆÂ¸ºß¤¹¤ë¤«¡¢¿ôÎ̤¬½½Ê¬¤«¤É¤¦¤«¤ò³Îǧ¤·¡¢É¬Íפ˱þ¤¸¤Æ¸º»»¤·¤Þ¤¹¡£
¡¡¤³¤Î¥³¡¼¥É¤Ï¡¢¥²¡¼¥àÆâ¤Î¥¢¥¤¥Æ¥à¤ÈÃÆÌô¤Î´ÉÍý¤ËÌòΩ¤Á¡¢Äɲäε¡Ç½¤ä¥í¥¸¥Ã¥¯¤òÁȤ߹þ¤àºÝ¤Î´ðÈפȤʤê¤Þ¤¹¡£
¡¡¥×¥ì¥¤¥ä¡¼¤Î¥¹¥³¥¢¤ò´ÉÍý¤¹¤ë¤¿¤á¤ËDictionary¤ò»ÈÍѤǤ¤Þ¤¹¡£
¡¡¥×¥ì¥¤¥ä¡¼¤Î̾Á°¤ò¥¡¼¤È¤·¡¢¥¹¥³¥¢¤òÃͤȤ·¤ÆÊݸ¤·¤Þ¤¹¡£
using System.Collections.Generic; public class ScoreManager : MonoBehaviour { private Dictionary<string, int> playerScores = new (); private void Start() { // ¥×¥ì¥¤¥ä¡¼¤Î¥¹¥³¥¢¤Î½é´ü²½ playerScores["Player1"] = 0; playerScores["Player2"] = 0; } // ¥¹¥³¥¢¤òÁý¤ä¤¹¥á¥½¥Ã¥É public void IncreaseScore(string playerName, int points) { if (playerScores.ContainsKey(playerName)) { playerScores[playerName] += points; } else { Debug.Log($"¥×¥ì¥¤¥ä¡¼¤¬Â¸ºß¤·¤Þ¤»¤ó : { playerName }"); } } }
¡¡¤³¤Î¥³¡¼¥É¤Ç¤Ï¡¢¥×¥ì¥¤¥ä¡¼¤´¤È¤Ë¥¹¥³¥¢¤òÄÉÀפ·¡¢IncreaseScore¥á¥½¥Ã¥É¤Ç¥¹¥³¥¢¤òÁý¤ä¤¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¡¡Å¨¤¬¥¢¥¤¥Æ¥à¤ò¥É¥í¥Ã¥×¤¹¤ë¾ì¹ç¡¢Dictionary¤ò»ÈÍѤ·¤Æ¥¢¥¤¥Æ¥à¤Î¼ïÎà¤È¥É¥í¥Ã¥×³ÎΨ¤ò´ÉÍý¤Ç¤¤Þ¤¹¡£
enum ¤òºîÀ®¤·¤Æ¥¡¼¤È¤·¡¢¥É¥í¥Ã¥×³ÎΨ¤ÎÃͤòÃͤȤ·¤Þ¤¹¡£
using System.Collections.Generic; public enum ItemType { HealthPotion, AmmoPack, Shield, } public class EnemyDropManager : MonoBehaviour { private Dictionary<ItemType, float> dropTable = new (); private void Start() { // ¥¢¥¤¥Æ¥à¤Î¥É¥í¥Ã¥×³ÎΨ¤ÎÀßÄê dropTable[ItemType.HealthPotion] = 0.3f; dropTable[ItemType.AmmoPack] = 0.2f; dropTable[ItemType.Shield] = 0.1f; } // Ũ¤¬¥¢¥¤¥Æ¥à¤ò¥É¥í¥Ã¥×¤¹¤ë¥á¥½¥Ã¥É public ItemType DropItem() { float randomValue = Random.value; foreach (var kvp in dropTable) { if (randomValue < kvp.Value) { return kvp.Key; } randomValue -= kvp.Value; } // ¥É¥í¥Ã¥×¥¢¥¤¥Æ¥à¤¬¤Ê¤¤¾ì¹ç return ItemType.None; } }
¡¡¤³¤Î¥³¡¼¥É¤Ç¤Ï¡¢¥É¥í¥Ã¥×³ÎΨ¤ò»ý¤Ä¥¢¥¤¥Æ¥à¤È¡¢¥é¥ó¥À¥à¤Ë¥¢¥¤¥Æ¥à¤ò¥É¥í¥Ã¥×¤¹¤ë¥á¥½¥Ã¥É¤¬¤¢¤ê¤Þ¤¹¡£
¥¢¥¤¥Æ¥à¤¬¥É¥í¥Ã¥×¤µ¤ì¤ë³ÎΨ¤ÏDictionary¤Ç´ÉÍý¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¡¡¥²¡¼¥àÆâ¤Î¥¯¥¨¥¹¥È¤Î¿Ê¹Ô¾õ¶·¤òDictionary¤ò»ÈÍѤ·¤Æ´ÉÍý¤Ç¤¤Þ¤¹¡£
¥¯¥¨¥¹¥ÈID¤ò¥¡¼¤È¤·¡¢¿Ê¹Ô¾õ¶·¤ò enum ¤È¤·¤ÆºîÀ®¤·¡¢Îóµó»Ò¤òÃͤȤ·¤ÆÊݸ¤·¤Þ¤¹¡£
using System.Collections.Generic; public enum QuestStatus { InProgress, Completed, Failed, } public class QuestManager : MonoBehaviour { private Dictionary<int, QuestStatus> questStatus = new (); private void Start() { // ¥¯¥¨¥¹¥È¤Î½é´ü¾õÂÖ¤òÀßÄê questStatus[1] = QuestStatus.InProgress; questStatus[2] = QuestStatus.InProgress; } // ¥¯¥¨¥¹¥È¤Î¿Ê¹Ô¾õ¶·¤ò¹¹¿·¤¹¤ë¥á¥½¥Ã¥É public void UpdateQuestStatus(int questID, QuestStatus status) { if (questStatus.ContainsKey(questID)) { questStatus[questID] = status; } else { Debug.Log($"¥¯¥¨¥¹¥È¤¬Â¸ºß¤·¤Þ¤»¤ó : { questID }"); } } }
¡¡¤³¤Î¥³¡¼¥É¤Ç¤Ï¡¢¥¯¥¨¥¹¥È¤Î¿Ê¹Ô¾õ¶·¤òÄÉÀפ·¡¢UpdateQuestStatus¥á¥½¥Ã¥É¤Ç¹¹¿·¤Ç¤¤Þ¤¹¡£
¡¡¥µ¡¼¥Ð¡¼´Ø·¸¤Î¥Ç¡¼¥¿Á÷¼õ¿®¤ËDictionary¤ò»ÈÍѤ¹¤ë°ìÈÌŪ¤Ê¥±¡¼¥¹¤Ï¡¢¥µ¡¼¥Ð¡¼¤«¤é¥¯¥é¥¤¥¢¥ó¥È¤ËÁ÷¿®¤µ¤ì¤ë¥Ç¡¼¥¿¤òɽ¸½¤¹¤ë¤¿¤á¤Ç¤¹¡£
¡¡°Ê²¼¤Ë¡¢¥µ¡¼¥Ð¡¼¤«¤éÁ÷¿®¤µ¤ì¤¿¥×¥ì¥¤¥ä¡¼¾ðÊó¤òDictionary¤ò»È¤Ã¤Æ¼õ¿®¤·¡¢¤½¤ì¤ò¥¯¥é¥¤¥¢¥ó¥È¤ÇÍøÍѤ¹¤ë¥µ¥ó¥×¥ë¥³¡¼¥É¤ò¼¨¤·¤Þ¤¹¡£
¡ãjson¡ä
{ "players": { "player1": { "name": "Alice", "score": 100 }, "player2": { "name": "Bob", "score": 200 }, "player3": { "name": "Charlie", "score": 150 } } }
¡¡¤³¤Î¥Ç¡¼¥¿¤ò¥¯¥é¥¤¥¢¥ó¥È¤Ç¼õ¿®¤·¡¢Dictionary¤ò»ÈÍѤ·¤Æ½èÍý¤·¤Þ¤¹¡£
using System.Collections.Generic; using UnityEngine; public class PlayerInfo { public string name; public int score; } public class ServerDataReceiver : MonoBehaviour { // ¥µ¡¼¥Ð¡¼¤«¤éÁ÷¿®¤µ¤ì¤¿¥Ç¡¼¥¿¤ò³ÊǼ¤¹¤ëDictionary private Dictionary<string, PlayerInfo> playerData = new (); // ¥µ¡¼¥Ð¡¼¤«¤é¤Î¥Ç¡¼¥¿¤ò¼õ¿®¤¹¤ë´Ø¿ô public void ReceiveServerData(string jsonString) { // JSON¥Ç¡¼¥¿¤ò¥Ç¥·¥ê¥¢¥é¥¤¥º¤·¤ÆDictionary¤Ë³ÊǼ Dictionary<string, Dictionary<string, object>> serverData = MiniJSON.Json.Deserialize(jsonString) as Dictionary<string, Dictionary<string, object>>; if (serverData != null && serverData.ContainsKey("players")) { Dictionary<string, object> players = serverData["players"]; foreach (var player in players) { string playerId = player.Key; Dictionary<string, object> playerInfoDict = player.Value as Dictionary<string, object>; // PlayerInfo¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤ÆDictionary¤ËÄɲà PlayerInfo playerInfo = new PlayerInfo { name = playerInfoDict["name"].ToString(), score = int.Parse(playerInfoDict["score"].ToString()) }; playerData[playerId] = playerInfo; } } } // ¥¯¥é¥¤¥¢¥ó¥È¤Ç¥Ç¡¼¥¿¤òÍøÍѤ¹¤ëÎã public void UsePlayerData() { if (playerData.ContainsKey("player1")) { PlayerInfo player1Info = playerData["player1"]; Debug.Log("Player1 Name: " + player1Info.name); Debug.Log("Player1 Score: " + player1Info.score); } } }
¡¡¤³¤Î¥µ¥ó¥×¥ë¥³¡¼¥É¤Ç¤Ï¡¢¥µ¡¼¥Ð¡¼¤«¤éÁ÷¿®¤µ¤ì¤¿JSON¥Ç¡¼¥¿¤ò¼õ¿®¤·¡¢MiniJSON¤ò»ÈÍѤ·¤Æ¥Ç¥·¥ê¥¢¥é¥¤¥º¤·¤Þ¤¹¡£
¥Ç¥·¥ê¥¢¥é¥¤¥º¤µ¤ì¤¿¥Ç¡¼¥¿¤ÏDictionary¤È¤·¤Æ¼èÆÀ¤·¡¢¥¯¥é¥¤¥¢¥ó¥ÈÆâ¤ÇÍøÍѲÄǽ¤Ê·Á¤ËÊÑ´¹¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¼õ¿®¤·¤¿¥Ç¡¼¥¿¤òDictionary¤Ë³ÊǼ¤¹¤ë¤³¤È¤Ç¡¢³Æ¥×¥ì¥¤¥ä¡¼¤Î¾ðÊó¤ò¸úΨŪ¤Ë´ÉÍý¤Ç¤¤Þ¤¹¡£
¤Þ¤¿¡¢É¬Íפ˱þ¤¸¤Æ¥Ç¡¼¥¿¤Î¹¹¿·¤ä½èÍý¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¡¡Dictionary¤ÈList¤Ï¡¢C#¤Ç¥Ç¡¼¥¿¤ò´ÉÍý¤¹¤ë¤¿¤á¤Î°Û¤Ê¤ë¥³¥ì¥¯¥·¥ç¥ó·¿¤Ç¤¹¡£
¤½¤ì¤¾¤ì¤Î»È¤¤Ê¬¤±¤Ë¤ÏÃí°Õ¤¬É¬ÍפǤ¹¡£°Ê²¼¤Ë¡¢Dictionary¤ÈList¤Î¼ç¤Ê°ã¤¤¤ÈÃí°ÕÅÀ¤òÈæ³Ó¤·¤Æ²òÀ⤷¤Þ¤¹¡£
¡¡¡¡¥¡¼¤ÈÃͤΥڥ¢
¡¡¡¡¡¡¡¡¡¡Dictionary¤Ï¥¡¼¤ÈÃͤΥڥ¢¤ò»ý¤Ä¥Ç¡¼¥¿¹½Â¤¤Ç¤¹¡£¥¡¼¤ò»È¤Ã¤ÆÃͤ˥¢¥¯¥»¥¹¤·¤Þ¤¹¡£
¡¡¡¡¡¡¡¡¤³¤ì¤Ï¡¢°ì°Õ¤Î¼±Ê̻Ҥò»ý¤ÄÍ×ÁǤò´ÉÍý¤¹¤ë¤Î¤ËŬ¤·¤Æ¤¤¤Þ¤¹¡£Î㤨¤Ð¡¢¥×¥ì¥¤¥ä¡¼Ì¾¤È¥¹¥³¥¢¡¢¥¢¥¤¥Æ¥à¤Î¼ïÎà¤È¿ôÎ̤ʤɡ£
¡¡¡¡¹â®¤Ê¸¡º÷
¡¡¡¡¡¡¡¡¡¡Dictionary¤Ï¥¡¼¤ËÂФ¹¤ëÃͤò¹â®¤Ë¸¡º÷¤Ç¤¤ë¤¿¤á¡¢Â絬ÌϤʥǡ¼¥¿¥»¥Ã¥È¤Ë¤ª¤¤¤Æ¸úΨŪ¤Ç¤¹¡£
¡¡¡¡¡¡¡¡¸¡º÷»þ´Ö¤Ï¥Ç¡¼¥¿¤Î¥µ¥¤¥º¤Ë°Í¸¤·¤Ê¤¤¤¿¤á¡¢¥ê¥¹¥È¤è¤ê¤âŬ¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¡¡ÉԲĻëÀ(¥·¥ê¥¢¥é¥¤¥ºÉÔ²Ä)
¡¡¡¡¡¡¡¡¡¡Dictionary¤Ï¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ë¤Ïɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£
¡¡¡¡¡¡¡¡Ä̾¥¡¼¤ÈÃͤΥڥ¢¤òɽ¸½¤¹¤ë¤¿¤á¤Ë¥«¥¹¥¿¥à¥¨¥Ç¥£¥¿¤ò¼ÂÁõ¤¹¤ë¤«¡¢¥·¥ê¥¢¥é¥¤¥º²Äǽ¤Ê¥«¥¹¥¿¥à¥¯¥é¥¹¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¡¡Dictionary¤Ï¥¡¼¤¬°ì°Õ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£½ÅÊ£¤¹¤ë¥¡¼¤ò»ý¤Ä¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£
¥¡¼¤Î¥Ï¥Ã¥·¥å¥³¡¼¥É¤¬ÉÔÊѤǤ¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢¥¡¼¤¬Êѹ¹¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¡¡¡¡Í×ÁǤΰìÍ÷
¡¡¡¡¡¡¡¡¡¡List¤ÏÍ×ÁǤΰìÍ÷¤ò´ÉÍý¤¹¤ë¤¿¤á¤Î¥Ç¡¼¥¿¹½Â¤¤Ç¡¢Í×ÁǤؤΥ¢¥¯¥»¥¹¤Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»ÈÍѤ·¤Þ¤¹¡£
¡¡¡¡¡¡¡¡¤³¤ì¤Ï¡¢½ç½ø¤¬½ÅÍפǤ¢¤ê¡¢Í×ÁǤνÅÊ£¤òµöÍÆ¤¹¤ë¾ì¹ç¤ËŬ¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¡¡¥Ç¡¼¥¿¤Î½ç½ø
¡¡¡¡¡¡¡¡¡¡List¤ÏÍ×ÁǤ¬Äɲ䵤줿½ç½ø¤òÊÝ»ý¤·¤Þ¤¹¡£¤³¤ì¤Ï¡¢½ç½ø¤¬½ÅÍפʾì¹ç¡¢Î㤨¤Ð¥×¥ì¥¤¥ä¡¼¤Î¥¿¡¼¥ó¤Î½ç½ø¤Ê¤É¡¢¥ê¥¹¥È¤òÁªÂò¤¹¤ëÍýͳ¤Ç¤¹¡£
¡¡¡¡²Ä»ëÀ(¥·¥ê¥¢¥é¥¤¥º²Äǽ)
¡¡¡¡¡¡¡¡¡¡List¤Ï SerializeField°À¡¢¤¢¤ë¤¤¤Ï public ½¤¾þ»Ò¤ÇÀë¸À¤¹¤ë¤³¤È¤Ç¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
¡¡¡¡¡¡¡¡ListÆâ¤ÎÍ×ÁǤϥꥹ¥È¤È¤·¤ÆÉ½¼¨¤µ¤ì¡¢Í×ÁǤοô¤äÆâÍÆ¤òľÀܳÎǧ¡¢¤ª¤è¤ÓÍ×ÁǤòÊÔ½¸¤·¤¿¤ê¡¢Ê¤ӽç¤òÊѤ¨¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¡¡List¤ÏÍ×ÁǤθ¡º÷¤¬ÃÙ¤¤¤Ç¤¹¡£Í×ÁǤòÆÃÄê¤Î¾ò·ï¤Ç¸¡º÷¤¹¤ë¾ì¹ç¡¢Dictionary¤è¤ê¤â»þ´Ö¤¬¤«¤«¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
Í×ÁÇ¤Î½ç½ø¤¬°Ý»ý¤µ¤ì¤ë¤¿¤á¡¢Í×ÁǤÎÁÞÆþ¤äºï½ü¤¬Dictionary¤è¤ê¤âÃÙ¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£
¡¡¡¡¥Ç¡¼¥¿¤Î°ì°ÕÀ
¡¡¡¡¡¡¡¡¡¡¥¡¼¤ÈÃͤΥڥ¢¤¬É¬ÍפǤ¢¤ê¡¢¥Ç¡¼¥¿¤Î°ì°ÕÀ¤¬½ÅÍפʾì¹ç¤ÏDictionary¤òÁªÂò¤·¤Þ¤¹¡£¥×¥ì¥¤¥ä¡¼¤Î¥¹¥³¥¢¡¢¥¢¥¤¥Æ¥à¤Î¿ôÎ̤ʤɤ¬³ºÅö¤·¤Þ¤¹¡£
¡¡¡¡Í×ÁÇ¤Î½ç½ø
¡¡
¡¡¡¡¡¡¡¡¡¡Í×ÁÇ¤Î½ç½ø¤¬½ÅÍפǤ¢¤ê¡¢½ÅÊ£¤¬µöÍÆ¤µ¤ì¤ë¾ì¹ç¤ÏList¤ò»ÈÍѤ·¤Þ¤¹¡£¥×¥ì¥¤¥ä¡¼¤Î¥¿¡¼¥ó½ç½ø¡¢¥¢¥¤¥Æ¥à¤Î¥ê¥¹¥È¤Ê¤É¤¬³ºÅö¤·¤Þ¤¹¡£
¡¡¡¡¥Ç¡¼¥¿¥¢¥¯¥»¥¹¤Î¸úΨ
¡¡¡¡¡¡¡¡¡¡¥Ç¡¼¥¿¤Î¹â®¤Ê¸¡º÷¤ä¥¢¥¯¥»¥¹¤¬É¬Íפʾì¹ç¤ÏDictionary¤¬Å¬¤·¤Æ¤¤¤Þ¤¹¡£ÆÃÄê¤Î¥¡¼¤ò»ý¤Ä¥Ç¡¼¥¿¤òÁÇÁ᤯¼èÆÀ¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤ËÌòΩ¤Á¤Þ¤¹¡£
¡¡¡¡Í×ÁǤÎÄɲÃ/ºï½ü
¡¡¡¡¡¡¡¡¡¡Í×ÁÇ¤Î½ç½ø¤¬Êѹ¹¤µ¤ì¤ë¤³¤È¤Ê¤¯¡¢Í×ÁǤÎÄɲäȺï½ü¤¬ÉÑÈˤ˹Ԥï¤ì¤ë¾ì¹ç¤ÏList¤ò»ÈÍѤ·¤Þ¤¹¡£¥ê¥¹¥È¤ÏÍ×ÁǤÎÄɲäȺï½ü¤¬Dictionary¤è¤ê¤â¸úΨŪ¤Ç¤¹¡£
¡¡¡¡²Ä»ë²½¤È¥Ç¥Ð¥Ã¥°¸úΨ
¡¡¡¡¡¡¡¡¡¡List¤ÏUnity¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ç´Êñ¤Ëɽ¼¨¤Ç¤¤Þ¤¹¤¬¡¢Dictionary¤ÏÄ̾參¥¹¥¿¥à¥¨¥Ç¥£¥¿¤ä¥«¥¹¥¿¥à¥¯¥é¥¹¤ò»ÈÍѤ·¤ÆÉ½¼¨¤¹¤ëɬÍפ¬¤¢¤ë¤È¤¤¤¦°ã¤¤¤¬¤¢¤ê¤Þ¤¹¡£
¡¡¡¡¡¡¡¡¤¿¤À¤·¡¢¥×¥é¥°¥¤¥ó(¥¢¥»¥Ã¥È)¤Ë¤è¤Ã¤Æ¤Ï¡¢Dictionary¤ÎľÀÜŪ¤Ê¥µ¥Ý¡¼¥È¤òÄ󶡤¹¤ë¤â¤Î¤â¸ºß¤·¤Þ¤¹¡£
¡¡List ¤Î¾ì¹ç¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¡¢SerializeField°À¤«¡¢public ½¤¾þ»Ò¤òÉÕÍ¿¤·¤ÆÊÑ¿ô¤ÎÀë¸À¤ò¹Ô¤¤¤Þ¤¹¡£
[SerializeField] private List<GameObject> gameObjectsList; public List<GameObject> gameObjectsList;
¡¡¤³¤Î¤è¤¦¤Ê¥ê¥¹¥È¤ò»ý¤Ä¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤·¤¿¾ì¹ç¡¢Unity¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ë gameObjectsList ÊÑ¿ô¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
¤½¤Î¤Þ¤Þ¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ç¤âÍ×ÁǤòÄɲᢺï½ü¡¢ÊÔ½¸¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¡¡Dictionary ¤Î¾ì¹ç¤Ë¤Ï¤½¤Î¤Þ¤Þ¤Ç¤Ï¥·¥ê¥¢¥é¥¤¥º¤µ¤ì¤º¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ë¤Ïɽ¼¨¤µ¤ì¤Þ¤»¤ó¤Î¤Ç¡¢
¥«¥¹¥¿¥à¥¯¥é¥¹¤òºîÀ®¤¹¤ë¤³¤È¤ÇÂбþ¤·¤Þ¤¹¡£
[System.Serializable] public class SerializableDictionary<TKey, TValue> { public List<TKey> keys; public List<TValue> values; }
¡¡¤³¤Î¤è¤¦¤Ë SerializableDictionary ¤Î¤è¤¦¤Ê¥«¥¹¥¿¥à¥¯¥é¥¹¤òºîÀ®¤·¡¢¤³¤ì¤ò»ÈÍѤ·¤ÆDictionary¤ò¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Çɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¡¡°Ê¾å¤Î¤è¤¦¤Ë¡¢Å¬Àڤʥ³¥ì¥¯¥·¥ç¥ó·¿¤òÁªÂò¤¹¤ë¤³¤È¤Ï¡¢¥²¡¼¥à¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤È¥³¡¼¥É¤ÎÊݼéÀ¤Ë±Æ¶Á¤òÍ¿¤¨¤ë½ÅÍפʷèÄê¤Ç¤¹¡£
¥×¥í¥¸¥§¥¯¥È¤ÎÍ×·ï¤È¥Ë¡¼¥º¤Ë±þ¤¸¤Æ¡¢Dictionary¤ÈList¤òŬÀڤ˻Ȥ¤Ê¬¤±¤ë¤³¤È¤¬ÂçÀڤǤ¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯