こんにちは。【2Dシューティング】Unity公式チュートリアルをやってみるシリーズの5回目です。前回はさまざまな当たり判定を作成しました。
【2Dシューティング】Unity公式チュートリアルをやってみる4回目。当たり判定。
今回は背景の作成とスクロールの実装です。今回もめんどくさそうです。
背景をつくろう
ここでやること
- 空のゲームオブジェクトを作成。名前はBackgroundsに。
- Quadを3つ作成しBackgroundsの子要素に
- Quadに指定されたマテリアルをアタッチ
- 3つのQuad(Front,Middle,Back)の位置調整
空のゲームオブジェクトをつくってQuadもつくろう
空のゲームオブジェクトを作成。名前はBackgroundsにしてQuadを3つ作成する。Quadはhierarkhyのcreate→3DObject→Quadから作成可能だ。ひとつ作ったらCtrl-dで複製するテクニックを使って一気に3つ作成しよう。
作ったQuadの名前はそれぞれFrontMiddleBackにした。これをBackgrundsの子要素にした状態が以下だ。
Quadにマテリアルをアタッチしよう
作ったQuadFrontMiddleBackに指定されたマテリアルをあてていく。
位置とサイズの調整
公式チュートリアルと若干値がちがったが以下のように調整した。
– | Front | Middle | Back |
---|---|---|---|
Position Z | 0.1 | 0.2 | 0.3 |
Scale X | 14 | 14 | 14 |
Scale Y | 10 | 10 | 10 |
Scale Z | 1 | 1 | 1 |
重複した値もあるのでShiftを使った複数選択のテクニックを使って一気に入力していこう。
背景をスクロールさせよう
ここでやること
- BackgroundScriptの作成
- BackgroundScriptをFrontMiddleBackにアタッチ
- 値の調整
背景をスクロールさせるためのBackgorundScriptをつくろう
コードはさっぱりです。覚えてもしょうがないのでコピペコピペ。
using UnityEngine; public class BackgroundScript : MonoBehaviour { // スクロールするスピード public float speed = 0.1f; void Update () { // 時間によってYの値が0から1に変化していく。1になったら0に戻り、繰り返す。 float y = Mathf.Repeat (Time.time * speed, 1); // Yの値がずれていくオフセットを作成 Vector2 offset = new Vector2 (0, y); // マテリアルにオフセットを設定する GetComponent<Renderer>().sharedMaterial.SetTextureOffset ("_MainTex", offset); } }
つくったScirptのアタッチしよう
FrontMiddleBackすべてにBackgroundScriptをアタッチ。
値を調整しよう
BackgroundScriptで変数を定義したので値が調整できるようになっている。値を調整することでFrontMiddleBackのスクロールスピードがそれぞれ違う値になっていいかんじになる。
– | Front | Middle | Back |
---|---|---|---|
Speed(BackgroundScript) | 0.1 | 0.08 | 0.02 |
ここまでの状態
わりとゲームっぽくなった。だるい。
次の記事
次の記事は敵の軍隊を実装しています。
【2Dシューティング】Unity公式チュートリアルをやってみる6回目。敵の軍隊
コメント