public void Remove(bool reorder = true) { if (Removing) { logger.Log("Attempting to remove an object already being removed"); return; } Removing = true; UrbAgentManager.UnregisterAgent(this); CurrentTile?.OnAgentLeave(this, reorder); CurrentMap = null; if (TotalAgents > 0) { TotalAgents--; } if (Debug.developerConsoleVisible) { logger.Log(LogType.Log, "Remove entity, destroying game object", context: this); } Destroy(gameObject); }