コード例 #1
0
    void InitParticleData()
    {
        Debug.Log("SizeOf OceanParticle: " + Marshal.SizeOf(typeof(OceanParticle)));
        particlesBuffer = new ComputeBuffer(countX * countZ, Marshal.SizeOf(typeof(OceanParticle)));
        particlesData   = new OceanParticle[particlesBuffer.count];
        int k = 0;

        for (int i = 0; i <= divisionZ; i++)
        {
            float ip = (float)i / divisionZ;
            float z  = Mathf.Lerp(-sizeZ * .5f, sizeZ * .5f, ip);
            for (int j = 0; j <= divisionX; j++)
            {
                float jp = (float)j / divisionX;
                float x  = Mathf.Lerp(-sizeX * .5f, sizeX * .5f, jp);
                particlesData[k++] = new OceanParticle(new Vector3(x, 0f, z));
            }
        }
        particlesBuffer.SetData(particlesData);
    }
コード例 #2
0
 void InitParticleData()
 {
     Debug.Log("SizeOf OceanParticle: " + Marshal.SizeOf(typeof(OceanParticle)));
     particlesBuffer = new ComputeBuffer(countX*countZ, Marshal.SizeOf(typeof(OceanParticle)));
     particlesData = new OceanParticle[particlesBuffer.count];
     int k = 0;
     for (int i=0; i<=divisionZ; i++) {
         float ip = (float)i/divisionZ;
         float z = Mathf.Lerp(-sizeZ*.5f, sizeZ*.5f, ip);
         for (int j=0; j<=divisionX; j++) {
             float jp = (float)j/divisionX;
             float x = Mathf.Lerp(-sizeX*.5f, sizeX*.5f, jp);
             particlesData[k++] = new OceanParticle(new Vector3(x, 0f, z));
         }
     }
     particlesBuffer.SetData(particlesData);
 }