爆発のエフェクトをシミュレートするためにRigidbodyに力を適用させます。爆発力はRigidbodyからの距離に応じて直線的に減少していきます
この関数はラグドールととても相性が良いです。
もし radius
が0の場合、Rigidbodyからどんなにから遠い position
にあっても減衰しない全ての力が適用されます。
explosionRadius
は下から押し上げるように力を適用します。
側面を押す代わりに爆発で持ち上げるようにするとクールな感じに見えますので役に立ちます。
値が2の時は爆発の位置は変えずに2メートルしたから押し上げられたような力を適用します。
explosionRadius
is the position from which the explosion force is to be applied.
explosionRadius
は爆発の半径です。Rigidbodyは explosionRadius
よりも遠くにある場合、影響を受けません。
var radius = 5.0; var power = 10.0; function Start () { // Applies an explosion force to all nearby rigidbodies var explosionPos : Vector3 = transform.position; var colliders : Collider[] = Physics.OverlapSphere (explosionPos, radius); for (var hit : Collider in colliders) { if (hit && hit.rigidbody) hit.rigidbody.AddExplosionForce(power, explosionPos, radius, 3.0); } }
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public float radius = 5.0F; public float power = 10.0F; void Start() { Vector3 explosionPos = transform.position; Collider[] colliders = Physics.OverlapSphere(explosionPos, radius); foreach (Collider hit in colliders) { if (hit && hit.rigidbody) hit.rigidbody.AddExplosionForce(power, explosionPos, radius, 3.0F); } } }
import UnityEngine import System.Collections public class ExampleClass(MonoBehaviour): public radius as float = 5.0F public power as float = 10.0F def Start() as void: explosionPos as Vector3 = transform.position colliders as (Collider) = Physics.OverlapSphere(explosionPos, radius) for hit as Collider in colliders: if hit and hit.rigidbody: hit.rigidbody.AddExplosionForce(power, explosionPos, radius, 3.0F)