private bool CanChangeColor(GameColor newColor) { if (managed) { return(true); } _collider2DsBuffer = _collider2DsBuffer ?? new Collider2D[16]; _contactFilter2D.SetLayerMask(_colorsManager.GetLayerMask(newColor)); if (_collider2D == null) { Debug.Log("ColoredGameObject#canChangeColor " + gameObject.name); } int count = _collider2D.OverlapCollider(_contactFilter2D, _collider2DsBuffer); //Debug.Log("ColoredGameObject#canChangeColor " + gameObject.name + " -> Got " + count + " Collisions"); for (int i = 0; i < count; ++i) { Debug.Log("ColoredGameObject#canChangeColor " + gameObject.name + " -> Collision detected with " + _collider2DsBuffer[i].gameObject.name); } return(count == 0); }