protected override void UpdateGraph() { int fps = (int)(1 / Time.unscaledDeltaTime); int currentMaxFps = 0; for (int i = 0; i <= m_resolution - 1; i++) { if (i >= m_resolution - 1) { m_fpsArray[i] = fps; } else { m_fpsArray[i] = m_fpsArray[i + 1]; } // Store the highest fps to use as the highest point in the graph if (currentMaxFps < m_fpsArray[i]) { currentMaxFps = m_fpsArray[i]; } } m_highestFps = m_highestFps < 1 || m_highestFps <= currentMaxFps ? currentMaxFps : m_highestFps - 1; for (int i = 0; i <= m_resolution - 1; i++) { m_shaderGraph.Array[i] = m_fpsArray[i] / (float)m_highestFps; } // Update the material values m_shaderGraph.UpdatePoints(); m_shaderGraph.Average = m_fpsMonitor.AverageFPS / m_highestFps; m_shaderGraph.UpdateAverage(); m_shaderGraph.GoodThreshold = (float)m_graphyManager.GoodFPSThreshold / m_highestFps; m_shaderGraph.CautionThreshold = (float)m_graphyManager.CautionFPSThreshold / m_highestFps; m_shaderGraph.UpdateThresholds(); }
protected override void UpdateGraph() { float allocatedMemory = m_ramMonitor.AllocatedRam; float reservedMemory = m_ramMonitor.ReservedRam; float monoMemory = m_ramMonitor.MonoRam; m_highestMemory = 0; for (int i = 0; i <= m_resolution - 1; i++) { if (i >= m_resolution - 1) { m_allocatedArray[i] = allocatedMemory; m_reservedArray[i] = reservedMemory; m_monoArray[i] = monoMemory; } else { m_allocatedArray[i] = m_allocatedArray[i + 1]; m_reservedArray[i] = m_reservedArray[i + 1]; m_monoArray[i] = m_monoArray[i + 1]; } if (m_highestMemory < m_reservedArray[i]) { m_highestMemory = m_reservedArray[i]; } } for (int i = 0; i <= m_resolution - 1; i++) { m_shaderGraphAllocated.Array[i] = m_allocatedArray[i] / m_highestMemory; m_shaderGraphReserved.Array[i] = m_reservedArray[i] / m_highestMemory; m_shaderGraphMono.Array[i] = m_monoArray[i] / m_highestMemory; } m_shaderGraphAllocated.UpdatePoints(); m_shaderGraphReserved.UpdatePoints(); m_shaderGraphMono.UpdatePoints(); }
protected override void UpdateGraph() { int incrementPerIteration = Mathf.FloorToInt(m_audioMonitor.Spectrum.Length / (float)m_resolution); for (int i = 0; i <= m_resolution - 1; i++) { float currentValue = 0; for (int j = 0; j < incrementPerIteration; j++) { currentValue += m_audioMonitor.Spectrum[i * incrementPerIteration + j]; } // Uses 3 values for each bar to accomplish that look if ((i + 1) % 3 == 0 && i > 1) { float value = ( m_audioMonitor.dBNormalized(m_audioMonitor.lin2dB(currentValue / incrementPerIteration)) + m_graphArray[i - 1] + m_graphArray[i - 2] ) / 3; m_graphArray[i] = value; m_graphArray[i - 1] = value; m_graphArray[i - 2] = -1; // Always set the third one to -1 to leave gaps in the graph and improve readability } else { m_graphArray[i] = m_audioMonitor.dBNormalized(m_audioMonitor.lin2dB(currentValue / incrementPerIteration)); } } for (int i = 0; i <= m_resolution - 1; i++) { m_shaderGraph.Array[i] = m_graphArray[i]; } m_shaderGraph.UpdatePoints(); }