private bool UpdateTrigger(OvrAvatarPhysicsHand hand, OVRInput.Axis1D input)
    {
        var hand_trigger = OVRInput.Get(input);

        if (hand_trigger > 0)
        {
            hand.ActivateColliders();
            return(true);
        }
        else
        {
            hand.DeactivateColliders();
            return(false);
        }
    }
    public void AddPhysicsComponent(GameObject ovrAvatarComponent,
                                    OvrAvatarPhysicsHandTypes.HandType type)
    {
        var builder = new OvrAvatarPhysicsHandBuilder();
        var hand    = builder.Build(ovrAvatarComponent, type);

        if (type == OvrAvatarPhysicsHandTypes.HandType.Left)
        {
            leftHand = hand;
        }
        else if (type == OvrAvatarPhysicsHandTypes.HandType.Right)
        {
            rightHand = hand;
        }
    }
    private OvrAvatarPhysicsHandComponent BuildThumb(OvrAvatarPhysicsHand hand,
                                                     Transform thumbFingerBegin, Transform thumbFingerEnd)
    {
        var newGameObject = new GameObject();

        newGameObject.transform.SetParent(hand.gameObject.transform);
        newGameObject.name = hand.gameObject.name + "_thumb";
        newGameObject.transform.localPosition = new Vector3(0, 0, 0);
        newGameObject.transform.localRotation = Quaternion.identity;

        var thumbComponent      = newGameObject.AddComponent <OvrAvatarPhysicsHandComponent>();
        var thumbFingerCollider = newGameObject.AddComponent <CapsuleCollider>();

        return(thumbComponent);
    }
    private OvrAvatarPhysicsHandComponent BuildIndexFinger(OvrAvatarPhysicsHand hand,
                                                           Transform indexFingerBegin1, Transform indexFingerEnd1)
    {
        var indexFingerGameObject = new GameObject();

        indexFingerGameObject.transform.SetParent(hand.gameObject.transform);
        indexFingerGameObject.name = hand.gameObject.name + "_index";
        indexFingerGameObject.transform.localPosition = new Vector3(0, 0, 0);
        indexFingerGameObject.transform.localRotation = Quaternion.identity;

        var indexComponent      = indexFingerGameObject.AddComponent <OvrAvatarPhysicsHandComponent>();
        var indexFingerCollider = indexFingerGameObject.AddComponent <CapsuleCollider>();

        return(indexComponent);
    }
    private OvrAvatarPhysicsHandComponent BuildFist(OvrAvatarPhysicsHand hand,
                                                    Transform handBegin, Transform middleFinger)
    {
        var fistGameObject = new GameObject();

        fistGameObject.transform.SetParent(hand.gameObject.transform);
        fistGameObject.name = hand.gameObject.name + "_fist";
        fistGameObject.transform.localPosition = new Vector3(0, 0, 0);
        fistGameObject.transform.localRotation = Quaternion.identity;

        var fistComponent = fistGameObject.AddComponent <OvrAvatarPhysicsHandComponent>();
        var fistCollider  = fistGameObject.AddComponent <CapsuleCollider>();

        return(fistComponent);
    }
    private void BuildComponents(
        OvrAvatarPhysicsHand hand,
        OvrAvatarPhysicsHandTypes.HandType type,
        GameObject ovrAvatarComponent)
    {
        var transformations = CreateHandTransformations(type, ovrAvatarComponent);

        hand.gameObject.transform.localPosition = transformations.handBegin.transform.localPosition;
        hand.gameObject.transform.localRotation = transformations.handBegin.transform.localRotation;

        var handComponents = new HandComponents
        {
            indexComponent = BuildIndexFinger(hand, transformations.indexFingerBegin, transformations.indexFingerEnd),
            thumbComponent = BuildThumb(hand, transformations.thumbFingerBegin, transformations.thumbFingerEnd),
            fistComponent  = BuildFist(hand, transformations.handBegin, transformations.grip)
        };

        hand.Initialize(handComponents, transformations);
    }
 public OvrAvatarPhysicsManager()
 {
     leftHand  = null;
     rightHand = null;
 }