非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Unityでゲームづくりに挑戦(1)スプライトに重力を付けてタップで浮き上がらせる

      2020/08/22

Unityで2Dゲーム制作に奮闘中です。

今回はキャラクター(スプライト)に重力を付けて画面をタップで浮き上がらせるところまで作ったので手順を書き留めておきます。今回の完成形は以下の動画のとおりです。

 

ステージとキャラ画像を取り込む

まずはあらかじめ作っておいたキャラクターの画像を取り込みます。方法は簡単でドラッグアンドドロップで取り込むことができます。

 

シーンにセットするのもドラッグアンドドロップで設置できます。とりあえず今回はステージとメインキャラを設置しました。

 

ステージに物理衝突を付与する

まずはステージにキャラクターが着地できるよう物理衝突の性質を付与します。

ステージを選択した状態で右画面から「Add Components」ボタンを押しましょう。

 

するとプルダウンメニューが現れるので、「Physics 2D」−「Box Collider 2D」を選択します。これでステージに物理的な性質を持つようになります。

 

スプライトに物理衝突を付与する

スプライトにも同じく物理衝突の性質を付与します。「Physics 2D」−「Box Collider 2D」を選択します。

 

スプライトに重力を付与する

次にスプライトに重力を付与します。

「Physics 2D」−「Rigidbody 2D」を選択します。

 

 

これでスプライトが空中で重力を受けて下に下がりステージ上に着地できるようになりました。ここまでの状態を以下の動画にしました。

 

C#スクリプトを作成する

次に画面をタップするとスプライトが浮き上がり、タップを連打するとぴょんぴょん跳ねるような動きをさせます。

ここからはプログラミングが必要となります。

Asset画面上で右クリックし、ポップアップメニューから「Create」−「C# Script」を選びます。

 

C#スクリプトファイルが生成されました。任意のファイル名を付けましょう(ファイル名はそのままでもいいけどわかりやすい名前にした方が良い)。今回は「Sprite01」としました。

 

スクリプトファイルをダブルクリックするとVSCodeが起動し編集できるようになります。※前回の記事でエディタをVSCodeに設定してあります。

 

Update()メソッド内に以下のコードを追記します。

if(Input.GetMouseButtonDown(0)){
  GetComponent<Rigidbody2D>().velocity = new Vector2(0, 6);
}
 

 

スプライトにスクリプトを関連付ける

次に先程作ったC#ファイルをスプライトに関連付けます。

「Add Components」ボタンを押し「Scripts」を選択します。すると先程作ったC#ファイルの名前(今回は「Script01」)が現れるのでそれを選択します。

 

これですべての設定は完了です。冒頭で示したとおり以下のような動きをするようになります。

 

スポンサーリンク

 - Unity