public void RequestNewWaterRipple(Vector2 coords) { WaterRippleData data = new WaterRippleData(); data.coords = coords; data.startTime = Time.realtimeSinceStartup; waterRipplesDataArray[nextWaterRippleIndex] = data; nextWaterRippleIndex++; if (nextWaterRippleIndex >= numWaterRipples) // cycle through the array, reusing each { nextWaterRippleIndex = 0; } waterRipplesCBuffer.SetData(waterRipplesDataArray); }
private void InitializeWaterRipplesBuffer() { waterRipplesCBuffer = new ComputeBuffer(numWaterRipples, sizeof(float) * 6); waterRipplesDataArray = new WaterRippleData[waterRipplesCBuffer.count]; for (int i = 0; i < numWaterRipples; i++) { WaterRippleData data = new WaterRippleData(); data.coords = new Vector2(UnityEngine.Random.Range(0f, 1f), UnityEngine.Random.Range(0f, 1f)); data.startTime = UnityEngine.Time.realtimeSinceStartup; waterRipplesDataArray[i] = data; } // Temp init state for debugging: waterRipplesCBuffer.SetData(waterRipplesDataArray); }