Exemplo n.º 1
0
 public override void OnGripPressed(HandTrackedInfo info)
 {
     Debug.Log("p");
     tryHandleMouseover(info);
     target?.OnGripPressed(info);
     movement?.OnGripPressed(info);
 }
Exemplo n.º 2
0
 void tryHandleMouseover(HandTrackedInfo info)
 {
     /*if (info.raycastHit == false) return;
      * var target = info.raycastInfo.collider.GetComponent<Focusable>();
      * if (focusedObj) focusedObj.SetFocused(false);
      * if (target) target.SetFocused(true);
      * focusedObj = target;*/
 }
Exemplo n.º 3
0
 public override void OnCancelPressed(HandTrackedInfo info)
 {
     if (drawnAtom != null)
     {
         GameObject.DestroyImmediate(drawnAtom);
         drawnAtom = null;
         connectAtomToHandControllerJoint = null;
     }
 }
Exemplo n.º 4
0
    // Update is called once per frame
    void Update()
    {
        if (!enabled)
        {
            return;          /* || Input.mousePosition == null || Camera.current == null) return;
                              * Debug.Log("" + (Camera.current == null));
                              * var mouseRay = Camera.current.ScreenPointToRay(Input.mousePosition);
                              * var mousePos3d = mouseRay.GetPoint(rayDepth);*/
        }
        var mousePos3d = fallbackCamera.ScreenPointToRay(Input.mousePosition).GetPoint(rayDepth);

        mockMousePosTarget.transform.position = mousePos3d;
        var eventInfo = new HandTrackedInfo()
        {
            pose       = defaultActionPose,
            gameobject = mockMousePosTarget.gameObject,
            transform  = mockMousePosTarget.transform,
            rigidbody  = mockMousePosTarget,
            direction  = HandTrackedInfo.Direction.Left,
            pressed    = false,
            down       = false
        };

        var ray     = fallbackCamera.ScreenPointToRay(Input.mousePosition);
        var hitInfo = new RaycastHit();
        var hit     = Physics.Raycast(ray, out hitInfo, 1000f, LayerMask.NameToLayer("interactive"));

        if (focused != null)
        {
            focused.GetComponent <Renderer>().material.DisableKeyword("_EMISSION");
        }
        if (hit)
        {
            hitInfo.collider.GetComponent <Renderer>().material.EnableKeyword("_EMISSION");
            focused = hitInfo.collider;
        }
        hit = false;

        if (Input.GetButtonDown("Fire1"))
        {
            Debug.Log("Onclick!");
            eventInfo.pressed = true; eventInfo.down = true;
            inputTarget.OnTriggerPressed(eventInfo);
        }
        if (Input.GetButtonUp("Fire1"))
        {
            eventInfo.pressed = false; eventInfo.down = true;
            inputTarget.OnTriggerReleased(eventInfo);
        }
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            Debug.Log("esc!");

            eventInfo.pressed = true; eventInfo.down = true;
            inputTarget.OnCancelPressed(eventInfo);
        }
    }
Exemplo n.º 5
0
    GameObject SpawnAtom(HandTrackedInfo info, AtomicTemplate template)
    {
        var atom = GameObject.Instantiate(atomPrefab.gameObject, info.transform.position, info.transform.rotation, transform);

        atom.transform.position = info.transform.position;
        atom.GetComponent <Atom>().SetAtomType(template);
        atom.transform.localScale = Vector3.one * template.radius * 0.1f;
        atom.GetComponent <Renderer>().material.color = template.color;
        atom.GetComponent <Rigidbody>().mass          = template.mass;
        return(atom);
    }
Exemplo n.º 6
0
 void SpawnAndEditAtom(HandTrackedInfo info)
 {
     if (drawnAtom == null && template != null)
     {
         atoms     = gameObject.GetComponentsInChildren <Atom>();
         drawnAtom = SpawnAtom(info, template);
         connectAtomToHandControllerJoint = drawnAtom.AddComponent <FixedJoint>();
         connectAtomToHandControllerJoint.connectedBody = info.rigidbody;
         newBonds.Clear();
     }
 }
Exemplo n.º 7
0
 public override void OnGripReleased(HandTrackedInfo info)
 {
     Debug.Log("RELEASED");
     if (info.direction == HandTrackedInfo.Direction.Left && leftPressed)
     {
         leftPressed = false;
     }
     else if (info.direction == HandTrackedInfo.Direction.Right && rightPressed)
     {
         rightPressed = false;
     }
     transformState = state;
 }
Exemplo n.º 8
0
    public override void OnTriggerReleased(HandTrackedInfo info)
    {
        if (drawnAtom != null)
        {
            drawnAtom = null;
            Object.DestroyImmediate(connectAtomToHandControllerJoint);
            connectAtomToHandControllerJoint = null;

            foreach (var bond in newBonds)
            {
                bond.CreateBondConstraints();
            }
            newBonds.Clear();
        }
    }
Exemplo n.º 9
0
 public override void OnGripPressed(HandTrackedInfo info)
 {
     Debug.Log("PRESSED");
     if (info.direction == HandTrackedInfo.Direction.Left && !leftPressed)
     {
         leftPressed    = true;
         initialLeftPos = info.transform.position;
         transformLeft  = info.transform;
     }
     else if (info.direction == HandTrackedInfo.Direction.Right && !rightPressed)
     {
         rightPressed    = true;
         initialRightPos = info.transform.position;
         transformRight  = info.transform;
     }
     if (leftPressed && rightPressed)
     {
         initialMidpoint = (initialLeftPos + initialRightPos) * 0.5f;
         initialDist     = Vector3.Distance(initialLeftPos, initialRightPos);
     }
     transformState = state;
 }
Exemplo n.º 10
0
 public override void OnCancelPressed(HandTrackedInfo info)
 {
     tryHandleMouseover(info);
     target?.OnCancelPressed(info);
 }
Exemplo n.º 11
0
 public override void OnTriggerReleased(HandTrackedInfo info)
 {
     tryHandleMouseover(info);
     target?.OnTriggerReleased(info);
 }
Exemplo n.º 12
0
    public override void OnTriggerPressed(HandTrackedInfo info)
    {
        switch (editMode)
        {
        case EditMode.Draw:
        {
            switch (focusType)
            {
            case FocusType.None:
            {
                SpawnAndEditAtom(info);
                break;
            }

            case FocusType.AtomicTemplate:
            {
                template = focusObject.GetComponent <AtomicTemplate>();
                SpawnAndEditAtom(info);
                break;
            }

            case FocusType.Atom:
            {
                drawnAtom = focusObject;
                connectAtomToHandControllerJoint = drawnAtom.AddComponent <FixedJoint>();
                connectAtomToHandControllerJoint.connectedBody = info.rigidbody;
                break;
            }

            case FocusType.Bond:
            {
                break;
            }
            }
        }
        break;

        case EditMode.AddBonds:
            switch (focusType)
            {
            case FocusType.None:
            {
                break;
            }

            case FocusType.AtomicTemplate:
            {
                break;
            }

            case FocusType.Atom:
            {
                startBoundsFrom = focusObject;
                break;
            }

            case FocusType.Bond:
            {
                break;
            }
            }
            break;

        case EditMode.Delete:
            switch (focusType)
            {
            case FocusType.None:
            {
                break;
            }

            case FocusType.AtomicTemplate:
            {
                template = focusObject.GetComponent <AtomicTemplate>();
                SpawnAndEditAtom(info);
                break;
            }

            case FocusType.Atom:
            {
                GameObject.DestroyImmediate(focusObject);
                break;
            }

            case FocusType.Bond:
            {
                GameObject.DestroyImmediate(focusObject);
                break;
            }
            }
            break;
        }
    }
Exemplo n.º 13
0
 public virtual void OnTriggerReleased(HandTrackedInfo info)
 {
 }
Exemplo n.º 14
0
 public virtual void OnGripReleased(HandTrackedInfo info)
 {
 }
Exemplo n.º 15
0
 public virtual void OnGripPressed(HandTrackedInfo info)
 {
 }
Exemplo n.º 16
0
 public virtual void OnCancelPressed(HandTrackedInfo info)
 {
 }
Exemplo n.º 17
0
 public override void OnGripReleased(HandTrackedInfo info)
 {
     tryHandleMouseover(info);
     target?.OnGripReleased(info);
     movement?.OnGripPressed(info);
 }
Exemplo n.º 18
0
 public virtual void OnTriggerPressed(HandTrackedInfo info)
 {
 }