예제 #1
0
    void OnCollisionExit(Collision coll)
    {
        manipObject o = coll.transform.GetComponent <manipObject>();

        if (o != null)
        {
            o.onTouch(false, manipulatorObjScript);
        }
    }
예제 #2
0
    void OnCollisionEnter(Collision coll)
    {
        manipObject o = coll.transform.GetComponent <manipObject>();

        if (o != null)
        {
            o.onTouch(true, this);
        }
    }
예제 #3
0
    public void ForceGrab(manipObject o)
    {
        if (selectedObject != null)
        {
            release();
        }

        grabbing       = true;
        selectedObject = o;
        selectedObject.setGrab(grabbing, transform);
        emptyGrab         = false;
        selectedTransform = o.transform;
    }
예제 #4
0
    void LateUpdate()
    {
        if (grabbing)
        {
            return;
        }
        Transform candidate = null;

        if (selectedObject != null)
        {
            if (hitTransforms.Contains(selectedTransform))
            {
                candidate = selectedTransform;
            }
        }
        else
        {
            foreach (Transform t in hitTransforms)
            {
                if (t != null)
                {
                    manipObject o = t.GetComponent <manipObject>();
                    if (o != null)
                    {
                        if (o.curState != manipObject.manipState.grabbed && o.curState != manipObject.manipState.selected)
                        {
                            candidate = t;
                            break;
                        }
                    }
                }
            }
        }

        if (candidate != selectedTransform)
        {
            if (selectedObject != null)
            {
                selectedObject.GetComponent <manipObject>().setSelect(false, transform);
            }

            if (candidate != null)
            {
                candidate.GetComponent <manipObject>().setSelect(true, transform);
                if (candidate.GetComponent <handle>() != null)
                {
                    toggleCopy(true);
                }
                else if (candidate.GetComponent <manipObject>().canBeDeleted)
                {
                    toggleDelete(true);
                }
                hapticPulse();
                selectedTransform = candidate;
                selectedObject    = candidate.GetComponent <manipObject>();
            }
            else
            {
                toggleCopy(false);
                toggleDelete(false);
                selectedTransform = null;
                selectedObject    = null;
            }
        }
    }