public CollisionTrigger(CollisionInteractable source, EInteractable tag, CollisionInteractable target, bool isLast, bool saveLastCollision) { Source = source; Tag = tag; IsLast = isLast; SaveLastCollision = saveLastCollision; }
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); }
public bool ContainsTag(EInteractable tag) { return(Tags.HasFlag(tag)); }