protected virtual void Awake() { DragEvent = new PointerUnityEvent(); PointerUpEvent = new PointerUnityEvent(); PointerDownEvent = new PointerUnityEvent(); UsableImage = gameObject.GetComponent <Image>(); UsableCanvasGroup = UsableImage.gameObject.GetComponent <CanvasGroup>(); ButtonComponent = UsableImage.gameObject.GetComponent <Button>(); Container = GetComponentInParent <UsableContainer>(); }
public void AssignEquipmentContainer(UsableContainer container) { if (container != null) { _container = container; GetComponent <SpriteRenderer>().enabled = false; _container.UsableField.PointerUpEvent.AddListener(OnClickUpInEquipment); _container.UsableField.DragEvent.AddListener(OnClickHoldInEquipment); _container.UsableField.PointerDownEvent.AddListener(OnClickDownInEquipment); } else if (_container != null) { _container.UsableField.PointerUpEvent.RemoveListener(OnClickUpInEquipment); _container.UsableField.DragEvent.RemoveListener(OnClickHoldInEquipment); _container.UsableField.PointerDownEvent.RemoveListener(OnClickDownInEquipment); _container = null; } }
private IEnumerator AddObjectToPoolCoroutine(PickableUsableObject obj, float lagSeconds) { yield return(new WaitForSeconds(lagSeconds)); UsableContainer container = null; for (int i = 0; i < _usableContainers.Length; ++i) { container = _usableContainers[i]; if (container.IsFree) { break; } } obj.AssignEquipmentContainer(container); container.AssignEquipmentUsable(obj); _usableList.Add(obj); yield return(null); }