Platform Effector 2D ignores IsTouchingLayers

Hello everyone. First post here.

I just updated to Unity 5.1.1 from Unity 5.0 and I am creating a 2D platformer.

My main character uses this code to detect whether the player is grounded (to reset jumping):

public Collider2D groundCheckCollider;

void Update()
{
...
grounded = groundCheckCollider.IsTouchingLayers(LayerMask.GetMask("Ground", "Standon", "Pushables"));
...
}

groundCheckCollider is a Trigger BoxCollider2D set directly below the character.
This has been working great up until I updated to Unity 5.1.1.

I have been using one-way platforms using PlatformEffector2D. However, it seems with the recent changes to PlatformEffector2D, IsTouchingLayers keeps returning false for any collider using one-way platform effectors, even if the one-way platform is below the collider being checked.

Is anyone else having this issue? Can anyone think of a workaround? Currently I’ve added a Trigger Collider unaffected by the platform effector that’s identical in size to the platform collider, which works but isn’t ideal, as jumping through the platform without landing is causing the player to become grounded.

This is still relevant for me too 6 years later…

only thing related I could find was to use “.enable” to detect if other instance is disabled by a PlatformEffector2D:

https://forum.unity.com/threads/platform-effector-2d-triggers-oncollisionenter2d-should-it.333533/

or (what I ended up with)
to add && _playerRigidbody.velocity.y <= 0 so it checks for ground only when player is falling/stays at same y posiition

note: in this solution you would want to make sure that CollisionDetection is Continuous, so the speed won’t surprisingly become positive when hitting ground causing player to become ungrounded for one frame:
190612-screenshot-2022-01-01-031122.png

Still hope someone can shed some more light here or if anyone found a better solution for this issue… would love to know…

also another little note in case someone sees the code of Koth, would recommend to do LayerMask.GetMask("Ground", "Standon", "Pushables") once instead of on every Update