using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using Cysharp.Threading.Tasks; namespace BITKit { public static class PhysicsHelper { public static async UniTask AddForceAtPositionAsync(this Rigidbody rigidbody, Vector3 force, Vector3 position,ForceMode forceMode=ForceMode.Force) { await UniTask.DelayFrame(8); try { rigidbody.AddForceAtPosition(force, position,forceMode); } catch(MissingReferenceException){} } public static async void Explosion(Vector3 position,float radius,LayerMask layerMask,float force) { await UniTask.DelayFrame(8); foreach (var x in UnityEngine.Physics.OverlapSphere(position,radius,layerMask)) { if(x.attachedRigidbody is null)continue; x.attachedRigidbody.AddExplosionForce(force,position,radius); //Debug.Log(x); } } } }