Floors and walls are static objects, using a mobile diffuse shader.
Humanoid characters are dynamic objects.
Placing a real-time point light only affects dynamic objects. How do I solve this?
What happens when you move the light near a corner? It may be that the shader for some reason falls back to vertex lighting for you (I just tested on a laptop with integrated graphics and a PC with an NVidia GPU and on the laptop this happened as well, but not on the PC), so it can only illuminate areas around vertices, so for example, corners. As I don’t know why this happens I don’t know if it can be fixed in the sense that it doesn’t fall back to vertex lighting. I guess lightmaps are not an option? If this is the case, other than using a different shader or add vertices to your geometry to make it more dense, I don’t know what you could do to fix this, unfortunately.
I haven’t messed around with baked lighting in a long while but, as far as I recall, if you have baked light-maps then anything marked as “light-map static” will ignore dynamic lights. That’s one possibility. Check to see if you have any baked lighting data.
Yes, you are correct. The lightmap is baked and are those walls and floors are static. So there’s no way to affect realtime light on this case?
Static objects may receive lighting stored in lightmap and lighting from realtime lights.
Here is a guess about what happened in your project: You marked your light as mixed or baked. Then you baked lightmaps. Then you change the mode to Realtime without rebaking.
At this point is the light baked or is it not? On the one hand you do have light information from the light in the lightmaps (because it was marked as baked when you last baked) so you could argue that it is really a baked light. On the other hand, you have just set the mode to realtime so clearly the light is realtime (not baked). Both arguments make a decent point, I think.
So how does Unity resolve this? Unity will treat the light as baked if it was marked as baked the last time you rebaked lighting. Therefore, my guess is that Unity is still treating your light as baked even if you set the mode to realtime (based on the assumption that you haven’t rebaked since you changed the mode to realtime).
To resolve this, trying rebaking your lighting or clearing the baked lighting data.
Let me know if that works :).
Hmm. I shouldn’t have said anything. When I said “I haven’t messed around with baked lighting in a long while,” I just realized it may have been all the way back in Unity 4 when I made that observation. ![]()