はじめてのUnity3D_その8_応用編2

はじめてのUnity3D
○今回は、前回準備した「爆発パーティクル」を使って、ボールをクリックしたときに、「爆発パーティクル」が生成されるようにしていきます。
○「Sample Scene」を開く。
・前回、「爆発パーティクル」を探すために「Menu」シーンを開いたままの場合は、「Scenes」フォルダ内の「SampleScene」をダブルクリックしてください。
・下図は「SampleScene」が開かれている様子です。
※下図の赤枠にある場所で、「SampleScene」となっていることを確認しましょう。
○完成オブジェクトを1つだけ作るところから始める
・「Sample Scene」には様々な形状のオブジェクト(球体、キューブ、カプセル、シリンダーなど)があるかもしれませんが、1個の「Ball」だけを残して、それ以外は削除しておきます。
※床と壁は残しておいてください。
○「BallScript」改良していきます。
・「Project」ビューで、「BallScript」をダブルクリックして、「Visual Studio」を開きます。
・「 」と「Start」メソッドの間に、「public GameObject explosion;」とコーディングし、「保存」をします。
※「保存」のショートカットは、「Ctrl」+「S」
・「public」指定で「explosion」変数を宣言したので、下図のように「Inspector」ビュー>「BallScript」に「Explosion」欄(プロパティ)が表示されたことを確認してください。
・「public」指定で変数宣言をすれば、「Inspector」ビューでその変数に初期値が設定出来るようになります。

※詳しい方は、[SerializeField] private GameObject explosion;で良いかと思いますが、初心者を対象に、ここでは覚えることを最小限にするために「public」指定で変数宣言をすれば、「Inspector」ビューでその変数に初期値が設定出来る、ということで進めていきます。
○「Explosion」プロパティに、「爆発エフェクト」を設定する。
・方法その1:下図を参考に、「Explosion」プロパティに、「SmallExplosionEffect」(プレハブ)をドラッグ&ドロップします。
・方法その2:「Explosion」プロパティの右にある「⦿」(下図の赤枠)をクリック。
「Select Game Object」ダイアログが表示されるので、「Assets」タブを選択>検索欄に「smallex」とタイピングし絞り込む>「SmallExplosionEffect」をダブルクリックする。
・「Explosion」プロパティに、「SmallExplosionEffect」が設定される。
〇ボールをクリックしたときに、爆発を生成させる。
・以下のコードを、「OnMouseDown」関数に追加する。
if (explosion)
{
Instantiate(explosion, transform.position, transform.rotation);
}
・実行>ボールをクリックしたら、爆発エフェクトが生成されればOKです。
※しかし、何度も爆発エフェクトが繰り返し表示されてしまいます。
〇爆発エフェクトの繰り返し表示を修正する。
・「SmallExplosionEffect」をダブルクリックして、プレハブの編集エディタを開く。
・「Hierarchy」ビューで、「SmallExplosionEffect」を選択>「Inspector」ビューの「ParticleSystem」コンポーネントで、「Looping」をオフ
・「Hierarchy」ビューで、「Light」を選択>「Inspector」ビューの「ParticleSystem」コンポーネントで、「Looping」をオフ
・「Hierarchy」ビューで、「Embers」を選択>「Inspector」ビューの「ParticleSystem」コンポーネントで、「Looping」をオフ
・「Hierarchy」ビューで、「Fire」を選択>「Inspector」ビューの「ParticleSystem」コンポーネントで、「Looping」をオフ
・「Auto Save」にチェックが付いていれば、自動的に変更が保存されます。
・「Scenes」ボタンを押して、「Scene」ビューに戻ります。
・再度、実行>ボールをクリックすると爆発エフェクトが出るが、ループ表示されずに、1回だけの表示で終わればOKです。
今回は、ここまでです。
次回は、適当にクリックすると「不利」になるような仕掛けを入れていきます。
以上、お疲れ様でした。

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