示例#1
0
        protected virtual void CheckForTriggerAction(Collider other)
        {
            var _triggerAction = other.GetComponent <vTriggerGenericAction>();

            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;
            }
        }
示例#2
0
        public virtual void CollectItem(vTriggerGenericAction action)
        {
            var collection = action.GetComponentInChildren <vItemCollection>();

            if (collection != null)
            {
                collection.CollectItems(this);
            }
        }
示例#3
0
        public virtual IEnumerator DestroyDelay(vTriggerGenericAction triggerAction)
        {
            var _triggerAction = triggerAction;

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

            ResetPlayerSettings();
            Destroy(_triggerAction.gameObject);
        }
    public void TriggerEvent(vTriggerGenericAction action)
    {
        var _action = actionFinders.Find(a => a.actionName.Equals(action.gameObject.name));

        if (_action != null)
        {
            _action.onTriggerEvent.Invoke();
        }
    }
示例#5
0
        public virtual void CollectItem(vTriggerGenericAction action)
        {
            var collection = action.GetComponentInChildren <vItemCollection>();

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