private void FixedUpdate() { HandPenetration deepestPenetrator = GetDeepestPenetrator(); audioSource.volume = (deepestPenetrator.MaxPenetrationDepth * depthVolumeBoost) * (IsGraspingObject() ? 0 : 1); if (Mathf.Approximately(audioSource.volume, 0) && audioSource.isPlaying) { audioSource.Pause(); // don't waste CPU time playing nothing } else { audioSource.UnPause(); } // move audiosource to center of all penetrating bodies int penetratorCount = 0; Vector3 penetratorCenter = GetPenetratorCenter(out penetratorCount); audioSource.transform.position = penetratorCenter; if (!overridePenetrationHaptics.GetValue()) { CalculatePenetrationHaptics(penetratorCount > 0 ? deepestPenetrator : null); } if (doHaptics) { HapticUpdate(); } }
bool AllowedAction(PAction action) { return(allowedActions.GetValue().Contains(action)); }