Ejemplo n.º 1
0
    /// <summary>
    /// Updates a CurveObject and overwrites its informations
    /// </summary>
    public void UpdateCurve(BroadCastCurve broadcast)
    {
        var allPoints = GeoUtils.GetVector3Array(broadcast.positions);

        int length = allPoints.Length;

        GameObject   go       = GeometryStorage.Instance.GetGeometry(broadcast.curveNr, GeometryStorage.GeoType.Curve);
        LineRenderer renderer = go.GetComponent <LineRenderer>();

        renderer.positionCount = length;
        renderer.SetPositions(allPoints);

        renderer.GetPropertyBlock(propBlock);
        Color c = GeoUtils.GetUColor(broadcast.colors);

        propBlock.SetColor("_Color", c);
        renderer.SetPropertyBlock(propBlock);

        float width = broadcast.width * 2;

        if (renderer.startWidth == width)
        {
            return;
        }

        renderer.startWidth = width;
        renderer.endWidth   = width;
    }
Ejemplo n.º 2
0
 /// <summary>
 /// UpdateCurves is overwritten from its derived class: GeoClient,
 /// everytime gemetry data is send, it is stacked in a special "list",
 /// which is later processed in the unity update circle
 /// </summary>
 /// <param name="data">The network class for Curves</param>
 protected override void UpdateCurves(BroadCastCurve data)
 {
     lock (geometryChanged)
         geometryChanged.Enqueue(data);
 }