Skip to content

Instantly share code, notes, and snippets.

@Angeart
Last active March 12, 2022 16:57
Show Gist options
  • Select an option

  • Save Angeart/4e56bb6303e7da932b3c6a5b915f5b05 to your computer and use it in GitHub Desktop.

Select an option

Save Angeart/4e56bb6303e7da932b3c6a5b915f5b05 to your computer and use it in GitHub Desktop.
Spline Mesh UV Path
diff --git a/Assets/SplineMesh/Scripts/MeshProcessing/MeshBender.cs b/Assets/SplineMesh/Scripts/MeshProcessing/MeshBender.cs
index bb623b1..dbc6ef9 100644
--- a/Assets/SplineMesh/Scripts/MeshProcessing/MeshBender.cs
+++ b/Assets/SplineMesh/Scripts/MeshProcessing/MeshBender.cs
@@ -262,6 +262,7 @@ namespace SplineMesh
var uv6 = new List<Vector2>();
var uv7 = new List<Vector2>();
var uv8 = new List<Vector2>();
+ float uvStep = 1.0f / repetitionCount;
for (int i = 0; i < repetitionCount; i++)
{
foreach (var index in source.Triangles)
@@ -269,8 +270,16 @@ namespace SplineMesh
triangles.Add(index + source.Vertices.Count * i);
}
uv.AddRange(source.Mesh.uv);
- uv2.AddRange(source.Mesh.uv2);
- uv3.AddRange(source.Mesh.uv3);
+
+ //uv2.AddRange(source.Mesh.uv2);
+ //uv3.AddRange(source.Mesh.uv3);
+ foreach (var _uv in source.Mesh.uv)
+ {
+ // scaling uv2 and uv3 for baked and realtime lightmaps
+ var scaledU = _uv.x * uvStep + i * uvStep;
+ uv2.Add(new Vector2(scaledU, _uv.y));
+ uv3.Add(new Vector2(scaledU, _uv.y));
+ }
uv4.AddRange(source.Mesh.uv4);
#if UNITY_2018_2_OR_NEWER
uv5.AddRange(source.Mesh.uv5);
@@ -332,6 +341,10 @@ namespace SplineMesh
uv6,
uv7,
uv8);
+
+#if UNITY_EDITOR
+ Unwrapping.GenerateSecondaryUVSet(result);
+#endif
}
private void FillStretch()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment