void Update()
    {
        //spotlight update
        spotlight.position = CCPlayer.main.leftHand.transform.position;
        spotlight.rotation = CCPlayer.main.leftHand.transform.rotation;
        //ring and leveling plane update
        for (int i = 0; i < numPlanes; i++)
        {
            Vector3 pos = levelingPlanes[i].t.position;
            pos.y += levelingPlanes[i].dir * Time.deltaTime;
            if (pos.y < -bounds - offset)
            {
                levelingPlanes[i].dir = 1;
            }
            if (pos.y > bounds - offset)
            {
                levelingPlanes[i].dir = -1;
            }
            levelingPlanes[i].t.position = pos;
        }
        UpdateConveyor();
        //hand update
        RaycastHit hit;
        bool       rightHandDown = CCPlayer.main.rightHand.handInput.triggerState == InputState.Down;

        if (!rightHandDown)
        {
            return;
        }
        if (Physics.Raycast(spotlight.position, (CCPlayer.main.rightHand.anchor.position - spotlight.position).normalized, out hit, 100, ragdollLayerMask))
        {
            if (hit.collider.name.StartsWith("mixamorig"))
            {
                RagdollController rc = hit.collider.GetComponentInParent <RagdollController>();
                if (rc != null)
                {
                    rc.InitiateGrab(CCPlayer.main.rightHand, hit.rigidbody);
                }
            }
        }
    }