void Start() { model.cards.ObserveCountChanged() .DistinctUntilChanged() .SubscribeToText(view.trashCounter); var trigger = gameObject.AddComponent <ObservableEventTrigger>(); trigger.OnDropAsObservable() .Where(_ => GameManager.Instance.isDiscarding) .Subscribe(e => { Debug.Log("Trash OnDrop"); CardMovement card = e.pointerDrag.GetComponent <CardMovement>(); if (card != null) { card.parentAfterDrag = this.transform; card.positionAfterDrag = this.transform.position + hiddenOffset; CardController discardedCard = card.GetComponent <CardController>(); model.cards.Add(discardedCard); hand.DiscardForCosts(discardedCard); } }); }