# Changelog

このパッケージへのすべての注目すべき変更はこのファイルに文書化されます。

フォーマットは[Keep a Changelog](http://keepachangelog.com/)に基づいています。

## [2.2.3] - 2024-10-23

### 修正

- [Editor] TileのAdd Componentメニューの検索フィールドが正常に表示されない不具合を修正。
- [Examples] Unity6000.0.11f1以降の警告を修正。



## [2.2.2] - 2024-04-24

### 修正

- [Editor] Unity6000.0以降のコンパイルエラーを修正。
- [Examples] Unity2023.1以降の警告を修正。



## [2.2.1] - 2022-08-18

### 修正

- [Editor] Unity2022.2.0b4でのコンパイルエラーと警告を修正。
- [Editor] package.jsonのUnityバージョンを2019.4に修正。



## [2.2.0] - 2021-10-22

### 追加

- Mapにタイルを配置/削除したことをTileComponentが受け取れるようになるITileCallbackReceiverインターフェイス追加。
- Mapに何かが接触したことをTileComponentが受け取れるようになるITileCollisionReceiverインターフェイス追加。
- Assembly Definitionに対応。
- [Shader] Tiles-StandardとTiles-StandardSpecularにRender Mode追加。
- [Editor] MapEditToolウィンドウを追加。  
  MapコンポーネントのInspectorにあった編集ツールはMapEditToolウィンドウへ移動。
- [Editor] 編集ツールのショートカットキーに対応。
- [Editor] タイル選択リストのズーム対応。
- [Editor] Welcomeウィンドウを追加。
- [Editor] package.json対応。
- [ドキュメント] ドキュメントサイトを追加。  
  https://nostalgia-docs.caitsithware.com/

### 変更

- Unityの最低動作バージョンを2019.4に変更。
- [Editor] TileのAdd Componentをコンポーネント選択ウィンドウ形式に変更。

### 改善

- バケツツール、バケツ消しゴムツールを高速化。
- Mapのメッシュ更新を差分のみ行うように高速化。
- MapCollider更新を差分のみ行うように高速化。
- マップ編集時の処理で発生する一時データをプールしてGC Allocを削減。
- [Editor] NormalMapGeneratorウィンドウのHeightMapがRead/Write Enabledを設定していなくても使用できるように改善。
- [Examples] モバイル端末で実行した場合はバーチャルパッドで操作できるように改善。

### 修正

- MapのTileSetを変更した際にタイル数が少ないと例外が発生する不具合を修正。
- MapのTileSetを変更した際にCollider2Dが正常に更新されない不具合を修正。
- Canvasの子にMapを配置した場合に一定範囲外のタイルの表示位置がズレる不具合を修正。
- Map.RemoveBucketTileメソッドのautoTiling引数をfalseにした場合でもオートタイルによる変更が行われていた不具合を修正。
- [Android] GraphicsAPIsがOpen GLES3以外の場合にシェーダーエラーが発生する不具合を修正。

### 廃止

- Nostalgia.Point2型をObsoleteに変更。  
  代わりにUnityEngine.Vector2Intを使用。
- [ドキュメント] スクリプトリファレンスzipの同梱を廃止。



## [2.1.10] - 2020-03-25

### 追加

- NormalMap GeneratorにAlphaTestの値追加。
- NormalタイプのタイルにCombinationGroupNameが設定されている場合に、ノーマルマップ生成時の判定用としてCombinationSideFlagsを設定できるように対応。
- [Example]サンプルシーンを簡易ピクセルパーフェクトに対応。

### 変更

- アンチエイリアシングが有効だった場合に警告を表示するように変更。
- [Example]サンプルシーンの「調べる」キーを上キーに変更。

### 修正

- [Unity5.6] Unity5.6.6以上でシェーダーエラーが発生していたのを修正。
- [Unity2017以前] UWPビルドするとシェーダーのコンパイルが失敗するのを修正。
- [Unity2019.1以降] シェーダーの警告を修正。
- [Unity2019.3以降] InspectorでTileSetを表示すると例外が発生するのを修正。
- UWPビルドエラーを修正。
- NormalMap GeneratorでNormalタイプのタイルにCombinationGroupNameが設定されていると不自然な境界線が出現してしまうのを修正。
- タイルテクスチャの横幅と縦幅が異なる場合に、タイルアニメーションの表示が崩れるのを修正。
- [Example]サンプルシーン用タイルセットを微修正。


## [2.1.9] - 2019-02-13

### 改善

- [Unity2018.3.0f2以降] PreferencesウィンドウのNostalgia設定で検索ワードによる検索にヒットするように対応。

### 修正

- MapColliderの更新時にTileの参照切れによる例外が発生していたのを修正。
- TileColliderの種類を変更した時にマップに即時反映するように修正。
- Tile Polygon ColliderかTile Edge Colliderのポリゴン編集をマップに即時反映するように修正。
- [Unity2019.1.0b3対応] TileSetのInspectorが正しく表示されていないのを修正。
- [Unity2019.1.0b3対応] ObsoleteAttributeによる警告を修正。


## [2.1.8] - 2019-01-02

### 修正

- Unity2018.3.0以降でSortingLayerWindowの可視トグルボタンが表示されない不具合を修正。


## [2.1.7] - 2018-10-10

### 修正

- Unity2018.2.0以降でNostalgia/Tiles/StandardとStandard Specularにエラーが発生していたのを修正。
- MapのInspectorを表示した状態でプレイ開始などするとエラーが発生するのを修正。
- MapのInspectorに表示されているプレビューがはみ出さないように修正。
- 警告を修正。


## [2.1.6] - 2018-05-08

### 変更

- 最低動作バージョンをUnity5.4.0f3に変更。

### 修正

- Tiles/StandardシェーダーでAmbientが反映されていなかったのを修正。
- Unity2017.4.1以降でTiles/Standardシェーダーにエラーが出ていたのを修正。


## [2.1.5] - 2018-01-23

### 追加

- TileにuvShiftInside追加。
  テクスチャ上のタイル外にあるテクセルを描画してしまい意図しないラインが出る場合に調整してください。

### 変更

- TileSet変更により即座にシーン内のMapを更新するように変更。
- MapインスペクタのRefreshボタンを廃止。
- Map.Refreshメソッド、Map.RefreshAsyncメソッド、RefreshAsyncクラスをObsoleteに変更。

### 改善

- MapのMesh作成時にListに対応したSetVerticesを使用するように変更。
- Tileのアニメーション頂点データを１つのTEXCOORDにまとめるように変更。

### 修正

- Stampに登録されているTileが削除された場合に、Stampツールを選択すると例外が発生していたのを修正。
- PutTileメソッドに渡すTileがnullだった場合は配置しないように修正。


## [2.1.4] - 2017-12-22

### 修正

- Unity2017.1.0f3以降で警告が表示されていたのを修正。
- Unity2017.1.0f3以降でTileSetのInspectorでImport from spritesを開くと警告が表示されていたのを修正。
- Unity2017.3.0f3でのエラーを修正。


## [2.1.3] - 2017-07-13

### 追加

- Mapにバケツ消しゴムツール追加。
- Mapにマップ端のオートタイルを結合するか設定するEdgeCombineフィールドを追加。
- TileColliderにMapColliderを分割するか設定するisSplitMapColliderフィールドを追加。
- MapにCanvasモード追加(CanvasにMapオブジェクトを作成することで自動的にCanvasモードになる)
- CellObjectのinspectorに削除ボタンを追加。
- Collider2DからCellを取得する拡張メソッドGetCell()を追加。
- Collider2DからTileを取得する拡張メソッドGetTile()を追加。
- SortingLayerFieldAttribute追加。

### 変更

- Tile.GetComponent()でinterfaceも取得できるように変更。 

### 修正

- TileEdgeColliderが3頂点以上ない場合はループできないように修正。
- EditorのOnInspectorGUIで例外が発生した時の処理を修正。
- TileComponentとTileColliderのMissingスクリプト対処。
- Tile削除時にTileColliderがアセットから削除されていなかったのを修正。
- Unity5.5.2以降でExamplesのスクリプトで警告が表示されているのを修正。


## [2.1.2] - 2017-02-13

### 変更

- CellからMapColliderを取得するメソッドMap.GetMapColliderを追加。

### 修正

- MapコンポーネントとSortingLayerコンポーネント、SortingLayerWindowからTags & Layersが開けないのを修正。
- SortingLayerWindowにRendererが表示されない場合があったのを修正。
- SortingLayerWindowにSorting Layerが削除されていて見つからないオブジェクトも表示するように修正。
- OnTriggerEnter2D系のメソッドの中でSceneManager.LoadSceneを呼び出してシーン遷移すると例外が出るのを修正。


## [2.1.1] - 2017-01-26

### 修正

- 新規作成したTileを編集するとUnityエディタがフリーズしてしまうのを修正。


## [2.1.0] - 2017-01-21

### 追加

- TileColliderの結合に対応。
	TileColliderのIs Combineを有効にすることで同じタイル同士が隣接した場合にColliderが結合されます。
	Is Combineを変更した場合はすでに作成済みのMapのRefreshボタンを押して変更を適用してください。
- Mapコンポーネントのコピー＆ペーストに対応。
	Mapインスペクタの歯車アイコンから「Copy Component」でコピー。
	「Paste NostalgiaMap As New」で新規ペースト。
	「Paste Component Values」で上書きペースト。
- プレイモード中にエディタから変更した場合のUndo/Redoに対応。

### 変更

- Map選択時にワイヤーフレームが表示されないように変更。
- タイルの配置や削除する際のプログレスバー表示中に中止できるように変更。
- Mapのグリッド表示を変更。
	MapインスペクタのDraw Gridで表示が切り替えられるように変更。
	シーンビューのスケールに合わせて表示精度が切り替わるように変更。
	Preferenceでグリッドの設定ができるように変更。
- Undo名をわかりやすい名前に変更。
- Mapインスペクタの選択中のツールを保存しておくように変更。
- Unity最低動作バージョンを5.3.0f4に引き上げ。
- NostalgiaフォルダをPluginsへ移動。
  事前ビルドされるようになるため、Nostalgia以外のスクリプトを変更した際のビルド時間が短縮します。
- TileSet、Map、SortingLayerのHelpボタンをクリックするとマニュアルページを開くように変更。

### 改善

- Cellの保持をChunkが行うことでエディタ上での編集を高速化
- MapのColor変更をMaterialPropertyBlockを使って高速化
- All Clearの高速化

### 修正

- バケツツールでドラッグするとUnity標準の矩形選択になってしまうのを修正。
- マップ編集時のカーソル表示と編集位置が違う場合があるのを修正
- Undo/Redoの修正。
- Graphics APIにDirect3D9を使っている場合にTiles/StandardシェーダーとTiles/StandardSpecularシェーダーがエラーになるのを修正。
- Unity 5.6.0b3 対応。


## [2.0.2] - 2016-12-09

### 変更

- Shader : Tiles/StandardとTiles/StandardSpecularをシェーダーターゲット2.0で動作するように変更。
- Editor : Map選択時にワイヤーフレーム表示しないように変更。

### 修正

- Editor : Map選択中にプレイ終了するとColliderが削除されてしまうのを修正。
- Editor : ExampleのThroughFloorCellManagerをAdd Componentメニューの"Nostalgia/Example"に修正。
- Editor : MapをInspectorの"Remove Component"から削除した後Undoすると管理外のColliderが増えて残ってしまうのを修正。


## [2.0.1] - 2016-09-17

### 修正

- スタンプが追加できない場所があるのを修正。
- 新しくマップを作成後に実行するとタイルが変わってしまうのを修正。
- Unity 5.5.0 Beta 対応。


## [2.0.0] - 2016-09-13

### 追加

- TileのColliderをBox以外にも指定できるように対応
- TileのColliderの形状を細かく編集できるように対応
- Tileのアニメーション速度を変更できるように対応
- オートタイルに各辺の接続を制御するCombinationSideFlags追加
- InspectorからMapコンポーネントをドラッグ&ドロップして別オブジェクトへの移動をできないように対応
- Tileに名前を付けられるように対応
- MapのセルごとにGameObjectを生成できるように対応
- タイル用のStandardシェーダーとStandardSpecularシェーダー追加
- オートタイルを考慮した法線マップのジェネレーターを追加
- Mapにスタンプによる編集機能追加

### 変更

- マテリアルのパラメータを編集した際即座にMapに反映されるように対応
- HierarchyWindowでのマウスオーバー時のハイライト表示機能を削除
- HierarchyWindowでのActive切り替えボタンの表示をPreferenceWindowのNostalgiaタブで変更できるように対応
- SortingLayerWindowでSortingLayerコンポーネントがアタッチされていないParticleSystemも表示されるように変更
- コンテキストメニューでのMap作成時に選択中のゲームオブジェクトの子として作成されるように対応
- MapコンポーネントがアタッチされているゲームオブジェクトでもほかのRendererをアタッチできるように対応
- TileSetやMapのInspectorでのタイルの一覧表示がウィンドウサイズによってはすべて表示されない時があるのを修正
- TileSet.tilesでのTileの参照を削除し、TileSet.tileCountプロパティとTileSet.GetTile()メソッドを追加
- Map.cellsでのCellの参照を削除し、Map.cellCountプロパティとMap.GetCell()メソッドを追加
- Map.chunksでのChunkの参照を削除し、Map.chunkCountプロパティとMap.GetChunk()メソッドを追加
- MapにstaticなmapCountプロパティとGetMap()メソッドを追加
- MapのPutTile(),FillTile,FillTileAsync,BucketTile,BucketTileAsyncメソッドでTileを指定するように変更
- Cellに削除時のコールバックメソッド追加
- TileSetに名前でタイルを見つけるFindTileメソッド追加
- シェーダーをResourcesから移動
- シェーダーの場所をNostalgia以下に移動
- フォルダ構成変更

### 修正

- Tiles/Diffuseシェーダーでアルファ値が正しく反映されていなかったのを修正
- TileSetにTileを挿入した際に既存MapのTileの参照先が変わってしまうのを修正
- Inspectorのエディタ拡張部分でメモリリークしていたのを修正
- Mapに関連付けた内部メッシュが削除されないことがあるのを修正
- ExampleスクリプトにはAddComponentMenuを付けるように変更
- Exampleシーンにジャンプですり抜ける床とベルトコンベアやメッセージ表示などのイベント用タイルなどを追加
- PlayClipAtPointがUnityバージョンによっては3Dモードになってしまうので2Dで鳴らすように対応
- Unity5.4.0でLoadSceneにシーンリストに登録していない現在シーンのインデックスを渡してリロードしようとしてもエラーになるのを修正


## [1.3.1] - 2016-07-07

### 追加

- マップ編集の処理に時間がかかる場合にプログレスバーを表示するように対応

### 改善

- タイルタイプがAuto Floor VX以外のとき、ポリゴン数削減。
- メモリ使用量削減
- Profiler.BeginSample/EndSampleを埋め込み


## [1.3.0] - 2016-06-17

### 追加

- CombinationGroupNameによる別タイルとの連結に対応
- タイルごとの色指定に対応
- モック用に使えるようにテクスチャなしでもタイルが貼れるように対応

### その他

- Unity最低動作バージョンを5.0.0f4に引き上げ。


## [1.2.2] - 2016-06-09

### 修正

- タイルの端にテクスチャ上で隣にあるタイルが1ドット分表示されることがあるのを修正。
- Tile/Diffuseシェーダーが頂点カラーに対応していなかったのを修正。

### 改善

- シェーダーを若干高速化。


## [1.2.1f5] - 2016-03-12

### 修正

- TileSetが設定されていないMapオブジェクトを選択するとエラーが出るのを修正。
- Unity5.3.0以降のUnityエディタ上でMapオブジェクトを選択したままプレイ開始するとコライダーが削除されてしまうのを修正。
- Unity5.3.0以降でApplication.LoadLevelの警告が出るのを修正。


## [1.2.1f4] - 2016-03-12

### 修正

- Unity5.2.0以降でエラーが出るのを修正。


## [1.2.1f3] - 2015-03-11

### 修正

- TileSetのインスペクタでImport from spritesを開いているとTilesの選択が出来ないのを修正。


## [1.2.1f2] - 2015-02-28

### 修正

- Unity5 RC3で発生するエラーを修正。
- DarkスキンでのSortingLayerWindowの選択色を修正。


## [1.2.1f1] - 2015-02-11

### 修正

- Unity5 RC1で発生するエラーを修正。
- タイルの間に隙間が見えるのを修正。


## [1.2.1] - 2015-01-27

### 追加

- TileSetをSpriteからインポートできるように対応。
  Unity標準のSpriteEditorで左上座標を指定する形式で切抜きすることでTileSetのInspectorでインポート出来るようになります。


## [1.2.0f2] - 2014-12-16

### 修正

- コメントドキュメントのローカライズを修正。
  Player Settings の Scripting Define Symbols に NOSTALGIA_DOC_JA を追加すると日本語でドキュメントコメントが見れるようになります。


## [1.2.0f1] - 2014-12-05

### 修正

- Unity 4.6のエディタ上で実行中にNullReferenceExceptionが出力されるのを修正。


## [1.2.0] - 2014-10-16

### 追加

- 頂点カラーのペイントツール追加。
- Sorting Layerウィンドウ追加。

### 変更

- 横スクロールアクションのサンプルシーン更新。

### 修正

- Map編集中にシーンビューのMapのない方向にカメラを向かせるとエラーが表示されるのを修正。


## [1.1.0] - 2014-10-01

### 追加

- タイルにTileComponentを追加できるように対応。
- Shiftキーで配置できるパーツの状態を設定できるように対応。
- Rendererの描画順を設定するためのSortingLayerコンポーネント追加。
- HierarychyにGameObjectのアクティブ切り替えトグルを表示。
- 横スクロールアクションのサンプルシーンを用意。

### 変更

- ひとつのGameObjectに対してひとつのMapのみアタッチできるように変更。

### 修正

- 他のタイルを上書き配置してもColliderの設定が変更されなかったのを修正。


## [1.0.4] - 2014-09-12

### 追加

- マテリアル色の指定対応。

### 修正

- スクリーンサイズによってタイルの間に隙間が見えるのを修正。
- Sorting LayerおよびOrder in Layerを後から変更しても反映されなかったのを修正。

## [1.0.3] - 2014-09-03

### 変更

- スクリプトリファレンス用コメント埋め込み。

### 修正

- 「Create Other > Nostalgia Map」のスペルミス修正。


## [1.0.2] - 2014-08-13

### 修正

- Textureを選択して「TileSet from selected Texture or Material」をするとエラーが出て作成できないのを修正。
- タイルを上塗りする際にColliderが正しく生成や削除されないのを修正。


## [1.0.1] - 2014-08-06

### 修正

- エラーが出てビルドできないのを修正。
- ExampleシーンのMain Cameraが無効になっているのを修正。


## [1.0] - 2014-07-31

- 初公開