void UnPossess() { possessedItem.onBreak.RemoveListener(UnPossess); ghostObject.transform.position = possessedItem.transform.position; possessedItem = null; targetObject = null; moveComponent = ghostObject.GetComponent <MovementComponent>(); canPickupNewTarget = combo; EnableCollisionAndRender(true); }
void Possess(GameObject otherObj) { //SoundManager.PlayGhostSound(); targetObject = otherObj; possessedItem = otherObj.GetComponent <BreakableItem>(); moveComponent = otherObj.GetComponent <MovementComponent>(); possessedItem.onBreak.AddListener(UnPossess); EnableCollisionAndRender(false); }
private void OnTriggerEnter2D(Collider2D collision) { if (collision.CompareTag("Breakable")) { BreakableItem breakableItem = collision.GetComponent <BreakableItem>(); if (breakableItem != null) { breakableItem.BreakIt(); } } }
private void OnTriggerEnter(Collider other) { //Debug.Log(other.name + " - " + LayerMask.LayerToName(other.gameObject.layer)); if (other.gameObject.layer == LayerMask.NameToLayer("Breakable")) { BreakableItem breakable = other.gameObject.GetComponent <BreakableItem>(); if (breakable != null && PlayerStateMachine.Instance.isAttacking) { breakable.Break(); } } }