void OnTriggerEnter2D(Collider2D other) { bool dispatchOnEnter = false; CharacterController2D turtleController2D = other.GetComponent <CharacterController2D>(); if (turtleController2D && Turtle) { if (Item) { var inventory = turtleController2D.GetComponent <Inventory>(); if (inventory != null && inventory.Contains(ItemId)) { dispatchOnEnter = true; } } else { dispatchOnEnter = true; } } ShellController shellController = other.GetComponent <ShellController>(); if (shellController && Shell) { dispatchOnEnter = true; } if (dispatchOnEnter) { ExecuteOnEnter(other); } }
void OnTriggerExit2D(Collider2D other) { bool shouldExit = false; CharacterController2D turtleController2D = other.GetComponent <CharacterController2D>(); if (turtleController2D && Turtle) { if (Item) { var inventory = turtleController2D.GetComponent <Inventory>(); if (inventory != null && inventory.Contains(ItemId)) { shouldExit = true; } } else { shouldExit = true; } shouldExit = true; } ShellController shellController = other.GetComponent <ShellController>(); if (shellController && Shell) { shouldExit = true; } if (shouldExit) { ExecuteOnExit(other); } }