public void Update() { if (objectsPool == null) { this.objectsPool = new List <Object> (); } int currentObjectsCount = objectsPool.Count; // Remove redundant labels int redundantObjectsCount = allDirty? objectsPool.Count: (objectsPool.Count - poolSize); while (redundantObjectsCount > 0) { Object target = objectsPool[objectsPool.Count - 1]; MonoBehaviour.DestroyImmediate(target); objectsPool.Remove(target); redundantObjectsCount--; } // Add missing labels Object prefab = objectPrefab != null? objectPrefab : Resources.Load(DefaultObjectPrefabPath); int missingObjectsCount = prefab == null? 0: (poolSize - objectsPool.Count); while (missingObjectsCount > 0) { Object target = viewCreator.InstantiateWithPrefab(prefab, parent); objectsPool.Add(target); missingObjectsCount--; } allDirty = false; sizeDirty = false; }
private void InstantiateViews() { labelText = viewCreator.InstantiateWithPrefab <ChartLabel> (labelPrafab, transform); labelText.GetComponent <RectTransform> ().anchorMin = new Vector2(0.5f, 0.5f); labelText.GetComponent <RectTransform> ().anchorMax = new Vector2(0.5f, 0.5f); labelText.GetComponent <RectTransform> ().sizeDelta = new Vector2(300f, 40f); lineRenderer = viewCreator.InstantiateLineRenderer("line", transform, PivotValue.CENTER); lineRenderer.GetComponent <RectTransform> ().anchorMin = new Vector2(0.5f, 0.5f); lineRenderer.GetComponent <RectTransform> ().anchorMax = new Vector2(0.5f, 0.5f); lineRenderer.lineThickness = 2.0f; }