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); } } }
/// <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); }