Пример #1
0
        /// <summary>
        /// It saves the reference to objects passed as arguments for later use.
        /// </summary>
        /// <param name="isRight">Whether this picker is for right hand.</param>
        /// <param name="triggerColliderModel">The trigger collider hand model.</param>
        /// <param name="palmCenterTransform">Transform of the palm center.</param>
        /// <param name="handControllerSettings">Hand controller settings that allow modification.</param>
        public void AttachHandController(bool isRight, UnityHandModel triggerColliderModel,
                                         Transform palmCenterTransform, IHandControllerSettings handControllerSettings)
        {
            if (triggerColliderModel == null)
            {
                Debug.LogError("Trigger collider model is null");
                return;
            }
            int n = triggerColliderModel.Fingers.Length;

            for (int i = 0; i < n; i++)
            {
                UnityFingerModel fingerModel          = triggerColliderModel.Fingers[i];
                IFingerTriggerColliderManager manager =
                    fingerModel.Finger.GetComponent <IFingerTriggerColliderManager>();
                if (manager == null)
                {
                    Debug.LogErrorFormat("Unable to find trigger collider manager on finger {0}", i);
                }
                _fingerTriggers[i] = manager;
            }
            PalmCenter         = palmCenterTransform;
            _handRootTransform = triggerColliderModel.HandRootTransform;
            _initialized       = true;
            FindSnapper(isRight, _handRootTransform, palmCenterTransform, handControllerSettings);
            FindTriggeringTouchableManager(triggerColliderModel.Hand);
        }
Пример #2
0
 /// <summary>
 /// Save references to variables for later use.
 /// </summary>
 /// <param name="isRight">Whether the hand model is right hand.</param>
 /// <param name="handRootTransform">Most parent transform of the hand model.</param>
 /// <param name="palmCenterTransform">Palm center transform of the hand model.</param>
 /// <param name="handControllerSettings">Hand controller settings that allow to
 /// be modified.</param>
 public void AttachHandController(bool isRight, Transform handRootTransform,
                                  Transform palmCenterTransform, IHandControllerSettings handControllerSettings)
 {
     _handRootTranform       = handRootTransform;
     _palmCenter             = palmCenterTransform;
     IsRight                 = isRight;
     _handControllerSettings = handControllerSettings;
 }
Пример #3
0
 /// <summary>
 /// Find snapper object from hand transform. Snapper gives snapping behaviour
 /// of its hand model. It lets hand model to snap onto other objects attached with
 /// snappable scripts.
 /// </summary>
 /// <param name="isRight">Whether the hand model is right hand.</param>
 /// <param name="handRootTransform">Hand root transform of the hand model</param>
 /// <param name="palmCenterTransform">Palm centre transform</param>
 /// <param name="handControllerSettings">Public hand controller settings
 /// that may be modified by snapper.</param>
 private void FindSnapper(bool isRight, Transform handRootTransform,
                          Transform palmCenterTransform,
                          IHandControllerSettings handControllerSettings)
 {
     _snapper = _handRootTransform.GetComponentInChildren <SnapperDexmo>();
     if (_snapper == null)
     {
         Debug.LogWarning("Unable to find snapperDexmo.");
         return;
     }
     // Save some variables in snapper for later use.
     _snapper.AttachHandController(isRight, handRootTransform,
                                   palmCenterTransform, handControllerSettings);
 }