コンテンツへスキップ

Unity

Unity の Character Controller で作りなおしてみました。要するに当たり判定周りを標準機能に丸投げ。ある意味一番面倒な部分をコードで記述する必要がなくなったので、同じような動作が半分ぐらいのコード量で済みました。ついでに動く床とスロープも。

しかし床での壁ずりは自動ではやってくれないようですね。RigidBody ならやってくれるけど、こちらは思い通りに動かせないからなあ。

その代わりに段差超えができなくなりました。step offset を大きく取れば乗り越えるんですけど、挙動がおかしかったので。まあ前回と同じように自前で壁をチェックすればいいんですけど。あと細かいところの動きがやっぱシリンダコライダの形状に依存した感じになっちゃうんですよね。

また、ハシゴをトリガーでチェックしようとしたんですが、こちらは OnTriggerStay でチェックしてやっても何故か数フレームに一度取りこぼしがあっておかしなことになったり、EnterとExitで切り分けようとしたら、境界部分でどっちが優先されてるのか不定っぽくてうまく行ったり行かなかったりとどうもダメでした。

これぐらいのドット絵だとむしろきちっとタイルのマス内にノーマライズされて欲しいので泥臭くチェックしたほうがいいのかもなあ。ただ、やっぱUnityで作るならUnityっぽく作ったほうが幸せになれる気もしますね。コリジョンの細かいところも、こんなみっしりしたマップではなくマリオぐらいのざっくりしたパターンにすればおそらく気にならないはず。逆にアクセントとして物理シミュを使うとかそういう方向で考えるべきなんだろうなあ。

ただ、そう考えると任意形状のメッシュコライダが作れないEX2Dはやっぱ弱いですな。maxと連携して組み込めるようにするか、2DToolkitを買うかしてみないとね。

なかなか時間が取れなくてこんな小手先の実験しかできませんが、ちょっとずつコツもつかめてきた気が。とにかく、なるべくUnityのお作法に従って楽して作る方法を、もうしばらく模索する予定です。次は大量のオブジェクト管理とかしてみたいのでSTGのサンプルかなあ。

[WebPlayer]