【Unity】Unity2Dの学習

スプライトアニメーションとメカニムを使って八方向移動が可能なキャラを作って動かしてみた。

外周の当たり判定にRigidbody2Dとコライダーを使用している。

コーディングはコントローラーの入力に対してアニメーションを切り替える処理と移動処理のみ。

Rigidbodyを使用する際の移動には、ポイントが2点ある。

まず、物理演算を正しく反映させるために、座標の移動はUpdate()ではなくFixedUpdate()で行ったこと。

もうひとつは、これまた物理演算を正しく反映させるため、座標移動はtransfromを直接書き換えるのではなくて、rigidbody2d.velocityに移動量を設定した。

AddForce()を使って移動させる方法もあるが、こちらは慣性が働くので、サンプルのような俯瞰視点の2Dには使えなかった。

スーパーマリオみたいな横スクロールアクションなんかで使えそうだ。

ちなみに現在市販しているUnity2Dの書籍には記載されていなかった。ネットで見つけたのだ。書籍代の出費は不要だったかも。

すこしややこしかったのは、斜め移動するとき。

サインとコサインを使って垂直・水平方向より移動速度が速くならないように調整している。

Rigidbodyを使えば障害物にぶつかると自動でブロックしてくれるので楽だ。

ゼルダ風の隠し通路には、Slider Jointを使用している。

ウェブプレイヤーで公開するほどじゃないので、今回はユーチューブでどうぞ。

どっとキャラは下記のサイトの素材を使用させていただきました。

臼井の会 RPGツクール素材支部

そうそう、ユーチューブといえば、ニャニャニャ!ネコマリオタイム第8回が配信されてた。

5年前

コメントを残す

メールアドレスが公開されることはありません。