public override void OnGripPressed(HandTrackedInfo info) { Debug.Log("p"); tryHandleMouseover(info); target?.OnGripPressed(info); movement?.OnGripPressed(info); }
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;*/ }
public override void OnCancelPressed(HandTrackedInfo info) { if (drawnAtom != null) { GameObject.DestroyImmediate(drawnAtom); drawnAtom = null; connectAtomToHandControllerJoint = null; } }
// 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); } }
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); }
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(); } }
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; }
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(); } }
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; }
public override void OnCancelPressed(HandTrackedInfo info) { tryHandleMouseover(info); target?.OnCancelPressed(info); }
public override void OnTriggerReleased(HandTrackedInfo info) { tryHandleMouseover(info); target?.OnTriggerReleased(info); }
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; } }
public virtual void OnTriggerReleased(HandTrackedInfo info) { }
public virtual void OnGripReleased(HandTrackedInfo info) { }
public virtual void OnGripPressed(HandTrackedInfo info) { }
public virtual void OnCancelPressed(HandTrackedInfo info) { }
public override void OnGripReleased(HandTrackedInfo info) { tryHandleMouseover(info); target?.OnGripReleased(info); movement?.OnGripPressed(info); }
public virtual void OnTriggerPressed(HandTrackedInfo info) { }