The error 'unity not allowed to access uv4 on mesh' typically occurs when there is an attempt to access UV4 data from a mesh in Unity, but the mesh does not have UV4 data. Unity provides four channels of UV data (UV1, UV2, UV3, and UV4). Each one can hold separate texture coordinate data for various uses like diffuse maps, lightmaps, or other custom data.
However, not all meshes contain UV4 data. For instance, UV4 data is often excluded from low-poly models or models that do not require complex texturing. When you try to access this non-existent data, Unity returns the mentioned error.
There are a few possible solutions to resolve this issue:
Check if UV4 data is necessary: If UV4 data isn't required for your specific use case, consider removing the code that attempts to access it.
Add UV4 data to the mesh manually: If the model came from a 3D modeling software such as Blender or Maya, re-export the model with UV4 data enabled.
Generate UV4 data programmatically: If you need UV4 data for a procedural mesh, you will need to generate it through code in Unity. You can use the
Unwrapping.GenerateSecondaryUVSet function provided by Unity for generating additional UV sets.
Please ensure to always verify that the specific UV channel exists before trying to access it, to avoid potential runtime errors.