/// <summary> /// Try to enter a nearby level. /// </summary> virtual protected void TryEnterLevel() { Collider2D[] hitColliders = Physics2D.OverlapCircleAll(transform.position, leeway); if (hitColliders.Length > 0) { foreach (Collider2D hit in hitColliders) { UILevelSelectTile currentTile = hit.GetComponent <UILevelSelectTile>(); if (currentTile != null && currentTile.AllowsEnter()) { currentTile.EnterLevel(); } } } }
/// <summary> /// Checks for tile underneath the character. /// </summary> /// <returns>The level select tile if found, or the tile the character is moving on.</returns> virtual protected bool TileAllowsMove(int x, int y) { Collider2D[] hitColliders = Physics2D.OverlapCircleAll(transform.position, leeway); if (hitColliders.Length > 0) { foreach (Collider2D hit in hitColliders) { UILevelSelectTile currentTile = hit.GetComponent <UILevelSelectTile>(); if (currentTile != null && currentTile.AllowsMove(x, y)) { // Snap to centre currentTile.Snap(this); return(true); } } } return(false); }