Exemple #1
0
 private void OnDisable()
 {
     if (Occupy != null)
     {
         Occupy.Dispose();
         Occupy = null;
     }
     if (cworker != null)
     {
         StopCoroutine(cworker);
         cworker = null;
     }
     colorTex.DestroySelf();
 }
Exemple #2
0
 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);
 }
Exemple #3
0
        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();
 }
Exemple #5
0
 private void OnEnable()
 {
     Occupy  = new Occupy(4, 4);
     cworker = StartCoroutine(Worker());
 }