Пример #1
0
    private void DoEmptyHand()
    {
        RaycastHit pickupHit;
        Ray        worldRay = new Ray(cam.transform.position, transform.position - cam.transform.position);

        if (Physics.Raycast(worldRay, out pickupHit, 100, objectLayer, QueryTriggerInteraction.Collide))
        {
            // PICKUP OBJECT
            var moveObject = pickupHit.collider.GetComponentInParent <MoveableObject>();
            if (Input.GetMouseButtonDown(0) && moveObject.canBePickedUp)
            {
                pickedObject = moveObject;
                pickedObject.PickupObject(m_Rigidbody);

                Vector3 pos = transform.position;
                pos.y = mouseHeight + pickedObject.mouseOffset;
                transform.position = pos;
                source.PlayOneShot(pickupSound);

                // SHOW SNAPS
                foreach (var item in snapPos)
                {
                    if (item.objectType == pickedObject.objectType)
                    {
                        item.ShowSnap();
                    }
                }
            }

            // SHOW GLOW
            var glow = pickupHit.collider.GetComponentInParent <GlowingObject>();
            if (moveObject.canBePickedUp && !glowRenderer.glowingObjects.Contains(glow))
            {
                glowRenderer.glowingObjects.Add(glow);
            }
        }
    }