Ejemplo n.º 1
0
    /// <summary>
    /// Same idea as the SyncPinch script but with more pairs of colliders.
    /// </summary>
    public void SyncGun()
    {
        Vector3 thumbTipPos  = thumbTip.transform.position;
        Vector3 indexTipPos  = indexTip.transform.position;
        Vector3 middleTipPos = middleTip.transform.position;
        Vector3 ringTipPos   = ringTip.transform.position;
        Vector3 pinkyTipPos  = pinkyTip.transform.position;

        Vector3 palmDirection = VectorFunc.Direction(pinkyTipPos, ringTipPos);
        float   palmDistance  = VectorFunc.Distance(pinkyTipPos, ringTipPos);

        Debug.Log("Distance between ring and pinky tip = " + palmDistance);
        gunPalmDirections.Add(palmDirection);
        gunPalmDistances.Add(palmDistance);

        float   avPalmDistance  = FloatAverage(gunPalmDistances);
        Vector3 avPalmDirection = Vector3Average(gunPalmDirections);

        gunPalm.transform.position = pinkyTipPos;
        gunPalm.transform.LookAt(avPalmDirection);
        gunPalm.transform.localScale = new Vector3(
            gunPalm.transform.localScale.x,
            gunPalm.transform.localScale.y,
            avPalmDistance * 2f
            );


        Vector3 pointDirection = VectorFunc.Direction(middleTipPos, indexTipPos);
        float   pointDistance  = VectorFunc.Distance(middleTipPos, indexTipPos);

        Debug.Log("Distance between middle and index tip = " + pointDistance);
        gunPointDirections.Add(pointDirection);
        gunPointDistances.Add(pointDistance);

        float   avPointDistance  = FloatAverage(gunPointDistances);
        Vector3 avPointDirection = Vector3Average(gunPointDirections);

        gunPoint.transform.position = middleTipPos;
        gunPoint.transform.LookAt(avPointDirection);
        gunPoint.transform.localScale = new Vector3(
            gunPoint.transform.localScale.x,
            gunPoint.transform.localScale.y,
            avPointDistance * 2f
            );


        Vector3 thumbDownPosition = thumbTipPos;

        thumbDownPositions.Add(thumbDownPosition);

        Vector3 avThumbDownPosition = Vector3Average(thumbDownPositions);

        gunThumbDown.transform.position   = avThumbDownPosition;
        gunThumbDown.transform.localScale = new Vector3(
            gunPoint.transform.localScale.x,
            gunPoint.transform.localScale.y,
            0.01f
            );
    }
Ejemplo n.º 2
0
    //==============================UPDATE METHODS==================================

    void LazerMovement(GameObject lazer, Vector3 startPos, Vector3 endPos)
    {
        Vector3 direction = VectorFunc.Direction(startPos, endPos);
        float   distance  = VectorFunc.Distance(startPos, endPos);

        if (lazer != null)
        {
            lazer.transform.position = startPos;
            lazer.transform.LookAt(endPos);
            //Set the scale of the cyl. The x & y values remain the same but the z value is equal to the distance * initial z value.
            lazer.transform.localScale = new Vector3(
                lazer.transform.localScale.x,
                lazer.transform.localScale.y,
                distance * cylSZ
                );
        }
        else
        {
            Debug.Log("Lazer not found.");
        }
    }
Ejemplo n.º 3
0
    /// <summary>
    /// This function gets the average direction and distance between the thumb tip and the index tip,
    /// then uses the averages to position the pinchBox collider.
    /// </summary>
    public void SyncPinch()
    {
        Vector3 thumbTipPos = thumbTip.transform.position - hand_base.transform.position;
        Vector3 indexTipPos = indexTip.transform.position - hand_base.transform.position;

        Vector3 direction = VectorFunc.Direction(thumbTipPos, indexTipPos);
        float   distance  = VectorFunc.Distance(thumbTipPos, indexTipPos);

        Debug.Log("Distance between thumb and index tip = " + distance);

        pinchDirections.Add(thumbTip.transform.InverseTransformDirection(direction));
        pinchDistances.Add(distance);

        float   avDistance  = FloatAverage(pinchDistances);
        Vector3 avDirection = Vector3Average(pinchDirections);


        pinchBox.transform.LookAt(thumbTip.transform.TransformDirection(avDirection));
        pinchBox.transform.localScale = new Vector3(
            pinchBox.transform.localScale.x,
            pinchBox.transform.localScale.y,
            avDistance * 2f
            );
    }