ブロック崩し スクリプト

Unity
PlayerMove.cs
using UnityEngine;

public class PlayerMove : MonoBehaviour
{
    [Header("プレイヤー設定")]

    [SerializeField]
    private float speed = 8f;

    [SerializeField]
    private float size = 1f;


    private Rigidbody2D rb;

    private float input;


    void Start()
    {
        rb = GetComponent<Rigidbody2D>();

        // サイズ
        transform.localScale =
            transform.localScale * size;
    }


    void Update()
    {
        input = Input.GetAxisRaw("Horizontal");
    }


    void FixedUpdate()
    {
        Vector2 movement =
            Vector2.right *
            input *
            speed *
            Time.fixedDeltaTime;

        rb.MovePosition(rb.position + movement);
    }
}
Ball.cs
using UnityEngine;

public class Ball : MonoBehaviour
{
    [Header("ボール設定")]

    [SerializeField]
    private float speed = 8f;

    [SerializeField]
    private float angle = 45f;

    [SerializeField]
    private float size = 1f;


    [Header("生成位置")]

    [SerializeField]
    private float startX = 0f;

    [SerializeField]
    private float startY = -2f;


    private Rigidbody2D rb;


    void Start()
    {
        rb = GetComponent<Rigidbody2D>();

        // サイズ
        transform.localScale =
            transform.localScale * size;

        // 生成位置
        transform.position =
            new Vector3(startX, startY, transform.position.z);

        // 発射
        float radian = angle * Mathf.Deg2Rad;

        Vector2 direction = new Vector2(
            Mathf.Cos(radian),
            Mathf.Sin(radian)
        );

        rb.linearVelocity = direction * speed;
    }


    void FixedUpdate()
    {
        if (rb.linearVelocity.magnitude > 0)
        {
            rb.linearVelocity =
                rb.linearVelocity.normalized * speed;
        }
    }
}
Block.cs
using UnityEngine;

public class Block : MonoBehaviour
{
    private void OnCollisionEnter2D(Collision2D collision)
    {
        Destroy(gameObject);
    }
}

コメント