1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
-
- using UnityEngine;
- using System.Collections;
- namespace Valve.VR.InteractionSystem
- {
-
- public class DistanceHaptics : MonoBehaviour
- {
- public Transform firstTransform;
- public Transform secondTransform;
- public AnimationCurve distanceIntensityCurve = AnimationCurve.Linear( 0.0f, 800.0f, 1.0f, 800.0f );
- public AnimationCurve pulseIntervalCurve = AnimationCurve.Linear( 0.0f, 0.01f, 1.0f, 0.0f );
-
- IEnumerator Start()
- {
- while ( true )
- {
- float distance = Vector3.Distance( firstTransform.position, secondTransform.position );
- Hand hand = GetComponentInParent<Hand>();
- if (hand != null)
- {
- float pulse = distanceIntensityCurve.Evaluate( distance );
- hand.TriggerHapticPulse((ushort)pulse);
-
- }
- float nextPulse = pulseIntervalCurve.Evaluate( distance );
- yield return new WaitForSeconds( nextPulse );
- }
- }
- }
- }
|