質問: "Wall") { Debug.Log("walldesu"); } } ``` ●懸念点 ステージをタイルパレットで作成しているので オブジェクトを複製する方法だとタイルパレットでやる方法よりも時間がかかりそう。
回答: 下記の3通りから出来そうなのを選んで下さい。 **・方法1:物理演算の衝突で止める** 1.キャラとオブジェクトにCollider 2Dを設定(既に有るならばコレはおこなわない) 2.ConstraintsのFreeze Rotationにチェックを入れる 3.IsTriggerのチェックを外して物理演算の衝突で止める 詳細は下記記事 https://qiita.com/_tybt/items/0e9605b7acc955078c64 **・方法2:キャラの向き1マス前に判定用のオブジェクトを置きそれを使って移動を止める** 1.空のオブジェクトを新たに作成してCollider 2Dを設定 2.そのオブジェクトの位置がキャラの向いている1マス前方向に連動するようにする 3.IsTriggerのチェックを入れ、これを使って移動前にオブジェクトの判定を行う 4.移動不可能なオブジェクトならばフラグなどを使って移動処理をおこなわせない ※OnTriggerEnter2Dのままで出来なくも無いがOnTriggerStay2Dの方が判定させ易いかもしれません **・方法3:2次元配列の要素判定で移動を止める** 1.マップ移動可否の情報を入れた二次元配列を作りクラスで保持しておく(int][]配列) ※マップ移動可否の情報とは「移動可能:0 移動不可:1」の様な数値 2.キャラ移動先の座標の二次元配列要素を参照する 3.移動不可能なオブジェクトならばフラグなどを使って移動処理をおこなわせない 方法3が昔から一般的なので判るならばそれが良いです。 下記画像を見て二次元配列の作成とそれを使ったマップの動的生成が出来るのであれば可能かと思います。 無理なら方法3はスルーして下さい。 ![イメージ説明 移動を制限したいだけであれば方法1が早いです。 話すや宝箱を空けるを実装していく想定であれば方法2が良いです。