Esempio n. 1
0
        protected virtual void CheckForTriggerAction(Collider other)
        {
            var _triggerAction = other.GetComponent <TriggerGenericAction>();

            if (!_triggerAction)
            {
                return;
            }

            var dist = Vector3.Distance(transform.forward, _triggerAction.transform.forward);

            if (!_triggerAction.activeFromForward || dist <= 0.8f)
            {
                triggerAction    = _triggerAction;
                canTriggerAction = true;
                triggerAction.OnPlayerEnter.Invoke();
            }
            else
            {
                if (triggerAction != null)
                {
                    triggerAction.OnPlayerExit.Invoke();
                }
                canTriggerAction = false;
            }
        }
Esempio n. 2
0
        public virtual void CollectItem(TriggerGenericAction action)
        {
            var collection = action.GetComponentInChildren <ItemCollection>();

            if (collection != null)
            {
                collection.CollectItems(this);
            }
        }
Esempio n. 3
0
        public virtual IEnumerator DestroyDelay(TriggerGenericAction triggerAction)
        {
            var _triggerAction = triggerAction;

            yield return(new WaitForSeconds(_triggerAction.destroyDelay));

            ResetPlayerSettings();
            Destroy(_triggerAction.gameObject);
        }
Esempio n. 4
0
    public virtual void CollectItem(TriggerGenericAction action)
    {
        var collection = action.GetComponentInChildren <ItemCollection>();

        if (collection != null)
        {
            if (collection.items.Count > 0)
            {
                var itemCol = collection.items.vCopy();
                StartCoroutine(CollectItemsWithDelay(itemCol, collection.onCollectDelay, collection.textDelay, collection.immediate));
            }
        }
    }