void OnDisable()
 {
     if (LineRendererWorld.IsCreated)
     {
         LineRendererWorld.Downsize(ref _entities, 0);
     }
 }
        void Awake()
        {
            // convert to entity:
            var    world         = LineRendererWorld.GetOrCreateWorld();
            var    entityManager = world.EntityManager;
            Entity entity        = entityManager.CreateEntity();

            Convert(entity: entity, dstManager: entityManager, conversionSystem: null);

            Destroy(this);
        }
        void Update()
        {
            int index  = 0;
            var bounds = _meshRenderer.bounds;

            LineRendererWorld.Upsize(ref _entities, index + k_cube_vertices);
            Plot.Box(
                command:        _commandLR,
                entities:        _entities,
                index:          ref index,
                size:           bounds.size,
                pos:            bounds.center,
                rot:            quaternion.identity
                );
        }
Ejemplo n.º 4
0
        void Update()
        {
            int       index  = 0;
            Matrix4x4 matrix = transform.localToWorldMatrix;

            LineRendererWorld.Upsize(ref _entities, index + _edges.Length);
            for (int i = 0; i < _edges.Length; i++)
            {
                Entity entity      = _entities[index++];
                int2   edgeIndices = _edges[i];
                _commandLR.SetComponentData(entity, new Segment {
                    start = matrix.MultiplyPoint(_vertices[edgeIndices.x]),
                    end   = matrix.MultiplyPoint(_vertices[edgeIndices.y])
                });
            }
        }
Ejemplo n.º 5
0
        void OnEnable()
        {
            // create list of edges:
            var mf = GetComponent <MeshFilter>();
            {
                var mesh = mf.sharedMesh;
                _vertices = mesh.vertices;
                _edges    = ToEdges(mesh.triangles);
            }

            // make sure LR world exists:
            var worldLR = LineRendererWorld.GetOrCreateWorld();

            _commandLR = worldLR.EntityManager;

            // initialize segment pool:
            if (_entities == null || _entities.Length == 0)
            {
                if (_materialOverride != null)
                {
                    if (_widthOverride > 0f)
                    {
                        LineRendererWorld.InstantiatePool(_edges.Length, out _entities, _widthOverride, _materialOverride);
                    }
                    else
                    {
                        LineRendererWorld.InstantiatePool(_edges.Length, out _entities, _materialOverride);
                    }
                }
                else
                {
                    if (_widthOverride > 0f)
                    {
                        LineRendererWorld.InstantiatePool(_edges.Length, out _entities, _widthOverride);
                    }
                    else
                    {
                        LineRendererWorld.InstantiatePool(_edges.Length, out _entities);
                    }
                }
            }
        }
        void OnEnable()
        {
            _meshRenderer = GetComponent <MeshRenderer>();

            // make sure LR world exists:
            var worldLR = LineRendererWorld.GetOrCreateWorld();

            _commandLR = worldLR.EntityManager;

            // initialize segment pool:
            if (_entities == null || _entities.Length == 0)
            {
                if (_materialOverride != null)
                {
                    if (_widthOverride > 0f)
                    {
                        LineRendererWorld.InstantiatePool(k_cube_vertices, out _entities, _widthOverride, _materialOverride);
                    }
                    else
                    {
                        LineRendererWorld.InstantiatePool(k_cube_vertices, out _entities, _materialOverride);
                    }
                }
                else
                {
                    if (_widthOverride > 0f)
                    {
                        LineRendererWorld.InstantiatePool(k_cube_vertices, out _entities, _widthOverride);
                    }
                    else
                    {
                        LineRendererWorld.InstantiatePool(k_cube_vertices, out _entities);
                    }
                }
            }
        }