Exemple #1
0
    private void Update()
    {
        switch (_isGrabbing)
        {
        case false:
            RaycastHit hit;
            if (realHand.IsPointing() &&
                Physics.Raycast(transform.position, transform.forward
                                , out hit, ray.GetPosition(1).z, LayerMask.GetMask("Item")))
            {
                _grabbed = hit.transform.GetComponent <LockRayItem>();
                _grabbed.Rayed();
                _grabbed.transform.SetParent(transform);
                _isGrabbing = true;
            }
            break;

        case true:
            if (!realHand.IsPointing())
            {
                _grabbed.transform.SetParent(null);
                _isGrabbing = false;
            }
            break;
        }//switch _isGrabbing
    }
    internal LockRayItem FindNearest()
    {
        LockRayItem nearest     = null;
        float       minDistance = Mathf.Infinity;

        foreach (LockRayItem item in _lockRayItems)
        {
            float distance = Vector3.Distance(item.transform.position, transform.position);
            if (distance < minDistance)
            {
                nearest     = item;
                minDistance = distance;
            }
        }
        return(nearest);
    }
Exemple #3
0
    private void FixedUpdate()//moving hand
    {
        switch (_mode)
        {
            case RAYCASTING:
                RaycastHit[] rayeds = Physics.RaycastAll(transform.position, transform.forward
                    , ray.GetPosition(1).z, LayerMask.GetMask("Item"));
                if (rayeds.Length <= 0)
                {
                    break;
                }
                
                foreach (RaycastHit rayed in rayeds)
                {
                    rayed.transform.GetComponent<LockRayItem>().Rayed();
                }
                break;

            case SELECTING: orb.SetPosition(realHand.transform.localPosition.z, ray.GetPosition(1).z);
                _selected = orb.FindNearest();
                _selected.Selected();
                break;
        }
    }