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 ); }
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]) }); } }
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); } } } }