テトリスブロックの回転処理の作り方 3D空間のUnity回転に挑戦!

Unity C# 落ち物ゲームの作り方


Unityの本格ゲーム制作講座はこちら
【30日間の全額返金保証付き】

前回の記事ではブロックの落下処理及び落下後に一面ブロックがそろっていたら消える処理を作りました。

前回の記事:

テトリスブロックの落下処理と揃ったら消える処理の作り方
前回の記事で個々のテトリスブロックの形を変えて生成できるようになりました。 前回の記事: 今回の記事では実際にブロックをグリッド内に落下させるようにしていきます。 さらに、落下したブロックが一面に揃ったら消えるようにします。 ブ...

今回の記事では落下中のブロックを回転するようにしていきます。

スクリプトの内容は難しいものになっていますが、やっていきましょう!


【Unity入門の森の最新ゲーム開発講座もお届け】

ブロックの回転処理の作成

まず、ブロックを回転できるようにしていきましょう!

「BlockInstance」クラスを次のように修正してください。

回転は3Dなので、複数の方向の回転があります。

3Dでは姿勢を表す方向に横と縦と前の3種類ありますが、その内の2種類の回転を実装するとだいたい問題なくオブジェクトを回転させることができます。

記事では次の方向を実装しています。

  • 前方向を回転させるもの
  • 上方向を回転させるもの

また、回転させる際には行列やクォータニオンなど数学の知識を使用していますが、そのあたりの説明は割愛します。

このあたりのゲーム数学の知識に関しては一冊本を持っておくといいかもしれません

 

Unityでわかるゲーム数学」がわかりやすくておススメです。

この講座では基本的にUnityが用意しているメソッドを組み合わせて使用しています。

グリッド内の状態を見て回転できるかどうか判定する

ブロックの回転処理の基本ができましたので、次はグリッド内の状態を見て回転できるかどうかを判定できるようにします。

「Block」コンポーネントを次のように修正してください。

回転操作の実装

ここまでできたら、次は回転操作を組み込むだけになります。

「TetrisSceneManager」スクリプトを次のように修正してください。

コンパイルできたら再生して動作を確認してみてください。

キー入力に合わせてブロックを回転できるようになっていればOKです。

キー入力は次のようになります。

  • Q : 前方向を左に向ける
  • E : 前方向を右に向ける
  • A : 上方向を左に回す
  • D : 上方向を右に回す

まとめ

今回の記事では落下中のブロックを回転するようにしました。

回転操作は数学の知識が必要になり難しい感じになってますが、ここの改造や理解に関しては今回は読者のチャレンジ課題とします。

け、決して解説を始めたら終わらなくなるなんて理由では・・・ないですよ()

また操作自体も難しい感じになってしまってるので、キーを押すと予め設定しておいたブロックの形に変更するなどの仕様変更もいいかもしれません。

まとめると以下のようになります。

  • 回転処理をブロック関係のスクリプトに追加した。
  • 回転する時にグリッド内の状態を見て回転できるかどうか判定するようにした

それでは次の記事に行ってみましょう!

次の記事:

3Dテトリスのスコアと次に落ちてくるブロックを表示する処理とUIの作成
前回の記事でテトリスブロックの回転処理を作りました。落下、消滅、回転処理ができてかなりゲームらしくなってきましたね。 前回の記事: 今回の記事ではスコアや次に落ちてくるブロックの表示UIを作成していきます。 テトリススコアのUI作...

【Unity入門の森の最新ゲーム開発講座もお届け】

コメント

タイトルとURLをコピーしました