//------------------------------------------------- public bool IsEligibleForTeleport(NVRHand hand) { if (hand == null) { return(false); } if (!hand.gameObject.activeInHierarchy) { return(false); } if (hand.CurrentlyInteracting != null) { AllowTeleportWhileAttachedToHand allowTeleportWhileAttachedToHand = hand.CurrentlyInteracting.GetComponent <AllowTeleportWhileAttachedToHand>(); if (allowTeleportWhileAttachedToHand != null && allowTeleportWhileAttachedToHand.teleportAllowed == true) { return(true); } else { return(false); } } return(true); }
// Token: 0x0600220B RID: 8715 RVA: 0x000A9304 File Offset: 0x000A7504 public bool IsEligibleForTeleport(Hand hand) { if (hand == null) { return(false); } if (!hand.gameObject.activeInHierarchy) { return(false); } if (hand.hoveringInteractable != null) { return(false); } if (hand.noSteamVRFallbackCamera == null) { if (hand.controller == null) { return(false); } if (hand.currentAttachedObject != null) { AllowTeleportWhileAttachedToHand component = hand.currentAttachedObject.GetComponent <AllowTeleportWhileAttachedToHand>(); return(component != null && component.teleportAllowed); } } return(true); }
//------------------------------------------------- private void ShowPointer(NVRHand newPointerHand, NVRHand oldPointerHand) { if (!visible) { pointedAtTeleportMarker = null; pointerShowStartTime = Time.time; visible = true; meshFading = true; teleportPointerObject.SetActive(false); teleportArc.Show(); foreach (TeleportMarkerBase teleportMarker in teleportMarkers) { if (teleportMarker.markerActive && teleportMarker.ShouldActivate(FeetPositionEstimate())) { teleportMarker.gameObject.SetActive(true); teleportMarker.Highlight(false); } } startingFeetOffset = player.transform.position - FeetPositionEstimate(); movedFeetFarEnough = false; if (onDeactivateObjectTransform.gameObject.activeSelf) { onDeactivateObjectTransform.gameObject.SetActive(false); } onActivateObjectTransform.gameObject.SetActive(true); loopingAudioSource.clip = pointerLoopSound; loopingAudioSource.loop = true; loopingAudioSource.Play(); loopingAudioSource.volume = 0.0f; } pointerHand = newPointerHand; if (visible && oldPointerHand != pointerHand) { PlayAudioClip(pointerAudioSource, pointerStartSound); } if (pointerHand) { pointerStartTransform = pointerHand.transform; if (pointerHand.CurrentlyInteracting != null) { allowTeleportWhileAttached = pointerHand.CurrentlyInteracting.GetComponent <AllowTeleportWhileAttachedToHand>(); } pointerAudioSource.transform.SetParent(pointerStartTransform); pointerAudioSource.transform.localPosition = Vector3.zero; loopingAudioSource.transform.SetParent(pointerStartTransform); loopingAudioSource.transform.localPosition = Vector3.zero; } }
//------------------------------------------------- private void Awake() { allowTeleport = GetComponent <AllowTeleportWhileAttachedToHand>(); allowTeleport.teleportAllowed = true; allowTeleport.overrideHoverLock = false; arrowList = new List <GameObject>(); }
//------------------------------------------------- void Awake() { allowTeleport = GetComponent <AllowTeleportWhileAttachedToHand>(); //allowTeleport.teleportAllowed = true; allowTeleport.overrideHoverLock = false; arrowList = new List <GameObject>(); comboChecker = GameObject.Find("ComboCheck").GetComponent <Combo>(); }
//------------------------------------------------- public bool IsEligibleForTeleport(Hand hand) { if (hand == null) { return(false); } if (!hand.gameObject.activeInHierarchy) { return(false); } if (hand.currentAttachedObject != null) { if (hand.currentAttachedObject.GetComponent <BoxingGloves>()) { return(true); } } if (hand.hoveringInteractable != null) { return(false); } if (hand.noSteamVRFallbackCamera == null) { if (hand.controller == null) { return(false); } //Something is attached to the hand if (hand.currentAttachedObject != null) { AllowTeleportWhileAttachedToHand allowTeleportWhileAttachedToHand = hand.currentAttachedObject.GetComponent <AllowTeleportWhileAttachedToHand>(); if (allowTeleportWhileAttachedToHand != null && allowTeleportWhileAttachedToHand.teleportAllowed == true) { return(true); } else { return(false); } } } if (!hand.canTeleport) { return(false); } return(true); }
//------------------------------------------------- void Awake() { allowTeleport = GetComponent <AllowTeleportWhileAttachedToHand>(); allowTeleport.teleportAllowed = false; allowTeleport.overrideHoverLock = false; quiver = GameObject.Find("Quiver (Neck)"); quiverSelection = GameObject.Find("Quiver Selection"); quiverEnable = GameObject.Find("Enable/Disable"); noQuiver = false; arrowList = new List <GameObject>(); }
//------------------------------------------------- public bool IsEligibleForTeleport(Hand hand) { if (hand == null) { return(false); } if (!hand.gameObject.activeInHierarchy) { return(false); } if (hand.hoveringInteractable != null) { return(false); } //Only allow the player //if (hand.startingHandType == InteractionManager.Instance.paintHand) //{ // return false; //} if (hand.noSteamVRFallbackCamera == null) { if (hand.controller == null) { return(false); } //Something is attached to the hand if (hand.currentAttachedObject != null) { AllowTeleportWhileAttachedToHand allowTeleportWhileAttachedToHand = hand.currentAttachedObject.GetComponent <AllowTeleportWhileAttachedToHand>(); if (allowTeleportWhileAttachedToHand != null && allowTeleportWhileAttachedToHand.teleportAllowed == true) { return(true); } else { return(false); } } } return(true); }
bool IsEligibleForTeleport(Hand hand) { if (hand == null) { return(false); } if (hand.hoveringInteractable != null) { return(false); } if (!hand.isActive) { return(false); } //Something is attached to the hand if (hand.currentAttachedObject != null) { AllowTeleportWhileAttachedToHand allowTeleportWhileAttachedToHand = hand.currentAttachedObject.GetComponent <AllowTeleportWhileAttachedToHand>(); return(allowTeleportWhileAttachedToHand != null && allowTeleportWhileAttachedToHand.teleportAllowed == true); } return(true); }
void ShowPointer( ) { current_teleport_marker = null; pointerShowStartTime = Time.time; visible = true; meshFading = true; teleportPointerObject.SetActive(false); teleportArc.Show(); pointerAudioSource.PlayClip(pointerStartSound); for (int i = 0; i < teleportMarkers.Length; i++) { if (teleportMarkers[i].markerActive && Vector3.Distance(teleportMarkers[i].transform.position, player.feetPositionGuess) > 1.0f) { teleportMarkers[i].gameObject.SetActive(true); teleportMarkers[i].Highlight(false); } } if (player.rightHand.currentAttachedObject != null) { allowTeleportWhileAttached = player.rightHand.currentAttachedObject.GetComponent <AllowTeleportWhileAttachedToHand>(); } //Keep track of any existing hovering interactable on the hand originalHoverLockState = player.rightHand.hoverLocked; originalHoveringInteractable = player.rightHand.hoveringInteractable; if (ShouldOverrideHoverLock()) { player.rightHand.HoverLock(null); } pointerAudioSource.transform.SetParent(player.rightHand.transform); pointerAudioSource.transform.localPosition = Vector3.zero; }
//------------------------------------------------- private void ShowPointer(Hand newPointerHand, Hand oldPointerHand) { if (!visible) { pointedAtTeleportMarker = null; pointerShowStartTime = Time.time; visible = true; meshFading = true; teleportPointerObject.SetActive(false); teleportArc.Show(); foreach (TeleportMarkerBase teleportMarker in teleportMarkers) { if (teleportMarker.markerActive && teleportMarker.ShouldActivate(player.feetPositionGuess)) { teleportMarker.gameObject.SetActive(true); teleportMarker.Highlight(false); } } startingFeetOffset = player.trackingOriginTransform.position - player.feetPositionGuess; movedFeetFarEnough = false; if (onDeactivateObjectTransform.gameObject.activeSelf) { onDeactivateObjectTransform.gameObject.SetActive(false); } onActivateObjectTransform.gameObject.SetActive(true); loopingAudioSource.clip = pointerLoopSound; loopingAudioSource.loop = true; loopingAudioSource.Play(); loopingAudioSource.volume = 0.0f; } if (oldPointerHand) { if (ShouldOverrideHoverLock()) { //Restore the original hovering interactable on the hand if (originalHoverLockState == true) { oldPointerHand.HoverLock(originalHoveringInteractable); } else { oldPointerHand.HoverUnlock(null); } } } pointerHand = newPointerHand; if (visible && oldPointerHand != pointerHand) { PlayAudioClip(pointerAudioSource, pointerStartSound); } if (pointerHand) { pointerStartTransform = GetPointerStartTransform(pointerHand); if (pointerHand.currentAttachedObject != null) { allowTeleportWhileAttached = pointerHand.currentAttachedObject.GetComponent <AllowTeleportWhileAttachedToHand>(); } //Keep track of any existing hovering interactable on the hand originalHoverLockState = pointerHand.hoverLocked; originalHoveringInteractable = pointerHand.hoveringInteractable; if (ShouldOverrideHoverLock()) { pointerHand.HoverLock(null); } pointerAudioSource.transform.SetParent(pointerStartTransform); pointerAudioSource.transform.localPosition = Vector3.zero; loopingAudioSource.transform.SetParent(pointerStartTransform); loopingAudioSource.transform.localPosition = Vector3.zero; } }
//------------------------------------------------- public void ShowTeleportHint() { CancelTeleportHint(); /* custom changes by Mars Motion */ if (gameObject.activeSelf) { /**/ hintCoroutine = StartCoroutine(TeleportHintCoroutine()); /* custom changes by Mars Motion */ } /**/ } //------------------------------------------------- public void CancelTeleportHint() { if (hintCoroutine != null) { foreach (Hand hand in player.hands) { ControllerButtonHints.HideTextHint(hand, EVRButtonId.k_EButton_SteamVR_Touchpad); } StopCoroutine(hintCoroutine); hintCoroutine = null; } CancelInvoke("ShowTeleportHint"); } //------------------------------------------------- private IEnumerator TeleportHintCoroutine() { float prevBreakTime = Time.time; float prevHapticPulseTime = Time.time; while (true) { bool pulsed = false; //Show the hint on each eligible hand foreach (Hand hand in player.hands) { bool showHint = IsEligibleForTeleport(hand); bool isShowingHint = !string.IsNullOrEmpty(ControllerButtonHints.GetActiveHintText(hand, EVRButtonId.k_EButton_SteamVR_Touchpad)); if (showHint) { if (!isShowingHint) { ControllerButtonHints.ShowTextHint(hand, EVRButtonId.k_EButton_SteamVR_Touchpad, "Teleport"); prevBreakTime = Time.time; prevHapticPulseTime = Time.time; } if (Time.time > prevHapticPulseTime + 0.05f) { //Haptic pulse for a few seconds pulsed = true; hand.controller.TriggerHapticPulse(500); } } else if (!showHint && isShowingHint) { ControllerButtonHints.HideTextHint(hand, EVRButtonId.k_EButton_SteamVR_Touchpad); } } if (Time.time > prevBreakTime + 3.0f) { //Take a break for a few seconds yield return(new WaitForSeconds(3.0f)); prevBreakTime = Time.time; } if (pulsed) { prevHapticPulseTime = Time.time; } yield return(null); } } //------------------------------------------------- public bool IsEligibleForTeleport(Hand hand) { /* custom changes by Mars Motion */ Hand.HandType handType = hand.GuessCurrentHandType(); if (handType == Hand.HandType.Left) { if (!Teleporter.left || !Teleporter.left.enabled || !Teleporter.left.gameObject || !Teleporter.left.gameObject.activeSelf || !Teleporter.left.locomotionDependencies.areMet()) { return(false); } } else { if (!Teleporter.right || !Teleporter.right.enabled || !Teleporter.right.gameObject || !Teleporter.right.gameObject.activeSelf || !Teleporter.right.locomotionDependencies.areMet()) { return(false); } } if (!Teleportation.enabledLocomotion()) { return(false); } /**/ if (hand == null) { return(false); } if (!hand.gameObject.activeInHierarchy) { return(false); } if (hand.hoveringInteractable != null) { return(false); } if (hand.noSteamVRFallbackCamera == null) { if (hand.controller == null) { return(false); } //Something is attached to the hand if (hand.currentAttachedObject != null) { AllowTeleportWhileAttachedToHand allowTeleportWhileAttachedToHand = hand.currentAttachedObject.GetComponent <AllowTeleportWhileAttachedToHand>(); if (allowTeleportWhileAttachedToHand != null && allowTeleportWhileAttachedToHand.teleportAllowed == true) { return(true); } else { return(false); } } } return(true); }
//------------------------------------------------- private void ShowPointer(Hand newPointerHand, Hand oldPointerHand) { if (!visible) { pointedAtTeleportMarker = null; pointerShowStartTime = Time.time; visible = true; meshFading = true; teleportPointerObject.SetActive(false); teleportArc.Show(); //MJ20170525 Never disabling teleportPoints for them to be able to detect collision with vision foreach (TeleportMarkerBase teleportMarker in teleportMarkers) { if (teleportMarker.markerActive && teleportMarker.ShouldActivate(player.feetPositionGuess)) { //teleportMarker.gameObject.SetActive( true ); teleportMarker.Highlight(false); // //MJ20170526 Necessary not to have alpha back to maximum temporarily --------------- // individualFullTintAlpha = teleportMarker.gameObject.transform.Find ("teleport_marker_mesh").GetComponent<TeleportVisionController> ().fullTintAlpha; // individualMeshAlphaPercent = teleportMarker.gameObject.transform.Find ("teleport_marker_mesh").GetComponent<TeleportVisionController> ().meshAlphaPercent; // teleportMarker.SetAlpha( individualFullTintAlpha * individualMeshAlphaPercent, individualMeshAlphaPercent ); } } startingFeetOffset = player.trackingOriginTransform.position - player.feetPositionGuess; movedFeetFarEnough = false; if (onDeactivateObjectTransform.gameObject.activeSelf) { onDeactivateObjectTransform.gameObject.SetActive(false); } onActivateObjectTransform.gameObject.SetActive(true); loopingAudioSource.clip = pointerLoopSound; loopingAudioSource.loop = true; loopingAudioSource.Play(); loopingAudioSource.volume = 0.0f; } if (oldPointerHand) { if (ShouldOverrideHoverLock()) { //Restore the original hovering interactable on the hand if (originalHoverLockState == true) { oldPointerHand.HoverLock(originalHoveringInteractable); } else { oldPointerHand.HoverUnlock(null); } } } pointerHand = newPointerHand; if (visible && oldPointerHand != pointerHand) { PlayAudioClip(pointerAudioSource, pointerStartSound); } if (pointerHand) { pointerStartTransform = GetPointerStartTransform(pointerHand); if (pointerHand.currentAttachedObject != null) { allowTeleportWhileAttached = pointerHand.currentAttachedObject.GetComponent <AllowTeleportWhileAttachedToHand>(); } //Keep track of any existing hovering interactable on the hand originalHoverLockState = pointerHand.hoverLocked; originalHoveringInteractable = pointerHand.hoveringInteractable; if (ShouldOverrideHoverLock()) { pointerHand.HoverLock(null); } pointerAudioSource.transform.SetParent(pointerStartTransform); pointerAudioSource.transform.localPosition = Vector3.zero; loopingAudioSource.transform.SetParent(pointerStartTransform); loopingAudioSource.transform.localPosition = Vector3.zero; } }