private void ProcessQueue() { if (_queue.Count > 0 && !_running) { MeshBuilderVO vo = _queue [0]; _running = true; _finishedAction = vo.CompletedHandler; _useThread = vo.Thread; _vertexColor = vo.Col; _material = vo.Mat; _rebuild = vo.Rebuild; _reusedMesh = vo.ReusedMesh; _reusedShape = vo.ReusedShape; Build(vo.Points); } }
public void Build(List <Vector2> points, Action <Shape> completedHandler, Color color, Material material, bool useThread, bool rebuild, GameObject obj = null) { if (_queue == null) { _queue = new List <MeshBuilderVO>(); } MeshBuilderVO vo = new MeshBuilderVO(); vo.Points = points; vo.CompletedHandler = completedHandler; vo.Thread = useThread; vo.Col = color; vo.Rebuild = rebuild; if (rebuild) { vo.ReusedShape = obj.GetComponent <Shape>(); vo.ReusedMesh = obj.GetComponent <MeshFilter>().sharedMesh; } if (material == null) { if (_basicMaterial == null) { _basicMaterial = Resources.Load("Basic2DMaterial") as Material; } vo.Mat = _basicMaterial; } else { vo.Mat = material; } _queue.Add(vo); if (!_running) { ProcessQueue(); } }
public void Build(List<Vector2> points, Action<Shape> completedHandler, Color color, Material material, bool useThread, bool rebuild, GameObject obj = null) { if (_queue == null) { _queue = new List<MeshBuilderVO>(); } MeshBuilderVO vo = new MeshBuilderVO(); vo.Points = points; vo.CompletedHandler = completedHandler; vo.Thread = useThread; vo.Col = color; vo.Rebuild = rebuild; if(rebuild) { vo.ReusedShape = obj.GetComponent<Shape>(); vo.ReusedMesh = obj.GetComponent<MeshFilter>().sharedMesh; } if (material == null) { if(_basicMaterial == null) { _basicMaterial = Resources.Load("Basic2DMaterial") as Material; } vo.Mat = _basicMaterial; } else { vo.Mat = material; } _queue.Add(vo); if (!_running) { ProcessQueue(); } }