Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/jackmawer/JacksWorld. An abandoned mini-project that I created while learning to use Unity with networking.
Something went wrong. Try again.
1.5 kB · 55 lines
C#
at master
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556using System;using UnityEngine;
namespace UnityStandardAssets.Effects{ public class WaterHoseParticles : MonoBehaviour { public static float lastSoundTime; public float force = 1;
private ParticleCollisionEvent[] m_CollisionEvents = new ParticleCollisionEvent[16]; private ParticleSystem m_ParticleSystem;
private void Start() { m_ParticleSystem = GetComponent<ParticleSystem>(); }
private void OnParticleCollision(GameObject other) { int safeLength = m_ParticleSystem.GetSafeCollisionEventSize();
if (m_CollisionEvents.Length < safeLength) { m_CollisionEvents = new ParticleCollisionEvent[safeLength]; }
int numCollisionEvents = m_ParticleSystem.GetCollisionEvents(other, m_CollisionEvents); int i = 0;
while (i < numCollisionEvents) { if (Time.time > lastSoundTime + 0.2f) { lastSoundTime = Time.time; }
var col = m_CollisionEvents[i].collider;
if (col.attachedRigidbody != null) { Vector3 vel = m_CollisionEvents[i].velocity; col.attachedRigidbody.AddForce(vel*force, ForceMode.Impulse); }
other.BroadcastMessage("Extinguish", SendMessageOptions.DontRequireReceiver);
i++; } } }}