I have a scene with 6 lights that are turned on one at a time from a script, which means I can’t bake their light. To make sure this runs smoothly, I want to make sure these are vertex lights. I should note that this will be running on mobile devices. If I set the lights to “Not Important”, however, they stop functioning - the halo will still show, but the meshes near them won’t be lit. This is still true if I set the mesh material to the use “VertexLit” shader, and even if I use the “Vertex Lit” rendering path.
Now, here’s where it gets interesting: If I set the lights to use the “Auto” render mode, and in my quality settings allow for one pixel light, one of the six lights will work and be pixel lit, and the other 5 will also work but be vertex lit. If I set max pixel lights to 0, all six lights stop working.
You say this will be running on mobile devices but from the sound of it, your project is not an ios or android project, where I think you can’t use pixel lights at all if you’re not using opengl ES 2.0
I actually want to use vertex lights, not pixel lights. The thing is that the vertex lights seem to get turned off if you decrease the number of pixel lights. And this goes for all platforms, including PC and Mac, not just mobile devices.
I have a related issue; if I use dynamic vertex lights and lightmapping in the same scene, all dynamic lights stop having any effect on lightmapped objects as soon as I enable lightmapping. From what I read on Unity - Manual: Surface Shaders and rendering paths , I understand that the VertexLit shader should support lightmapping and dynamic vertex lights at the same time, but it will require an additional rendering pass. Is this not the case?
Well, this is the case even if I want to have just one dynamic light. And no, in this latter issue I have no pixel lights whatsoever, and all materials are set to VertexLit, as is the rendering path.
EDIT: To clarify, the camera is set to “Use Player Settings”, and in PlayerSettings I’ve specified VertexLit, so it’s using that.