تابع Rigidbody.AddExplosion در یونیتی _ایجاد اثر نیروی انفجار_و لیست کلایدرهای یک محدوده
پنجشنبه, ۲۰ آبان ۱۳۹۵، ۰۴:۵۷ ق.ظ
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،اعمال میشه.
۹۵/۰۸/۲۰