爆発のエフェクトをシミュレートするために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)