private void OnFlaskTouch(Flask flask) { if (takenBall == null) { if (flask.TryTake(out takenBall)) { ActiveCollider(); takenBall.Arrived.AddListener(ActiveCollider); } } else if (flask.TryPut(takenBall)) { ActiveCollider(); takenBall.Arrived.AddListener(() => { takenBall.Arrived.RemoveAllListeners(); takenBall = null; CheckWin(); }); } }