using System.Collections; using System.Collections.Generic; using UnityEngine; public class OilCollider : MonoBehaviour { private ParticleSystem part; public List collisionEvents; public GameObject fxExplosion; private bool collided = false; public GameObject pf; void Start() { part = GetComponent(); collisionEvents = new List(); } void OnParticleCollision(GameObject other) { { int eventCount = ParticlePhysicsExtensions.GetCollisionEvents(part, other, collisionEvents); for (int i = 0; i < collisionEvents.Count; i++) { if (!collided) { foreach (Transform child in transform) { if (!child.gameObject.GetComponent()) { Destroy(child.gameObject); } } ParticleCollisionEvent collision = collisionEvents[i]; Vector3 point = collision.intersection; GameObject collider = Instantiate(pf, part.transform); collider.transform.position = point; collider.transform.rotation = Quaternion.identity; collided = true; StartCoroutine(pauseSpill()); } } } } private IEnumerator pauseSpill() { yield return new WaitForSeconds(1.7f); part.Pause(); collided = false; AudioSource cranking = GameObject.Find("SFX/OilSpill").GetComponent(); if (cranking.isPlaying) cranking.Stop(); } }