Exemple #1
0
        public override IEnumerator InitializeHand(device_type_t deviceType)
        {
            yield return(new WaitForFixedUpdate());

            Hand      targetHand = TargetManager.GetHandController(deviceType);
            Transform target     = targetHand.WristTransform;

            GameObject parent = deviceType == device_type_t.GLOVE_LEFT ? Left.gameObject : Right.gameObject;

            // Initialize visual body
            SphereCollider collider = target.gameObject.AddComponent <SphereCollider>();

            collider.center    = new Vector3(-0.01f, -0.11f, -0.04f);
            collider.radius    = 0.04f;
            collider.isTrigger = true;
            target.gameObject.AddComponent <TriggerBinder>();

            // Initialize the controller
            var hand       = HandFactory.GetHand(parent, HandType.Physics, TargetManager.HandData, this, deviceType);
            var controller = hand as PhysicsHand;

            controller.PhysicsHandSettings   = _physicsHandSettings;
            controller.PhysicsWristSettings  = _physicsWristSettings;
            controller.PhysicsFingerSettings = _physicsFingerSettings;

            controller.Target = targetHand;
            HandControllers.Add(controller);

            controller.Grabber = CreateObjectGrabber(parent, deviceType, target);
        }