void OnTriggerEnter2D(Collider2D collision) { IDropBox dropBox = (IDropBox)collision.gameObject.GetComponent(typeof(IDropBox)); if (dropBox != null) { onDropBox = dropBox; } else { onDropBox = null; } }
// Update is called once per frame void Update() { if (canDrag) { if (beingDragged) { Ray clickRay = Camera.main.ScreenPointToRay(Input.mousePosition); Vector3 pos = clickRay.GetPoint(8.0f); transform.position = pos; if (Input.GetMouseButtonUp(0)) { beingDragged = false; if (onDropBox != null && onDropBox.CanDrop) { onDropBox.DropCard(GetComponent <MoodCard>()); if (OnSpent != null) { OnSpent(this, new EventArgs()); } cardPlayedSound.Play(); canDrag = false; } else { cardResetSound.Play(); transform.position = startingPosition; } transform.localScale = inverseScale * transform.localScale; } } else { if (Input.GetMouseButtonDown(0)) { onDropBox = null; if (AttemptClickOrtho()) { beingDragged = true; startingPosition = transform.position; cardPickedUpSound.Play(); transform.localScale = scale * transform.localScale; if (OnPickedUp != null) { OnPickedUp(this, new EventArgs()); } } } } } }
void OnTriggerExit2D(Collider2D collision) { onDropBox = null; }