unityで、ブロック崩しゲーム2Dの作り方を解説したいと思います。 以前、いくつかの動画で、バー操作や、当たったら消える、みたいな 基本動作の解説をしてきました。 今回はそれらの知識をつかって、簡単なゲームを作っていきたいと思います。

今回の主な学習のテーマは
・当たり判定
・バウンド そして、
・物理シミュレーションのRigidbody
になります。 当たったら跳ね返るにはどうするか 当たったら消えるにはどうするか そして、ボールが特定の方向に動いてくれるにはどうするか みたいなのをゲームを作りながら解説していきたいと思います。

code

▼BallScript

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

public class BallScript : MonoBehaviour
{
    //1)Rigidbodyが扱える変数を用意
    private Rigidbody2D rb;

    // Start is called before the first frame update
    void Start()
    {
        //2)Rigidbodyを取得して代入
        rb = GetComponent<Rigidbody2D>();

        //3)右上方向に力を加える
        //[3-1]力を加える方向
        Vector2 myDirection = new Vector2(5, 5);

        //rb.AddForce(力を加える方向, 力を加えるモード);
        rb.AddForce(myDirection, ForceMode2D.Impulse);// [3-2]瞬間的に力を加える

    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

▼BarScript

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

public class BarScript : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        //1)左右の入力を取得(左が押されたのか、右が押されたのか)
        float myX = Input.GetAxis("Horizontal");

        //2)位置情報の変更
        //transform.position += new Vector3(x, y, z);
        transform.position += new Vector3(myX * 10, 0, 0) * Time.deltaTime;

    }
}

▼BlockScript

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

public class BlockScript : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    //1)当たったら
    private void OnCollisionEnter2D(Collision2D collision)
    {
        Destroy(gameObject);//ここでのgameObjectはBlockのこと
    }
}

    コメントを残す