/// <summary>
        /// The ValidLocation method determines if the given target is a location that can be teleported to
        /// </summary>
        /// <param name="target">The Transform that the destination marker is touching.</param>
        /// <param name="destinationPosition">The position in world space that is the destination.</param>
        /// <returns>Returns `true` if the target is a valid location.</returns>
        public virtual bool ValidLocation(Transform target, Vector3 destinationPosition)
        {
            //If the target is one of the player objects or a UI Canvas then it's never a valid location
            if (VRTK_PlayerObject.IsPlayerObject(target.gameObject) || target.GetComponent <VRTK_UIGraphicRaycaster>())
            {
                return(false);
            }

            bool validNavMeshLocation = false;

            if (navMeshData != null)
            {
                if (target != null)
                {
                    NavMeshHit hit;
                    validNavMeshLocation = NavMesh.SamplePosition(destinationPosition, out hit, navMeshData.distanceLimit, navMeshData.validAreas);
                }
            }
            else
            {
                validNavMeshLocation = true;
            }

            return(validNavMeshLocation && target != null && !(VRTK_PolicyList.Check(target.gameObject, targetListPolicy)));
        }
Esempio n. 2
0
        protected virtual bool ValidDestination()
        {
            if (destinationHit.collider == null)
            {
                return(false);
            }

            bool validNavMeshLocation = false;

            if (navMeshData != null)
            {
                if (destinationHit.transform != null)
                {
                    NavMeshHit hit;
                    validNavMeshLocation = NavMesh.SamplePosition(destinationHit.point, out hit, navMeshData.distanceLimit, navMeshData.validAreas);
                }
            }
            else
            {
                validNavMeshLocation = true;
            }

            if (teleporter)
            {
                validNavMeshLocation = teleporter.ValidLocation(destinationHit.collider.transform, destinationHit.point);
            }

            return(validNavMeshLocation && !(VRTK_PolicyList.Check(destinationHit.collider.gameObject, invalidListPolicy)));
        }
Esempio n. 3
0
 protected virtual void StartCollision(GameObject target)
 {
     if (!VRTK_PolicyList.Check(target, targetListPolicy))
     {
         isColliding = true;
         if (!hasCollided && collideTimer <= 0f)
         {
             hasCollided  = true;
             collideTimer = rewindDelay;
         }
     }
 }
Esempio n. 4
0
 protected virtual bool ValidDestination()
 {
     bool validNavMeshLocation = false;
     if (destinationHit.transform != null)
     {
         NavMeshHit hit;
         validNavMeshLocation = NavMesh.SamplePosition(destinationHit.point, out hit, navMeshCheckDistance, NavMesh.AllAreas);
     }
     if (navMeshCheckDistance == 0f)
     {
         validNavMeshLocation = true;
     }
     return (validNavMeshLocation && destinationHit.collider != null && !(VRTK_PolicyList.Check(destinationHit.collider.gameObject, invalidListPolicy)));
 }
Esempio n. 5
0
        // Token: 0x06001895 RID: 6293 RVA: 0x000829E0 File Offset: 0x00080BE0
        protected virtual bool ValidDestination()
        {
            bool flag = false;

            if (this.destinationHit.transform != null)
            {
                NavMeshHit navMeshHit;
                flag = NavMesh.SamplePosition(this.destinationHit.point, out navMeshHit, this.navMeshCheckDistance, -1);
            }
            if (this.navMeshCheckDistance == 0f)
            {
                flag = true;
            }
            return(flag && this.destinationHit.collider != null && !VRTK_PolicyList.Check(this.destinationHit.collider.gameObject, this.invalidListPolicy));
        }
        protected virtual bool ValidDestination()
        {
            bool validNavMeshLocation = false;

            if (destinationHit.transform)
            {
                UnityEngine.AI.NavMeshHit hit;
                validNavMeshLocation = UnityEngine.AI.NavMesh.SamplePosition(destinationHit.point, out hit, navMeshCheckDistance, UnityEngine.AI.NavMesh.AllAreas);
            }
            if (navMeshCheckDistance == 0f)
            {
                validNavMeshLocation = true;
            }
            return(validNavMeshLocation && destinationHit.transform && !(VRTK_PolicyList.Check(destinationHit.transform.gameObject, invalidListPolicy)));
        }
Esempio n. 7
0
        protected virtual bool ValidDestination(Transform target, Vector3 destinationPosition)
        {
            bool validNavMeshLocation = false;

            if (target)
            {
                NavMeshHit hit;
                validNavMeshLocation = NavMesh.SamplePosition(destinationPosition, out hit, navMeshCheckDistance, NavMesh.AllAreas);
            }
            if (navMeshCheckDistance == 0f)
            {
                validNavMeshLocation = true;
            }
            return(validNavMeshLocation && target && !(VRTK_PolicyList.Check(target.gameObject, invalidListPolicy)));
        }
Esempio n. 8
0
        // Token: 0x060018E4 RID: 6372 RVA: 0x00084BBC File Offset: 0x00082DBC
        protected virtual bool ValidDestination(Transform target, Vector3 destinationPosition)
        {
            bool flag = false;

            if (target)
            {
                NavMeshHit navMeshHit;
                flag = NavMesh.SamplePosition(destinationPosition, out navMeshHit, this.navMeshCheckDistance, -1);
            }
            if (this.navMeshCheckDistance == 0f)
            {
                flag = true;
            }
            return(flag && target && !VRTK_PolicyList.Check(target.gameObject, this.targetListPolicy));
        }
Esempio n. 9
0
 // Token: 0x06001A85 RID: 6789 RVA: 0x0008BF7C File Offset: 0x0008A17C
 protected virtual void StartCollision(GameObject target, Collider collider)
 {
     if (this.ignoreTriggerColliders && collider.isTrigger)
     {
         return;
     }
     if (!VRTK_PolicyList.Check(target, this.targetListPolicy))
     {
         this.isColliding = true;
         if (!this.hasCollided && this.collideTimer <= 0f)
         {
             this.hasCollided  = true;
             this.collideTimer = this.rewindDelay;
         }
     }
 }
Esempio n. 10
0
        protected virtual bool ValidDestination()
        {
            bool validNavMeshLocation = false;

            if (navMeshData != null)
            {
                if (destinationHit.transform != null)
                {
                    UnityEngine.AI.NavMeshHit hit;
                    validNavMeshLocation = UnityEngine.AI.NavMesh.SamplePosition(destinationHit.point, out hit, navMeshData.distanceLimit, navMeshData.validAreas);
                }
            }
            else
            {
                validNavMeshLocation = true;
            }
            return(validNavMeshLocation && destinationHit.collider != null && !(VRTK_PolicyList.Check(destinationHit.collider.gameObject, invalidListPolicy)));
        }
Esempio n. 11
0
        // Token: 0x06001202 RID: 4610 RVA: 0x00067C08 File Offset: 0x00065E08
        protected virtual PhotonObjectInteract ValidSnapObject(GameObject checkObject, bool grabState, bool checkGrabState = true)
        {
            PhotonObjectInteract component = checkObject.GetComponent <PhotonObjectInteract>();

            if (component == null)
            {
                return(null);
            }
            if (VRTK_PolicyList.Check(component.gameObject, this.validObjectListPolicy))
            {
                return(null);
            }
            if (component.view == null)
            {
                return(null);
            }
            if (component.isFixedItem || !component.isProp)
            {
                return(null);
            }
            if (!this.isHeadCamDropZone && component.GetComponent <CCTV>() && component.GetComponent <CCTV>().isHeadCamera)
            {
                return(null);
            }
            if (component.GetComponent <Tripod>())
            {
                return(null);
            }
            if (component.isGrabbed != grabState)
            {
                return(null);
            }
            if (!component.view.isMine)
            {
                return(null);
            }
            return(component);
        }
Esempio n. 12
0
 // Token: 0x06001943 RID: 6467 RVA: 0x00086E0A File Offset: 0x0008500A
 protected virtual bool ValidTarget(Collider collider)
 {
     return(!VRTK_PlayerObject.IsPlayerObject(collider.gameObject, VRTK_PlayerObject.ObjectTypes.Null) && !VRTK_PolicyList.Check(collider.gameObject, this.targetListPolicy));
 }
Esempio n. 13
0
 protected virtual bool ValidTarget(Transform target)
 {
     return(target != null && !(VRTK_PolicyList.Check(target.gameObject, targetListPolicy)));
 }
 protected virtual bool ValidSnapObject(VRTK_InteractableObject interactableObjectCheck, bool grabState, bool checkGrabState = true)
 {
     return(interactableObjectCheck != null && (!checkGrabState || interactableObjectCheck.IsGrabbed() == grabState) && !VRTK_PolicyList.Check(interactableObjectCheck.gameObject, validObjectListPolicy));
 }
 protected virtual VRTK_InteractableObject ValidSnapObject(GameObject checkObject, bool grabState, bool checkGrabState = true)
 {
     if (cachedCheckObject == null || checkObject != cachedCheckObject.gameObject)
     {
         cachedCheckObject = checkObject.GetComponentInParent <VRTK_InteractableObject>();
     }
     return(cachedCheckObject != null && (!checkGrabState || cachedCheckObject.IsGrabbed() == grabState) && !VRTK_PolicyList.Check(cachedCheckObject.gameObject, validObjectListPolicy) ? cachedCheckObject : null);
 }
Esempio n. 16
0
        private VRTK_InteractableObject ValidSnapObject(GameObject checkObject, bool grabState)
        {
            var ioCheck = checkObject.GetComponentInParent <VRTK_InteractableObject>();

            return(ioCheck && ioCheck.IsGrabbed() == grabState && !VRTK_PolicyList.Check(checkObject, validObjectListPolicy) ? ioCheck : null);
        }
Esempio n. 17
0
 // Token: 0x0600179A RID: 6042 RVA: 0x0007E4D0 File Offset: 0x0007C6D0
 public virtual bool ValidLocation(Transform target, Vector3 destinationPosition)
 {
     return(!VRTK_PlayerObject.IsPlayerObject(target.gameObject, VRTK_PlayerObject.ObjectTypes.Null) && !target.GetComponent <VRTK_UIGraphicRaycaster>() && !Physics.Linecast(this.player.headObject.transform.position, destinationPosition + new Vector3(0f, 0.2f, 0f), this.player.mainLayerMask, QueryTriggerInteraction.Ignore) && target != null && !VRTK_PolicyList.Check(target.gameObject, this.targetListPolicy));
 }
 private bool ValidTarget(Transform target)
 {
     return(target && !(VRTK_PolicyList.Check(target.gameObject, targetListPolicy)));
 }
Esempio n. 19
0
 protected virtual bool ValidTarget(Collider collider)
 {
     return(!VRTK_PlayerObject.IsPlayerObject(collider.gameObject) && !(VRTK_PolicyList.Check(collider.gameObject, targetListPolicy)));
 }
Esempio n. 20
0
        protected virtual VRTK_InteractableObject ValidSnapObject(GameObject checkObject, bool grabState, bool checkGrabState = true)
        {
            var ioCheck = checkObject.GetComponentInParent <VRTK_InteractableObject>();

            return(ioCheck != null && (!checkGrabState || ioCheck.IsGrabbed() == grabState) && !VRTK_PolicyList.Check(ioCheck.gameObject, validObjectListPolicy) ? ioCheck : null);
        }