コード例 #1
0
    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);
    }
コード例 #2
0
    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);
    }