Halo hidden under the sprites


I am a Unity3D beginner and trying to create a 2D game. I have prepared a small test scene and decided to work a little bit on the visual effects for the player character and then a problem occured.

My player character game object has a Halo component (I have also checked with Light with halo turned on, the effect is the same regardless). Although the the Halo renders, it shows behind the sprites of other game objects in the scene. Manipulating the Sprite Renderer’s Sorting Layer and its order does not change anything (and I don’t think it should, since this is a renderer for the sprite) - every other object has its sorting layer set to “less visible” (the character sorting layer is “on top” of all of them, meaning it is on the end of the list of Sorting Layers).

So, is there any way to allow the order manipulation on the light rendering within a 2D scene? I have to mention, that I’ve tried custom scripting fix just like in Particle System rendering behind Sprites - Unity Answers but this way is considered obsolete by the Unity3D editor compiler.

Best regards!

Hi @Olhur , has a solution been found for this problem?

It seems the shader the Sprites - Default material uses causes this behaviour. Create your own material and set its rendering mode to Cutout and shader to standard. This will allow halos to show in front of your sprites.

I fixed this problem by creating new material for the sprite behind which the halo was hidding. The new material was:
Shader: Mobile/Particles/Alpha Blended,
Render Queue: AlphaTest - 2450
This material does not affect the quality of the sprite and makes the halo gameobject visible.
I am using Unity 2018.2.20f1.