【Unity】ボールを跳ね返すブロック(GameObject)を作る

Unity

スポンサーリンク

ボールを跳ね返すブロックの作り方を紹介します。

完成動作

作り方は以下から。

床を斜めに作成

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オブジェクトにぶつかると跳ね返ります。

Unity

Posted by ton