private void Update() { var pos = transform.position; var right = transform.TransformVector(Vector3.right); var down = transform.TransformVector(Vector3.down); var forward = transform.TransformVector(Vector3.forward); for (int i = 0; i < count; i++) { float t = i / (count - 1f); var pos2 = pos + right * (t - 0.5f) * width; SurfaceOutputs outputs = surfaceData.GetRaycastSurfaceTypes(pos2, down, shareList: true); //maxOutputCount: maxOutputCount, outputs.Downshift(maxOutputCount, minWeight); //, mult); for (int ii = 0; ii < outputs.Count; ii++) { var output = outputs[ii]; var pos3 = pos2 - down * yStep * (yOffset + output.surfaceTypeID); Debug.DrawLine(pos3, pos3 + forward * output.weight * depth, Color.yellow); } } }
private void Update() { var pos = transform.position; var downDir = -transform.up; System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Start(); if (reuseRaycastHit) { if (!Physics.Raycast(pos, downDir, out RaycastHit rh, Mathf.Infinity)) { return; } for (int i = 0; i < times; i++) { SurfaceOutputs outputs = soundSet.data.GetRHSurfaceTypes(rh, shareList: true); outputs.Downshift(maxOutputCount, minWeight); for (int ii = 0; ii < outputs.Count; ii++) { clip = soundSet.surfaceTypeSounds[outputs[ii].surfaceTypeID].GetRandomClip(out volume, out pitch); } } } else { for (int i = 0; i < times; i++) { SurfaceOutputs outputs = soundSet.data.GetRaycastSurfaceTypes(pos, downDir, shareList: true); outputs.Downshift(maxOutputCount, minWeight); for (int ii = 0; ii < outputs.Count; ii++) { clip = soundSet.surfaceTypeSounds[outputs[ii].surfaceTypeID].GetRandomClip(out volume, out pitch); } } } sw.Stop(); float time = (float)sw.Elapsed.TotalMilliseconds; elapses.Insert(0, time); while (elapses.Count > smoothFrames) { elapses.RemoveAt(elapses.Count - 1); } float sum = 0; for (int i = 0; i < elapses.Count; i++) { sum += elapses[i]; } sum /= smoothFrames; this.text.text = times + (reuseRaycastHit ? " Reused RH " : "") + " Iterations: \n\n" + time.ToString("00.00") + " MS\n\n" + sum.ToString("00.00") + " MS"; }