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;
    }
Example #2
0
    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);
    }
Example #3
0
        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;
    }