public void BroadcastCollisionAudio(CollisionAudioHitConfig config, AudioChannel channel, Vector3 pos, float rms, float pitch) { if (showDebug) { Debug.Log(base.name + " Broadcast Collision Audio "); } float num = AudioUtils.ValueToDB(rms) + 32f; if (num < -64f) { return; } if (identity == null) { Debug.LogErrorFormat(this, "No NetIdentity for {0}", base.name); return; } NetStream netStream = identity.BeginEvent(evtCollisionAudio); netStream.Write(config.netId, 8); if (channel == AudioChannel.Footsteps) { netStream.Write(v: true); } else { netStream.Write(v: false); if (channel == AudioChannel.Body) { netStream.Write(v: true); } else { netStream.Write(v: false); } } Vector3 vec = pos - base.transform.position; NetVector3.Quantize(vec, 100f, 10).Write(netStream, 3); netStream.Write(NetFloat.Quantize(AudioUtils.ValueToDB(rms) + 32f, 64f, 6), 6); netStream.Write(NetFloat.Quantize(AudioUtils.RatioToCents(pitch), 4800f, 8), 3, 8); identity.EndEvent(); }
public void OnReceiveCollisionAudio(NetStream stream) { if (showDebug) { Debug.Log(base.name + " Recieve Collision Audio "); } ushort libId = (ushort)stream.ReadUInt32(8); AudioChannel channel = (!stream.ReadBool()) ? (stream.ReadBool() ? AudioChannel.Body : AudioChannel.Physics) : AudioChannel.Footsteps; Vector3 b = NetVector3.Read(stream, 3, 10).Dequantize(100f); Vector3 pos = base.transform.position + b; float emit = AudioUtils.DBToValue(NetFloat.Dequantize(stream.ReadInt32(6), 64f, 6) - 32f); float num = AudioUtils.CentsToRatio(NetFloat.Dequantize(stream.ReadInt32(3, 8), 4800f, 8)); CollisionAudioHitConfig config = CollisionAudioEngine.instance.GetConfig(libId); if (config != null) { if (showDebug) { Debug.Log(base.name + " There is no audio engine "); } config.PlayWithKnownEmit(channel, null, pos, emit, num); } }