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);
}
}


コメント