Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void AddRowOfSprites(MeshData data,
- float startV, float startScale, Vector3 startPos, Vector3 startDir, Color startColor,
- float endV, float endScale, Vector3 endPos, Vector3 endDir, Color endColor) {
- Vector3 startRightAngle = new Vector3(startDir.z, startDir.y, -startDir.x);
- Vector3 endRightAngle = new Vector3(endDir.z, endDir.y, -endDir.x);
- // Split count defines how many sprites in a row would be created
- int splitCount = 5;
- Vector3 startLeft = startPos - startRightAngle * ((float)splitCount) * 0.5f * startScale;
- Vector3 endLeft = endPos - endRightAngle * ((float)splitCount) * 0.5f * endScale;
- for (int i = 0; i < splitCount; i++) {
- QuadData quadData = new QuadData();
- quadData.v0 = startLeft + startRightAngle * startScale * i;
- quadData.v1 = startLeft + startRightAngle * startScale * (i + 1);
- quadData.v2 = endLeft + endRightAngle * endScale * (i + 1);
- quadData.v3 = endLeft + endRightAngle * endScale * i;
- quadData.minUV = new Vector2(((float)i) / ((float)splitCount), startV);
- quadData.maxUV = new Vector2(((float)i + 1) / ((float)splitCount), endV);
- quadData.c0 = startColor;
- quadData.c1 = startColor;
- quadData.c2 = endColor;
- quadData.c3 = endColor;
- MeshData.AddSingleSprite(data, quadData);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement