private void DoShowEffects()
        {
            FastLineRendererProperties props = new FastLineRendererProperties();
            FastLineRenderer           r     = FastLineRenderer.CreateWithParent(null, LineRenderer);

            r.Material.EnableKeyword("DISABLE_CAPS");
            r.SetCapacity(8192 * FastLineRenderer.VerticesPerLine);
            r.Turbulence  = 350.0f;
            r.BoundsScale = new Vector3(4.0f, 4.0f, 4.0f);
            //r.JitterMultiplier = UnityEngine.Random.Range(0.25f, 1.5f);

            const float maxLifeTimeSeconds = 1.5f;

            for (int i = 0; i < 32; i++)
            {
                Vector3 pos  = new Vector3(10.0f, Screen.height * 0.5f);
                Vector3 pos2 = new Vector3(10.0f + (UnityEngine.Random.Range(50.0f, 150.0f)), Screen.height * 0.5f + (UnityEngine.Random.Range(-15.0f, 15.0f)));
                props.Start  = pos;
                props.End    = pos2;
                props.Radius = UnityEngine.Random.Range(8.0f, 16.0f);
                float s = UnityEngine.Random.Range(1.0f, maxLifeTimeSeconds);
                props.SetLifeTime(s, s * UnityEngine.Random.Range(0.1f, 0.2f));
                props.Color           = new Color32(RandomByte(), RandomByte(), RandomByte(), RandomByte());
                props.Velocity        = RandomVelocity(20.0f);
                props.Velocity.z      = 0.0f;
                props.AngularVelocity = UnityEngine.Random.Range(-0.1f, 0.1f);
                r.AddLine(props);
            }
            r.Apply();

            // send the script back into the cache, freeing up resources after max lifetime seconds.
            r.SendToCacheAfter(TimeSpan.FromSeconds(maxLifeTimeSeconds));
        }
 public void UseUnityLineRendererToggled()
 {
     FastLineRenderer.ResetAll();
     UnityLineRendererPositions.Clear();
     UnityLineRenderer.positionCount = 0;
     LineCountLabel.text             = string.Empty;
     lineCount = 0;
 }
Exemplo n.º 3
0
 public void Init(FastLineRenderer parent, float radius)
 {
     Assert.IsNotNull(parent);
     lineRenderer = FastLineRenderer.CreateWithParent(null, parent);
     lineRenderer.Material.EnableKeyword("DISABLE_CAPS");
     lineRenderer.SetCapacity(FastLineRenderer.MaxLinesPerMesh * FastLineRenderer.VerticesPerLine);
     props        = new FastLineRendererProperties();
     props.Radius = radius;
 }
Exemplo n.º 4
0
        protected void ResetLineMeshAngles(FastLineRenderer line)
        {
            var meshes = line.transform.GetComponentsInChildren <MeshRenderer>();

            foreach (var m in meshes)
            {
                m.transform.localEulerAngles = Vector3.zero;
            }
        }
Exemplo n.º 5
0
 void Start()
 {
     FLR               = FLR_Object.GetComponent <FastLineRenderer>();
     crnt_pos          = prev_pos = GetComponent <Transform>().position;
     FLR.UseWorldSpace = true;
     FLRP              = new FastLineRendererProperties();
     FLRP.Start        = FLRP.End = crnt_pos;
     FLRP.Radius       = 0.5f;
     FLRP.Color        = new Color32(255, 0, 0, 255);
     FLRP.LineJoin     = FastLineRendererLineJoin.AttachToPrevious;
     FLRP.SetLifeTime(1f, 999f, 0f);
     EC_points = new List <List <Vector2> >();
 }
        private void UpdateDynamicLines()
        {
            if (!Input.GetKeyDown(KeyCode.Space) || LineRenderer == null)
            {
                return;
            }
            else if (ShowEffects)
            {
                DoShowEffects();
                return;
            }

            const float maxLifeTimeSeconds   = 5.0f;
            FastLineRendererProperties props = new FastLineRendererProperties();
            FastLineRenderer           r     = FastLineRenderer.CreateWithParent(null, LineRenderer);

            r.Material.EnableKeyword("DISABLE_CAPS");
            r.SetCapacity(8192 * FastLineRenderer.VerticesPerLine);
            r.Turbulence  = 150.0f;
            r.BoundsScale = new Vector3(4.0f, 4.0f, 4.0f);
            props.GlowIntensityMultiplier = 0.1f;
            props.GlowWidthMultiplier     = 4.0f;

            for (int i = 0; i < 8192; i++)
            {
                Vector3 pos;
                if (Camera.main.orthographic)
                {
                    pos    = UnityEngine.Random.insideUnitCircle;
                    pos.x *= Screen.width * UnityEngine.Random.Range(0.1f, 0.4f);
                    pos.y *= Screen.height * UnityEngine.Random.Range(0.1f, 0.4f);
                }
                else
                {
                    pos    = UnityEngine.Random.insideUnitSphere;
                    pos.x *= Screen.width * UnityEngine.Random.Range(0.5f, 2.0f);
                    pos.y *= Screen.height * UnityEngine.Random.Range(0.5f, 2.0f);
                    pos.z *= UnityEngine.Random.Range(-200.0f, 200.0f);
                }
                props.End    = pos;
                props.Radius = UnityEngine.Random.Range(1.0f, 4.0f);
                float s = UnityEngine.Random.Range(1.0f, maxLifeTimeSeconds);
                props.SetLifeTime(s, s * 0.15f);
                props.Color           = new Color32(RandomByte(), RandomByte(), RandomByte(), RandomByte());
                props.Velocity        = RandomVelocity(100.0f);
                props.AngularVelocity = UnityEngine.Random.Range(-6.0f, 6.0f);
                r.AddLine(props);
            }
            r.Apply();
            r.SendToCacheAfter(TimeSpan.FromSeconds(maxLifeTimeSeconds));
        }
Exemplo n.º 7
0
        public void GenerateLotsOfLines()
        {
            for (int i = 0; i < 10; i++)
            {
                if (UseUnityLineRendererToggle != null && UseUnityLineRendererToggle.isOn && UnityLineRenderer != null)
                {
                    for (int j = 0; j < FastLineRenderer.MaxLinesPerMesh; j++)
                    {
                        Vector3 pos = new Vector3(UnityEngine.Random.Range(0.0f, Screen.width), UnityEngine.Random.Range(0.0f, Screen.height), UnityEngine.Random.Range(-400.0f, 400.0f));
                        UnityLineRendererPositions.Add(pos);
                    }
                    UnityLineRenderer.positionCount = UnityLineRendererPositions.Count;
                    UnityLineRenderer.SetPositions(UnityLineRendererPositions.ToArray());
                }
                else if (lotsOfLinesRenderer != null)
                {
                    // fast clone, just re-use the mesh!
                    const float      range = 1000.0f;
                    FastLineRenderer r     = FastLineRenderer.CreateWithParent(null, LineRenderer);
                    r.Material.EnableKeyword("DISABLE_CAPS");
                    r.Mesh = lotsOfLinesRenderer.Mesh;
                    r.transform.Translate(UnityEngine.Random.Range(-range, range), UnityEngine.Random.Range(-range, range), UnityEngine.Random.Range(-range, range));
                }
                else
                {
                    FastLineRenderer r = FastLineRenderer.CreateWithParent(null, LineRenderer);
                    r.Material.EnableKeyword("DISABLE_CAPS");
                    r.SetCapacity(FastLineRenderer.MaxLinesPerMesh * FastLineRenderer.VerticesPerLine);
                    FastLineRendererProperties props = new FastLineRendererProperties();
                    for (int j = 0; j < FastLineRenderer.MaxLinesPerMesh; j++)
                    {
                        Color32 randColor = new Color32(RandomByte(), RandomByte(), RandomByte(), RandomByte());
                        // Vector3 pos = new Vector3(UnityEngine.Random.Range(0.0f, Screen.width), UnityEngine.Random.Range(0.0f, Screen.height), UnityEngine.Random.Range(-400.0f, 400.0f));
                        Vector3 pos = new Vector3(UnityEngine.Random.Range(0.0f, Screen.width), UnityEngine.Random.Range(0.0f, Screen.height), 0);
                        props.Start  = pos;
                        props.End    = Vector3.zero;
                        props.Color  = randColor;
                        props.Radius = UnityEngine.Random.Range(1.0f, 4.0f);
                        props.SetLifeTime(float.MaxValue);
                        // props.AngularVelocity = UnityEngine.Random.Range(-6.0f, 6.0f);
                        // props.Velocity = RandomVelocity(50.0f);
                        r.AppendLine(props);
                    }
                    r.Apply();
                    lotsOfLinesRenderer = r;
                }

                LineCountLabel.text = "Lines: " + (lineCount += FastLineRenderer.MaxLinesPerMesh);
            }
        }
Exemplo n.º 8
0
    public void Init(FastLineRenderer defaultRenderer, FastLineRenderer selectionRenderer)
    {
        Ogr.RegisterAll();
        model  = new GisModel();
        viewer = new GisViewer();
        viewer.Init();
        fastrenderer = new GisRenderer();
        fastrenderer.Init(defaultRenderer, 0.02f);

        ss = new GisSelectionSet();
        ss.Init(selectionRenderer, 0.2f);

        GisOperatingToolSet.SetHost(this);
        optool = new GisOperatingToolSet();
        optool.Init(viewer);
    }
Exemplo n.º 9
0
    private void drawStreamLines()
    {
        List <Vector3> points = generateOneStreamLine(new Vector3(200 * DataBase.SpaceFactor, 100 * DataBase.SpaceFactor, 30 * DataBase.SpaceFactor));

        /*
         * VectorLine line = new VectorLine("Grid", points, 3f, LineType.Continuous);
         * //line.SetColors(GenerateColorsFromPositions(positions_TEST));
         * line.Draw3DAuto();
         */

        FastLineRenderer           LineRenderer = FastLineRenderer.CreateWithParent(gameObject, FastLineRendererTemplate);
        FastLineRendererProperties props        = new FastLineRendererProperties();

        props.Radius   = 0.01f;
        props.LineJoin = FastLineRendererLineJoin.AdjustPosition;
        LineRenderer.AddLine(props, points, null, false, false);
        LineRenderer.Apply();
    }
Exemplo n.º 10
0
    //static readonly float jitterRadiusFactor = 0.25f;

    // Use this for initialization
    void Start()
    {
        if (laserLines == null)
        {
            laserLines = new List <LaserLine> ();
        }
        lr = GetComponent <FastLineRenderer> ();

        ec         = transform.gameObject.AddComponent <EdgeCollider2D> ();
        ec.enabled = false;

        //yield return new WaitForSeconds (0.1f);

        DrawDefaultLine(transform);
        InitEdgeCollider();

//		if(interfaceTransform){
//			cs = interfaceTransform.GetComponent<ControlStatus> ();
//		}
    }
Exemplo n.º 11
0
        private void OnEnable()
        {
            inspectorTarget = target as FastLineRenderer;

            //Get the layer names
            string[] layerNames = GetSortingLayerNames();

            //Put them in a GUIContent variable, so that we can display a tooltip later
            sortingLayerNames = new GUIContent[layerNames.Length];
            string currentSortLayerName = (inspectorTarget.SortLayerName ?? string.Empty);

            for (int i = 0; i < sortingLayerNames.Length; i++)
            {
                sortingLayerNames[i] = new GUIContent(layerNames[i] ?? string.Empty);
                if (currentSortLayerName == layerNames[i])
                {
                    chosenIndex = i;
                }
            }
        }
Exemplo n.º 12
0
    public void RenderPlanetOrbits()
    {
        for (int i = 0; i < orbitsMatrixPlanets.GetLength(0); i++)
        {
            FastLinePlanetline.Reset();
            GameObject go = new GameObject("Orbit");
            go.transform.SetParent(planetIDGameObjectMap[i].transform);
            go.transform.localPosition = new Vector3(0f, 0f, 0f);

            FastLineRenderer lr = FastLineRenderer.CreateWithParent(go, FastLinePlanetline);

            FastLineRendererProperties props = new FastLineRendererProperties();

            props.Radius     = orbitLineRadius;
            props.LineJoin   = FastLineRendererLineJoin.AttachToPrevious;
            lr.UseWorldSpace = true;
            // props.Color = new Color(0.67f, 0.66f, 0.50f, 0.25f);
            lr.AddLine(props, orbitsMatrixPlanets[i], null);
            lr.ScreenRadiusMultiplier = orbitLineScale;

            lr.Apply();
        }

        //for (int i = 0; i < orbitsMatrixPlanets.GetLength(0); i++)
        //{
        //    GameObject go = new GameObject("Orbit");
        //    go.transform.SetParent(planetIDGameObjectMap[i].transform);
        //    go.transform.localPosition = new Vector3(0f, 0f, 0f);


        //    LineRenderer lr = Instantiate<LineRenderer>(LineOrbits, go.transform);
        //    lr.enabled = true;

        //    lr.name = "Orbit-" + solarsystem.Planets[i].OrbitalID;
        //    orbitsPlanets.Add(lr);
        //    lr.startWidth = 1f;
        //    lr.endWidth = 1f;
        //    lr.positionCount = segments;
        //    lr.SetPositions(orbitsMatrixPlanets[i]);
        //}
    }
Exemplo n.º 13
0
    public void RenderMoonOrbits()
    {
        //for (int i = 0; i < orbitsMatrixMoons.GetLength(0); i++)
        //{
        //     LineRenderer lr = Instantiate<LineRenderer>(
        //         LineOrbits, planetIDGameObjectMap[solarsystem.Moons[i].Parent.OrbitalID].transform);
        //    lr.enabled = enable;
        //    lr.useWorldSpace = false;
        //    lr.name = "Orbit-" + solarsystem.Moons[i].Parent.OrbitalID.ToString() +
        //        "-" + solarsystem.Moons[i].OrbitalID.ToString();
        //    orbitsMoons.Add(lr);
        //    lr.startWidth = 60f;
        //    lr.endWidth = 60f;
        //    lr.startColor = moonsOrbitColour;
        //    lr.endColor = moonsOrbitColour;
        //    lr.positionCount = segmentsMoons;
        //    lr.SetPositions(orbitsMatrixMoons[i]);
        //}

        for (int i = 0; i < orbitsMatrixMoons.GetLength(0); i++)
        {
            FastLineMoonline.Reset();
            GameObject go = new GameObject("Orbit-Moon");
            go.transform.SetParent(planetIDGameObjectMap[solarsystem.Moons[i].Parent.OrbitalID].transform);
            go.transform.localPosition = new Vector3(0f, 0f, 0f);

            FastLineRenderer lr = FastLineRenderer.CreateWithParent(go, FastLineMoonline);

            FastLineRendererProperties props = new FastLineRendererProperties();

            props.Radius     = orbitLineRadius;
            props.LineJoin   = FastLineRendererLineJoin.AttachToPrevious;
            lr.UseWorldSpace = false;
            // props.Color = new Color(0.51f, 0.67f, 0.50f, 0.25f);
            lr.AddLine(props, orbitsMatrixMoons[i], null);
            lr.ScreenRadiusMultiplier = orbitLineScale;

            lr.Apply();
        }
    }