示例#1
0
        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();
            }
        }
示例#2
0
 bool AllowedAction(PAction action)
 {
     return(allowedActions.GetValue().Contains(action));
 }