/// <summary>
    /// 対象のアイコンをすべて削除
    /// </summary>
    /// <param name="iconType"></param>
    public void RemoveIcons(BattleMapIconType iconType)
    {
        List <BattleMapIcon> iconList = BattleMapIcons.GetList(iconType);

        foreach (BattleMapIcon bmIcon in iconList)
        {
            Destroy(bmIcon.GameObject);
        }
        BattleMapIcons.Remove(iconType);
    }
    /// <summary>
    /// 取得
    /// </summary>
    /// <param name="iconType"></param>
    /// <param name="x"></param>
    /// <param name="y"></param>
    /// <returns></returns>
    private List <BattleMapIcon> Get(BattleMapIconType iconType, int x, int y)
    {
        string key = CreateKey(iconType, x, y);

        if (battleMapIcons.ContainsKey(key))
        {
            return(battleMapIcons[key]);
        }

        return(new List <BattleMapIcon>());
    }
    /// <summary>
    /// iconTypeのリストを取得
    /// </summary>
    /// <param name="iconType"></param>
    /// <returns></returns>
    public List <BattleMapIcon> GetList(BattleMapIconType iconType)
    {
        List <BattleMapIcon> list = new List <BattleMapIcon>();

        foreach (KeyValuePair <string, List <BattleMapIcon> > kvp in battleMapIcons)
        {
            foreach (BattleMapIcon icon in kvp.Value)
            {
                if (icon.BattleMapIconType == iconType)
                {
                    list.Add(icon);
                }
            }
        }

        return(list);
    }
    /// <summary>
    /// アイコンを設定
    /// </summary>
    /// <param name="bmt"></param>
    /// <param name="iconType"></param>
    /// <param name="iconGo"></param>
    private void InstallIcon(BattleMapTile bmt, BattleMapIconType iconType, GameObject iconGo)
    {
        BattleMapIcon icon = new BattleMapIcon();

        icon.BattleMapIconType = iconType;
        icon.X = bmt.X;
        icon.Y = bmt.Y;

        Vector3 pos = bmt.GameObject.transform.position;

        iconGo.transform.position = pos;

        icon.GameObject = iconGo;

        BattleMapIcons icons = holder.BattleMapIcons;

        icons.Add(icon);
    }
    /// <summary>
    /// 該当アイコンタイプをすべて削除
    /// </summary>
    /// <param name="icon"></param>
    public void Remove(BattleMapIconType iconType)
    {
        string iconTypeStr = iconType.ToString();

        // 削除対象キーのリスト
        List <string> removeKeyList = new List <string>();

        foreach (KeyValuePair <string, List <BattleMapIcon> > kvp in battleMapIcons)
        {
            // キーがタイプの文字列始まりなら削除
            if (kvp.Key.StartsWith(iconTypeStr))
            {
                removeKeyList.Add(kvp.Key);
            }
        }

        foreach (string key in removeKeyList)
        {
            battleMapIcons.Remove(key);
        }
    }
    /// <summary>
    /// 取得、1タイル1アイコンであることを期待
    /// </summary>
    /// <param name="iconType"></param>
    /// <param name="x"></param>
    /// <param name="y"></param>
    /// <returns></returns>
    public BattleMapIcon GetSingle(BattleMapIconType iconType, int x, int y)
    {
        string key = CreateKey(iconType, x, y);

        return(battleMapIcons[key][0]);
    }
 private string CreateKey(BattleMapIconType iconType, int x, int y)
 {
     return(iconType.ToString() + "_" + x + "_" + y);
 }
 /// <summary>
 /// 削除
 /// </summary>
 /// <param name="iconType"></param>
 /// <param name="bmt"></param>
 public void Remove(BattleMapIconType iconType, BattleMapTile bmt)
 {
     Remove(iconType, bmt.X, bmt.Y);
 }
 /// <summary>
 /// 取得、1タイル1アイコンであることを期待
 /// </summary>
 /// <param name="iconType"></param>
 /// <param name="bmt"></param>
 /// <returns></returns>
 public BattleMapIcon GetSingle(BattleMapIconType iconType, BattleMapTile bmt)
 {
     return(GetSingle(iconType, bmt.X, bmt.Y));
 }
 /// <summary>
 /// 取得
 /// </summary>
 /// <param name="iconType"></param>
 /// <param name="bmt"></param>
 /// <returns></returns>
 public List <BattleMapIcon> Get(BattleMapIconType iconType, BattleMapTile bmt)
 {
     return(Get(iconType, bmt.X, bmt.Y));
 }
    /// <summary>
    /// 削除
    /// </summary>
    /// <param name="iconType"></param>
    /// <param name="x"></param>
    /// <param name="y"></param>
    public void Remove(BattleMapIconType iconType, int x, int y)
    {
        string key = CreateKey(iconType, x, y);

        battleMapIcons.Remove(key);
    }