void RemoveItemFromDesiredList(GameObject item) { ItemProperties properties = item.GetComponent <ItemProperties>(); if (properties == null || !desiredItems.Contains(item)) { return; } desiredItems.Remove(item); movement.RemoveTarget(item); properties.RemoveListener(ItemWasCollected); }