Ejemplo n.º 1
0
    public void ColoredPixelsFinalDecodingPass(List <Vector2Int> pixels) /////Does cleaning up of the data that was parsed
    {
        if (pixels.Count != 0)
        {
            List <GameObject> spawnedCubes = new List <GameObject>(0);
            int i = 0;
            while (i < pixels.Count)
            {
                Vector3 spawnPosXYZ = new Vector3(pixels[i].x, pixels[i].y, 0);

                GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
                cube.transform.position = spawnPosXYZ;


                spawnedCubes.Add(cube);
                parsedTrackedPositions.Add(new Vector2Int((int)spawnPosXYZ.x, (int)spawnPosXYZ.y));

                Collider[] hitColliders = Physics.OverlapSphere(cube.transform.position, minDotDistance);
                for (int j = 0; j < hitColliders.Length; j++)
                {
                    if (hitColliders[j].gameObject != cube)
                    {
                        if (parsedTrackedPositions.Contains(new Vector2Int((int)hitColliders[j].transform.position.x, (int)hitColliders[j].transform.position.y)))
                        {
                            parsedTrackedPositions.Remove(new Vector2Int((int)hitColliders[j].transform.position.x, (int)hitColliders[j].transform.position.y));
                        }
                        spawnedCubes.Remove(hitColliders[j].gameObject);
                        DestroyImmediate(hitColliders[j].gameObject);
                    }
                }

                i++;
            }
            if (saveAsText)
            {
                JsonSerialising.SerialiseList(fileLocation, fileName, parsedTrackedPositions);
                //deserialisedPositions = JsonSerialising.DeserialiseVector2IntList(fileLocation, fileName);
            }

            for (int j = 0; j < spawnedCubes.Count; j++)
            {
                DestroyImmediate(spawnedCubes[j]);
                spawnedCubes.RemoveAt(j);
            }
        }
        else
        {
            Debug.Log("No red pixels in this image.");
        }
    }