private void AddRing(Vector3 pos) { float innerRadius = Random.Range(0.4f, 0.8f); float outerRadius = innerRadius + Random.Range(0.5f, 0.8f); int sides = Random.Range(10, 18); RingMesh ring = RingMesh.AddRing(pos, innerRadius, outerRadius, sides, material); ring.SetTexture(otherTexture); ring.GetComponent <MeshRenderer>().material.color = Color.yellow; }
public static void DrawRing(Vector3 centre, Vector3 normal, float startAngle, float angle, float innerRadius, float outerRadius) { Mesh mesh = CreateOrRecycleMesh(); RingMesh.GenerateMesh(mesh, angle, innerRadius, outerRadius); //float localYAngle = (startAngle - angle / 2); // centre angle float localYAngle = startAngle; var rot = Quaternion.AngleAxis(localYAngle, normal) * Quaternion.FromToRotation(Vector3.up, normal); CreateVisualElement(mesh, centre, rot, Vector3.one); }
public static void DrawRing(Vector3 centre, Vector3 normal, float startAngle, float angle, float innerRadius, float outerRadius, Color colour, Style style = Style.Standard) { Init(); Mesh mesh = CreateOrRecycleMesh(); RingMesh.GenerateMesh(mesh, angle, innerRadius, outerRadius); //float localYAngle = (startAngle - angle / 2); // centre angle float localYAngle = 0; var rot = Quaternion.AngleAxis(localYAngle, normal) * Quaternion.FromToRotation(Vector3.up, normal); drawList.Add(new DrawInfo(mesh, centre, rot, Vector3.one, colour, style)); }
private void CreateNewMesh(GEOMETRYTYPE meshType, out GeometryMesh geometryMesh, List <System.Object> param = null) { geometryMesh = null; if (null == m_MeshTbl) { return; } do { if (IsMeshExist(meshType, out geometryMesh, param)) { break; } switch (meshType) { case GEOMETRYTYPE.GEOMETRY_TYPE_TAPER: geometryMesh = new TaperMesh(); break; case GEOMETRYTYPE.GEOMETRY_TYPE_RING: geometryMesh = new RingMesh(); break; case GEOMETRYTYPE.GEOMETRY_TYPE_SECTOR: geometryMesh = new SectorMesh(param); break; default: break; } if (geometryMesh != null) { m_MeshTbl.Add(geometryMesh); } } while (false); return; }