言語: 日本語
  • C#
  • JS
  • Boo

スクリプト言語

お好みのスクリプト言語を選択すると、サンプルコードがその言語で表示されます。

Rigidbody.AddExplosionForce

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Switch to Manual
public function AddExplosionForce(explosionForce: float, explosionPosition: Vector3, explosionRadius: float, upwardsModifier: float = 0.0F, mode: ForceMode = ForceMode.Force): void;
public void AddExplosionForce(float explosionForce, Vector3 explosionPosition, float explosionRadius, float upwardsModifier = 0.0F, ForceMode mode = ForceMode.Force);
public def AddExplosionForce(explosionForce as float, explosionPosition as Vector3, explosionRadius as float, upwardsModifier as float = 0.0F, mode as ForceMode = ForceMode.Force) as void

Description

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