【Unity】ボールを跳ね返すブロック(GameObject)を作る
ボールを跳ね返すブロックの作り方を紹介します。
目次
完成動作
作り方は以下から。
床を斜めに作成
1.Cubeを使って斜めに床を作成(わかりやすいように赤色を付けてます。)
跳ね返されるボールを作成
1.Sphereを作成して、傾きのてっぺんに置く。
2.Sphereに"Rigidbody"を付ける。
当たった相手を跳ね返すGameObjectを作成
1.例としてCubeを設置します。名前はBounceにします。
2.SphereがBounceに当たるように場所を調整する。
当たったら跳ね返るスクリプトを作成
1.Bounce.csという名前のスクリプトを作成して、以下のコードを記載する。
using UnityEngine;
public class Bounce : MonoBehaviour
{
/// <summary>
/// 跳ね返す強さの変数
/// </summary>
[SerializeField]
private float bounce = 10f;
/// <summary>
/// 衝突した時
/// </summary>
/// <param name="collision"></param>
private void OnCollisionEnter(Collision collision)
{
// 当たった相手のRigidbodyのx軸方向に力を加える。
// 今回はx軸のマイナス方向に力を加えて跳ね返す。
collision.rigidbody.AddForce(-bounce, 0f, 0f, ForceMode.Impulse);
}
}
スクリプトを跳ね返すGameObjectにアタッチ
1.Bounce.csを跳ね返すGameObject(Bounceオブジェクト)にアタッチする。
※跳ね返す強さは以下のBounceの値の"10″を変更する。
完成
これでSphereオブジェクトがBounceオブジェクトにぶつかると跳ね返ります。
ディスカッション
コメント一覧
まだ、コメントがありません