ゲーム制作の骨(Tips)Unity歴6年のギリギリ中級者レベルブログ【Unity/2D】タイルマップ上の特定タイルを移動床に変換するエディタ拡張2D2023/1/25タイルマップ上の特定のタイルの位置にオブジェクトを生成し、元のタイルを消すエディタ拡張。おまけで、自作CharacterController2Dと連動する移動床のコードも。変換元タイルが削除されているのが確認出来る。タイル画像」をProjectウィンドウに、ドラッグ&ドロップしてインポート。Paletteに、ドラッグ&ドロップ。保存フォルダを選びタイルを作成。タイルマップ上の移動床を出したい位置に「変換元タイル」を書き込む。(移動範囲の中心点になる)↓のコードをコピペし、各スクリプト&移動床のプレハブを作成しておく。Platform」Tilemap下に移動床が出現するので、インスペクターからサイズや移動距離等を調整。コードConvertMovingPlatformEditorTilemapコンポーネントを右クリックした時に、メニューが追加されるエディタ拡張。Editorフォルダ下に、新規スクリプト「ConvertMovingPlatformEditor」を作成し、コードを全文コピペ。EditorWindow{//判定用のスプライト名。"vertical-moving-platform";//移動床の出現位置がタイルとズレてしまうのを補正。tilemap.GetTile(checkPosition);//GetTileした位置に何もない場合はnullになるので弾く。{//タイル名は元のスプライトのアセット名になる。SpawnOffset;//エディタのVerが2019以下の場合、削除用メソッドがないので、空のタイルで上書き。Tile());//エディタのVerが2020以上なら、多分こっちでも消せる。SpawnOffset;//エディタのVerが2019以下の場合、削除用メソッドがないので、空のタイルで上書き。Tile());//エディタのVerが2020以上なら多分こっちでも消せる。Vector3Int.one);}}}}}}MovingPlatform移動床プレハブのメインスクリプト。移動床プレハブの元となる空オブジェクト「MovingPlatform」を作成。Rigidbody2Dコンポーネントをアタッチ。タグとレイヤーをGroundに設定。(無い場合は追加しつつ)子の位置に、新規オブジェクト「PlatformsS」「PlatformsM」「PlatformsL」を作成。Spriteを作成し、「Platform」と命名。移動床のスプライトを設定。2D等で当たり判定を設定。Duplicateで複製しまくって、各Platformsサイズ毎に任意の個数設置。5等々)新規スクリプト「MovingPlatform」を作成し、コードを全文コピペ。「MovingPlatform」に「MovingPlatform」スクリプトをアタッチ。ProjectウィンドウのAssets/Prefabsの位置に、ドラッグ&ドロップしてプレハブ化。direction;//個数はplatformGosの要素数と一致させておく。{S,M,L,}//一応デフォルトサイズはMサイズにしてある。10.0f;//Time.fixedDeltaTimeを定数化した物。0.02f;//サイズ別の足場(小さい物順)。コンポーネントのアタッチ時に自動取得されるようにしたが、上手くいかなかった場合は手動で紐付けしてください。velocity;//プレイヤーとの衝突ノーマルが、(真上を中心として)この角度以下だと上に乗られたと見なす。contactCount;//コレによってアタッチ時にモロモロ設定される。tf.GetChild(i).gameObject;platformGos[i].SetActive(false);}//出現位置が分かるように、デフォルトで足場を表示する場合。LayerMask.NameToLayer(PlayerTag));}//足場の移動とプレイヤーの移動を連動させるサンプル。tf.position;//より精度を高くするなら、足場の上面にだけトリガーモードの当たり判定を設置し、Collider2D.IsTouchingLayersを使ってチェックするべし。{//画面上に1体しか存在しないプレイヤーの場合には、都度GetComponentするより、シングルトンで保持していた方が軽いが割愛。nextPosition;}}是非、ご活用ください。(ザキ)多分中級趣味プログラマー。Playにて、なんやかんや21個のアプリをリリース済み。PlayのデベロッパーページYoutubeチャンネルスポンサーリンク*広告サービスを使用ブログの一部で、広告サービスを使用しています。広告をクリックすると、管理人に報酬が発生します。ゲーム制作の骨(Tips).ホーム検索トップサイドバータイトルとURLをコピーしました。