public override void OnInspectorGUI() { FootstepOverride fo = (FootstepOverride)target; ResetErrorsAndWarnings(); if (fo.FootstepOverrideName.IsNullOrWhitespace()) { AddWarning("Override name is null or empty."); } DrawDefaultInspector(); ShowErrorsAndWarnings(); }
/// <summary> /// Emits a ladder step sound. /// </summary> public void EmitLadderSound() { if (Player.Footstep.GlobalVolume <= 0 || Player.Footstep.Asset == null) // If global volume or footstep asset is null, don't bother with the rest. { return; } FootstepAsset.Data data; // Get the corresponding footstep data if (CurrentLadderCollider == null) { data = Player.CurrentFootstepData; } else { FootstepOverride footstepOverride = CurrentLadderCollider.GetComponent <FootstepOverride>(); MeshRenderer mr = CurrentLadderCollider.GetComponent <MeshRenderer>(); if (footstepOverride != null) { data = Player.Footstep.Asset.GetData(footstepOverride.FootstepOverrideName); } else { data = Player.CurrentFootstepData; } } if (data == null) { throw new Exception("Footstep data was not found, are you sure you have any footsteps in your FootstepAsset or that you provided an existing footstep data name for the default footsteps?"); } AudioClip sound = data.GetRandomFootstep(); // Get sound float volume = Player.Footstep.Asset.WalkVolume; if (volume <= 0) { return; } float pitch = data.GetRandomPitch(); // Get random specified pitch // Play sound if (!Player.Footstep.Is3D) { Audio.Play(sound, volume * Player.Footstep.GlobalVolume, pitch); } else { if (Player.Footstep.Range <= 0f) { Audio.Play3D(sound, transform, volume * Player.Footstep.GlobalVolume, pitch); } else { Audio.Play3D(sound, transform, Player.Footstep.GlobalVolume * volume, pitch, Player.Footstep.Range); } } }