Version: 2018.1
public void AddExplosionForce (float explosionForce, Vector3 explosionPosition, float explosionRadius, float upwardsModifier= 0.0F, ForceMode mode= ForceMode.Force);

パラメーター

explosionForce爆発の力(距離によって変更される可能性あり)
explosionPosition爆発の影響があるエリア内の中心
explosionRadius爆発の影響があるエリア内の球体の半径
upwardsModifierオブジェクトを持ち上げたように見せる爆発の見かけ上の位置に対する調整
modeターゲットに力を適用するのに使用される方法

説明

爆発のエフェクトをシミュレートするために Rigidbody に力を適用させます。

爆発は、ワールド空間における爆発影響が及ぶ範囲や特定の中心位置でオブジェクト範囲としてモデル化されます。通常、オブジェクト範囲外では、爆発による影響は受けません。また、力は中心から遠ざかるにしたがって減少します。しかし、0 の値が Radius に渡された場合、リジッドボディから中心まで遠いにかかわらず最大限の力が適用されます。

デフォルトでは、力の方向は爆発の中心からリジッドボディの質量中心に向かっていくラインです。upwardsModifier パラメータに非 0 の値を渡した場合、方向は中心点の Y コンポーネントからの値を引いて変更されます。例えば、upwardsModifier の2.0 の値を渡した場合、爆発は力の方向を算出する目的で、実際の位置2.0以下のユニットが中心になるように見えます(すなわち、爆発影響の中心と半径は変更されません)。このパラメータを使用すると、単に外部へ向かう力よりしばしば劇的な演出効果を与えることができる空中の上方にオブジェクトを投げるように見える爆発を簡単に作ることができます。

力は、アクティブのリジッドボディにのみ適用することができます。ゲームオブジェクトが非アクティブの場合、AddExplosionForce は効果がありません。

using UnityEngine;
using System.Collections;

// Applies an explosion force to all nearby rigidbodies 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) { Rigidbody rb = hit.GetComponent<Rigidbody>();

if (rb != null) rb.AddExplosionForce(power, explosionPos, radius, 3.0F); } } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961