Unityでゲーム、アプリ開発

Unityで初めてゲームやアプリを作る人のための支援ブログです。

Unity 初心者にまず作って欲しいブロック崩し!①簡単真似るだけ! 3Dゲーム作り編11

今回はUnityゲーム作りにおいて簡単に作る事が出来る
ブロック崩しを作って体感してもらいたい記事です。
難しい事は入りません、真似てコピー&ペーストです笑笑


初心者にまず作って欲しいブロック崩し!①簡単真似るだけ!

f:id:Phoenix9056:20200524205154p:plain

初心者にまず触れて欲しいブロック崩しゲームなのですが、
僕自身結構几帳面なので気に食わない所あると修正したり
枠とかきっちり仕上げたりデザインも最終的に綺麗に作ってしまいます笑笑
めんどくさって思われそうで笑笑

それでも良ければお付き合いください。
説明も分かりやすくなるように配慮していきます。


まずは枠から作っていくぞ!

f:id:Phoenix9056:20200524205717p:plain

※完成画面からお見せしているので悪しからず。
Hierarchy内の①+をクリックして、3D Object⇨Cubeを選択して
②のように4つ作成してください。
※最初は気にしないでキューブを作成してください。
Inspectorの設定で綺麗にしていきます。

始めに作成したHierarchyにあるCubeをクリックして、
InspectorTransformの値を③のように変更してください。

まずメインカメラの場所はこんな感じ。

f:id:Phoenix9056:20200524213028j:plain
Hierarchy内にあるMainCameraをクリックして
Inspector内にあるTransformの値です。

メインカメラの位置が違うと表示されるCubeの位置や値も変わってきます。


続いて各Cubeの設定画像を載せるぞ!

f:id:Phoenix9056:20200524213356j:plain

Cube(1)です。ややこしいですが
2つめのCubeです。
壁の中で下になる部分です。


f:id:Phoenix9056:20200524213535j:plain

Cube2です。ややこしいですが
3つ目のCubeです。
壁の中で左の壁になります。
サウスポーですね!


f:id:Phoenix9056:20200524215037j:plain

Cube3です。ややこしやですが
4つ目のCubeです!
壁の右側になります。
普通ですね!



今度はバーを作っていきます。

f:id:Phoenix9056:20200525110337p:plain

今度はバーを作っていきます。
Hierarchy内の①+をクリックして3D Object⇨Cubeを選択して
Inspectorより名前を②barに変更します。

③のようにTransformを変更するか、
好きな位置に変更してください。


バーを動かすスクリプトを作っていきます。

f:id:Phoenix9056:20200525110305p:plain

Project⇨Assets内で右クリック⇨Create⇨C# Scriptをクリックして
名前をBarMoveに変更します。
次のスクリプトをコピー&ペーストするか同じ記述にしてください。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BarMove : MonoBehaviour
{
    //pubricを使用してインスペクターから設定出来るようにします。
    //左方向のスピード
    public float leftspeed;
    //右方向のスピード
    public float rightspeed;
   
    void Update()
    {

        //左キーを入力した時の処理
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            //X(横)にleftspeedの値だけ力を加えます。
                this.transform.Translate(leftspeed, 0f, 0f);
            
        }
        //右キーを入力した時の処理
        if (Input.GetKey(KeyCode.RightArrow))
        {
            //X(横)にrightspeedの値だけ力を加えます。
            this.transform.Translate(rightspeed, 0f, 0f);
        }
    }
}

出来上がった①のスクリプトを②のbarにドラッグ&ドロップしてアタッチしてください。

②のBarInspectorにある先程アタッチしたBarMoveの値をLeftspeedには-の値を入力して
Rightspeedにはの値を入力してください。
スクリプトの記述上変数(leftspeed,rightspeedなど)の名前は違いますが
プログラム上では-の値で左右に力を加える設定になっています。

できれば③と同じ値に設定にしてください。
大きな値にすると物理演算を無視して壁ぶち抜けます笑笑
MoveStateは間違って要らない変数をpublicで入れていたので
気にしないでください。
スクリプトのコードは修正済みです。

次に④のRigidbodyコンポーネントInspectorの一番下にある
Add Componentから追加してください。
値も画像のようにしましょう。

Massは物体の質量で軽すぎるとボールに当たった時バーが
吹っ飛んで行きます。
Dragは空気抵抗になっていてコレもある程度ないと吹き飛ばされます。
次にConstraintsFreeze PositionX以外にはチェックを入れて、
横方向以外に動かないようにします。



今度はボールを作っていきます。

f:id:Phoenix9056:20200525224334j:plain

Hierarchyの①のをクリック⇨3D Object⇨Sphereを選択して
名前を②Ballに変更します。
f:id:Phoenix9056:20200525224906j:plain

Transformの値はPositionzの値を10にするだけです。

今度はボールが動くようにスクリプトを作っていきます。
project⇨Assets内で右クリック⇨Create⇨C# Scriptを選択して
名前をBallMoveにします。
次のコードをコピー&ペーストするか同じ記述にしてください。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BallMove : MonoBehaviour
{
    //ボールのスピード
    public float speed = 50;

    private void Start()
    {
        // GetComponentでRigidbodyで取得して変数rbで参照します。
        Rigidbody rb = this.GetComponent<Rigidbody>();
        // Vector3でいちを取得してそれぞれの方向に力とスピードを掛けて計算します。
        Vector3 vector = new Vector3(10.0f, 10.0f, 0.0f) * speed;
        // 重力に力を実際に加えます。
        rb.AddForce(vector);
    }
}

出来た③のスクリプトを②のBallにドラッグ&ドロップしてアタッチしてください。

BallにもInspectorの一番下にあるAdd Componentをクリックして
Rigidbodyを追加して④のように値を変更して、
ConstraintsFreeze PositionXY以外全部
チェックを入れて縦横以外動かないようにします。

⑤のスクリプトのスピードは自分で好きな数字にしてください。


コレだけではボールは跳ねません!

f:id:Phoenix9056:20200525234158j:plain

Project⇨Assets内で右クリック⇨Create⇨Physic Materialを選択して
①を作成します。
Inspectorから②のように変更をしてください。
詳しく知りたい方は。。。
自分で調べてください!笑笑

f:id:Phoenix9056:20200525234629j:plain

BallInspector内にあるSphere Collider
Materialの部分にPhysic Materialをドラッグ&ドロップするか
選択して変更してください。

f:id:Phoenix9056:20200525235104j:plain

BarInspector内のBox ColliderMaterialにも
同じように追加してください。


今度は背景に当たる壁を作っていきます。

f:id:Phoenix9056:20200526001917j:plain

Hierarchyの①+をクリック⇨3D Object⇨Planeを選択して
②Planeを作成します。
Inspector内のTransformの値は③のように変更してください。

今回Rotationの値も変更してあるので見逃さないように
変更していきましょう。


しっかり動くか確認していきましょう!

f:id:Phoenix9056:20200526004533g:plain


今回は土台作りと言う事でこんな感じで
終わりたいと思います!
デザインやブロック、落ちた時の処理は次回やっていきたいと思います。

ご視聴ありがとうございました!


ゆうきさんの今日のゲーム実況はこちら!

youtu.be

関連記事

※本格的に3Dゲームを作っていきたい方は下記カテゴリを参考にしてください。
www.unityprogram.info

※オススメの無料アセットは下記カテゴリより。便利なアセットが有ます。
www.unityprogram.info

※Unityを学習していきたい方は下記カテゴリを覗いて見てください。
www.unityprogram.info

※実際に使って読んでみたオススメの本は下記カテゴリからご覧ください。
www.unityprogram.info

※初心者に向けた簡単な記事は下記カテゴリより。
www.unityprogram.info