前回まででゲームのシステム部分と見た目部分がほぼ完成しました。これでようやくステージ作りに着手することができるので、張り切って作っていきましょう。
ステージ作成
では、早速ですが必要なだけステージを作っていきましょう。ただまあステージ作りに関しては説明がとても難しいので、「好きなように作ってください」くらいしか言うことがありません。いろいろ工夫して楽しいステージを作ってくださいね。
ちなみに、今回のゲームのステージ作りのポイントをいくつか挙げておくと次のとおりです。
- ユニティちゃんがステージ外に落ちた時の処理は作っていないので、ユニティちゃんがステージから落ちないようにタイルを敷き詰めてください。
- 今回のゲームではカメラがX軸方向しか追従しないので、Y方向(高さ方向)にステージを広げたり、画面外にコインを置いたりするのはやめておいたほうがいいです。
- 全てのコインを取れるかを必ず確認しましょう。1個でも取れないコインがあるとクリア不可能になります。
「壁引っかかり問題」の解決
さて…これでステージができましたが、実際にテストプレイしてみると一つ問題があることに気づきます。それは「ユニティちゃんが壁に引っかかってしまう」という問題です。
もう少し詳しく言うと、壁に向かってジャンプして壁側に方向キーを押しっぱなしにしたときに、ユニティちゃんが壁に張り付いてしまうのです(下のGIF参照)。
ゲーム的には壁に引っかかるのは違和感が大きいので何とかしたいですよね。
これはUnityでアクションゲームを作っているとよく出くわす問題なのですが、結論を言うと原因は「摩擦」が設定されているためです。実はデフォルトだとコライダーには摩擦力が働くようになっているので、そのままだと壁に引っかかってしまうのです。
ではどうするか?ユニティちゃんのコライダーの摩擦を「0」にしてしまいましょう。
適当なフォルダに新しい「2D物理マテリアル」を作り(右クリック→「作成」→「2D物理マテリアル」)、名前を「ZeroFriction」にしたら、それの「Friction」の値を「0」にしてください。できたらPlayerオブジェクトの
- 2Dボックスコライダー
- 2Dサークルコライダー
の2つのコライダーの「マテリアル」欄に今作った物理マテリアルを適用しましょう。
これで壁引っかかり問題が解消されたはずです。実際にゲームを動かして次のGIFのようになれば成功です。
このテクニックは3Dアクションゲームの場合もよく使うので覚えておいてください。
次のページ→カウントダウンタイマー&各種UIの作り方