private void OnTriggerEnter(Collider collider) { HandFeature handFeature = collider.GetComponent <HandFeature>(); if (handFeature != null && IsAllowedType(handFeature)) { if (_firstHandFeatureEnterEvent != null && _handFeatureList.Count == 0) { transform.localScale = Vector3.Scale(transform.localScale, _expandOnEntry); _firstHandFeatureEnterEvent.Invoke(handFeature); } if (_handFeatureEnterEvent != null) { _handFeatureEnterEvent.Invoke(handFeature); } _handFeatureList.Add(handFeature); if (!_twoHandsEntered && HandCount > 1) { _twoHandsEntered = true; if (_twoHandEnterEvent != null) { _twoHandEnterEvent.Invoke(this); } } } }
private void OnHandExit(HandFeature handFeature) { if (handFeature != null) { _handFeatureList.Remove(handFeature); } if (_lastHandFeatureExitEvent != null && HandCount == 0) { transform.localScale = _initialScale; _lastHandFeatureExitEvent.Invoke(handFeature); } if (_handFeatureExitEvent != null) { _handFeatureExitEvent.Invoke(handFeature); } if (_twoHandsEntered && HandCount < 2) { _twoHandsEntered = false; if (_twoHandExitEvent != null) { _twoHandExitEvent.Invoke(this); } } }
private void OnTriggerExit(Collider collider) { HandFeature handFeature = collider.GetComponent <HandFeature>(); if (handFeature != null && IsAllowedType(handFeature)) { OnHandExit(handFeature); } }
/// <summary> /// Determines if HandTrigger contains hand. /// </summary> /// <param name="handFeature"> HandFeature to find. </param> /// <returns> HandFeature if found, otherwise null. </returns> public bool ContainsHand(HandFeature handFeature) { for (int i = 0; i < _handFeatureList.Count; ++i) { if (_handFeatureList[i] == handFeature) { return(true); } } return(false); }
private void OnTriggerExit(Collider collider) { if (!_triggerWhenDisabled && !enabled) { return; } HandFeature handFeature = collider.GetComponent <HandFeature>(); if (handFeature != null && IsAllowedType(handFeature)) { OnHandExit(handFeature); } }
private bool IsAllowedType(HandFeature handFeature) { switch (_allowedFeatureType) { case HandFeatureType.Any: return(true); case HandFeatureType.PalmFeature: return(handFeature is CenterHandFeature); case HandFeatureType.TopFeature: return(handFeature is TopHandFeature); default: throw new ArgumentOutOfRangeException(); } }
private void OnRelease(HandFeature handFeature) { PlayAudioClip(false); }
private void OnGrab(HandFeature handFeature) { PlayAudioClip(true); }