//called from VRTK_ControllerEvents_UnityEvents on the RightControllerScriptAlias public void CheckValidToEdit() { //Check if pointer is active and pointing at a valid object if (pointer.isActiveAndEnabled && pointer.IsStateValid()) { currentSelected = pointer.pointerRenderer.GetDestinationHit().transform.GetComponentInChildren <Renderer>().gameObject; //changeObjectMaterial if currentSelected is a "MaterialCube" if (currentSelected.CompareTag("MaterialCube")) { ChangeMaterial(currentSelected.GetComponent <Renderer>().material); } //return if object isn't "Editable" if (!currentSelected.CompareTag("Editable")) { return; } //Determine whether the object is being selected or deselected if (currentSelected == lastSelected && currentSelected.GetComponent <VRTK_OutlineObjectCopyHighlighter>()) { DeselectObject(); } else { SelectObject(); } } }
public void CheckValidToGrab() { if (pointer.isActiveAndEnabled && pointer.IsStateValid()) { currentSelected = pointer.pointerRenderer.GetDestinationHit().transform.gameObject; PickUp(); } }
void checkPointer() { var go = Fsm.GetOwnerDefaultTarget(gameObject); if (go == null) { return; } validHit.Value = pointer.IsStateValid(); }
void InitEvent() { #region INTERACTION m_interTouch.ControllerTouchInteractableObject += (sender, e) => { if (m_touch_Audio) { m_touch_Audio.PlayOneShot(); } }; m_interGrab.ControllerGrabInteractableObject += (sender, e) => { if (m_grab_Audio) { m_grab_Audio.PlayOneShot(); } }; #endregion #region TELEPORT m_pointer.ActivationButtonPressed += (sender, e) => { if (!m_interGrab.GetGrabbedObject()) { m_teleport_Start.Play(); m_teleport_Loop.Play(); } }; m_pointer.ActivationButtonReleased += (sender, e) => { m_teleport_Loop.Pause(); if (m_pointer.IsStateValid()) { m_teleport_Go.Play(); } }; m_pointer.PointerStateValid += (sender, e) => { m_teleport_GoodPlace.Play(); }; m_pointer.PointerStateInvalid += (sender, e) => { m_teleport_BadPlace.Play(); }; #endregion }