gameover.blog.ir
شکل کلی:
public void AddExplosionForce(float explosionForce,
Vector3 explosionPosition,
float explosionRadius,
float upwardsModifier = 0.0F,
ForceMode mode = ForceMode.Force);
مثال:
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);
}
}
}
نکته :
در مثال بالا متد OverlapSphere از کلاس فیزیک، کلایدرهایی که در اشتراک محدوده ی کره ای با شعاع radius هستن رو در یک آرایه از کلایدر،برگشت میده.
سپس چک می کنیم که نیروی انفجار با این کلایدرها برخوردی داره یا نه و آیا این کلایدرهای rigidbody یا فیزیک سخت دارن یا نه.
اگه همه چیز اوکی بود،نیروی تنظیم شده در متغیر power در موقعیت انفجار explosionPos با شعاع radius و
upwardsModifier (به علت تخصصی بودن همونطوری گذاشتم)با مقدار 3،اعمال میشه.