private void OnDisable() { if (Occupy != null) { Occupy.Dispose(); Occupy = null; } if (cworker != null) { StopCoroutine(cworker); cworker = null; } colorTex.DestroySelf(); }
private void Visualize() { if (colorTex == null || colorTex.width != screenSize.x || colorTex.height != screenSize.y) { colorTex.DestroySelf(); colorTex = new RenderTexture(screenSize.x, screenSize.y, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear); colorTex.enableRandomWrite = true; colorTex.wrapMode = TextureWrapMode.Clamp; colorTex.filterMode = FilterMode.Point; colorTex.Create(); } Occupy.Visualize(colorTex, settings.clusters); VisualizeIds.Invoke(colorTex); }
private void UpdateOccupy() { var aspect = (float)screenSize.x / screenSize.y; var orthoSize = settings.metricsScale; var cameraSize = new Vector3(aspect * orthoSize, orthoSize, 1f); var positions = points.Select(p => p.position).ToArray(); var ids = points.Select(p => p.id).ToArray(); var lifes = points.Select(p => p.life).ToArray(); var metrics = Matrix4x4.Scale(cameraSize); Occupy.LifeLimit = settings.lifeLimit; Occupy.EdgeDuration = settings.edgeDuration; Occupy.SetSize(screenSize.x, screenSize.y); Occupy.Clear(); for (var i = 0; i < positions.Length; i++) { Occupy.Add(ids[i], positions[i], lifes[i]); } Occupy.Update(metrics); }
public void UpdateOn(Occupy occupy) { block.SetTexture(OccupyVisual.ID_OCCUPY_TEX, occupy.Ids).Apply(); }
private void OnEnable() { Occupy = new Occupy(4, 4); cworker = StartCoroutine(Worker()); }