Esempio n. 1
0
 public CollisionTrigger(CollisionInteractable source, EInteractable tag, CollisionInteractable target, bool isLast, bool saveLastCollision)
 {
     Source            = source;
     Tag               = tag;
     IsLast            = isLast;
     SaveLastCollision = saveLastCollision;
 }
Esempio n. 2
0
 public RaycastTrigger(Transform source, EInteractable tag, float maxDistance, float offset)
 {
     Source      = source;
     Tag         = tag;
     MaxDistance = maxDistance;
     Offset      = offset;
 }
        /// <summary>
        /// Gets a CollisionInteractable by specified tag.
        /// </summary>
        /// <param name="tag">The target CollisionInteractable tag.</param>
        /// <param name="isLast">If the target CollisionInteractable must be the last collision.</param>
        /// <returns>
        /// The collided CollisionInteractable or null if the conditions are not met.
        /// </returns>
        public CollisionInteractable CollisionWith(EInteractable tag, bool isLast)
        {
            if (isLast)
            {
                if (_collisionInteractables.Count == 0)
                {
                    return(null);
                }

                CollisionInteractable collisionInteractable =
                    _collisionInteractables[_collisionInteractables.Count - 1].transform.GetComponent <CollisionInteractable>();

                return(collisionInteractable.ContainsTag(tag)
                    ? _collisionInteractables[_collisionInteractables.Count - 1]
                    : null);
            }

            foreach (var collisionInteractable in _collisionInteractables)
            {
                if (collisionInteractable != null && collisionInteractable.ContainsTag(tag))
                {
                    return(collisionInteractable);
                }
            }

            return(null);
        }
Esempio n. 4
0
 public bool ContainsTag(EInteractable tag)
 {
     return(Tags.HasFlag(tag));
 }