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; } }
public virtual void CollectItem(vTriggerGenericAction action) { var collection = action.GetComponentInChildren <vItemCollection>(); if (collection != null) { collection.CollectItems(this); } }
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(); } }
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)); } } }