private static void GeneratePlank(GameObject segmentObject, RailPathPoint p1, RailPathPoint p2, RailSettings settings, Vector3 toVector, Vector3 toVectorPpc) { GameObject plankObject = MeshGenerator.CreateEmptyObject("Plank", "Ground", segmentObject.transform); Vector3[] vertices = new Vector3[0]; int[] triangles = new int[0]; Vector3 frontOrigin = p1.Position + toVector / 3f; Vector3 backOrigin = p1.Position + toVector / 3f * 2f; Vector3 heightOffset = new Vector3(0f, settings.PlankHeight, 0f); Vector3 leftBackTop = backOrigin - (toVectorPpc * settings.PlankWidth / 2f) + heightOffset; Vector3 rightBackTop = backOrigin + (toVectorPpc * settings.PlankWidth / 2f) + heightOffset; Vector3 rightFrontTop = frontOrigin + (toVectorPpc * settings.PlankWidth / 2f) + heightOffset; Vector3 leftFrontTop = frontOrigin - (toVectorPpc * settings.PlankWidth / 2f) + heightOffset; Vector3 leftBackBot = backOrigin - (toVectorPpc * settings.PlankWidth / 2f); Vector3 rightBackBot = backOrigin + (toVectorPpc * settings.PlankWidth / 2f); Vector3 rightFrontBot = frontOrigin + (toVectorPpc * settings.PlankWidth / 2f); Vector3 leftFrontBot = frontOrigin - (toVectorPpc * settings.PlankWidth / 2f); MeshGenerator.AddCuboid(ref vertices, ref triangles, leftBackTop, rightBackTop, rightFrontTop, leftFrontTop, leftBackBot, rightBackBot, rightFrontBot, leftFrontBot); MeshGenerator.ApplyMesh(plankObject, vertices, triangles, MaterialHandler.Instance.RailPlankColor); }