void OnCollisionEnter(Collision collision)
    {
        if (!collision.gameObject.CompareTag(collisionTag) || Time.time - lastBiteTime < delayBetweenBites)
        {
            return;
        }

        Consumed?.Invoke();

        // Show the new mesh and play a sound.
        if (sfx)
        {
            AudioSource.PlayClipAtPoint(sfx, transform.position, volume);
        }
        if (destroy)
        {
            Destroy(destroy);
            if (activate)
            {
                activate.SetActive(true);
            }
        }
        else
        {
            if (destroyInTheEnd)
            {
                Destroy(gameObject);
            }
        }
        lastBiteTime = Time.time;
    }
Exemple #2
0
 protected virtual void OnConsumed(PawnConsumedEventArgs e)
 {
     Consumed?.Invoke(this, e);
 }
Exemple #3
0
 private void RaiseConsumed(TProduct product)
 {
     Consumed?.Invoke(this, new ConsumedEventArgs <TProduct>(product));
 }
Exemple #4
0
 private Task OnTriggered(T item, CancellationToken cancellationToken)
 {
     return(Consumed?.Invoke(this, new ProducerConsumerConsumedHandlerArgs <T>(item), cancellationToken) ?? Task.CompletedTask);
 }