protected void PresentPattern() { dataBuffer.GetData(colorData); if (manager.pusherConnected) { for (int i = 0; i < colorData.Length * 3; i += 3) { pixelBuffer[i] = (byte)(colorData[i / 3].x * 255); pixelBuffer[i + 1] = (byte)(colorData[i / 3].y * 255); pixelBuffer[i + 2] = (byte)(colorData[i / 3].z * 255); } var request = new UnityWebRequest(pixelEndpoint, "POST"); request.uploadHandler = new UploadHandlerRaw(pixelBuffer); request.SendWebRequest(); } if (!manager.highPerformance) { int count = 0; Vector3 avg = Vector3.one; for (int i = 0; i < colorData.Length; i++) { if (!(float.IsNaN(colorData[i].x) || float.IsNaN(colorData[i].y) || float.IsNaN(colorData[i].z))) { avg += colorData[i]; count++; } else { //Note the NaN? } } avg /= count; manager.SetLightColor(new Color(avg.x, avg.y, avg.z)); } }