Пример #1
0
    public void Unmask(BattleMapMonster monster)
    {
        BattleMapTile centerTile = holder.BattleMap.BattleMapTiles[monster.X, monster.Y];

        // 視界のタイルセットを取得
        List <BattleMapTile> set = MapUtils.GetRangeTileList(centerTile, monster.BattleStatus.View);

        BattleMapTileMaskGroup maskGroup = holder.BattleMap.BattleMapTileMaskGroup[monster.GetTeamIndex()];

        foreach (BattleMapTile bmt in set)
        {
            // マスクを取得
            BattleMapTileMask mask = maskGroup.BattleMapTileMask[bmt.X, bmt.Y];

            // すでにマスク解除されているならなにもしない
            if (mask.Mask == false)
            {
                continue;
            }

            mask.Mask = false;
            mask.GameObject.SetActive(false);
            mask.GameObjectShadow.SetActive(false);

            // オブジェクトが存在しない場合
            // オブジェクトを描画
            BattleMapObjectSet bmoSet = holder.BattleMap.BattleMapObjectSets[bmt.X, bmt.Y];
            if (bmoSet == null)
            {
                mapObjectGenerator.DecoreteMapTile(bmt);
            }
        }
    }
Пример #2
0
    /// <summary>
    /// マップタイルを交換する
    /// </summary>
    /// <param name="bmt"></param>
    /// <param name="viewType"></param>
    private void ChangeMapTile(BattleMapTile bmt, MapTileViewType viewType)
    {
        bmt.MapTileViewType = viewType;

        // 既存のGameObjectを破棄
        Destroy(bmt.GameObject);

        // 新規にGameObjectを作成
        GameObject go = prefabHolder.Instantiate(bmt);

        bmt.GameObject = go;

        // マップ上にオブジェクトを設置
        mapObjectGenerator.DecoreteMapTile(bmt);
    }