Exemplo n.º 1
0
        PositionRegionRenderer GetRegionRenderer(int regionX, int regionY)
        {
            var rend = regionRenderers.Find(e => e.regionX == regionX && e.regionY == regionY);

            if (rend == null)
            {
                RegionMeshRenderer regionRenderer = CreateRegionRenderer();

                regionRenderer.transform.SetParent(containerGO.transform);
                regionRenderer.transform.localPosition = new Vector2(regionX * Grid.REGION_SIZE, regionY * Grid.REGION_SIZE);

                rend = new PositionRegionRenderer {
                    regionX = regionX,
                    regionY = regionY,
                    mesh    = regionRenderer
                };

                regionRenderers.Add(rend);

                return(rend);
            }
            else
            {
                return(rend);
            }
        }
Exemplo n.º 2
0
    public static RegionMeshRenderer Create(int tilePerSide)
    {
        GameObject         obj      = new GameObject("region mesh renderer");
        RegionMeshRenderer renderer = obj.AddComponent <RegionMeshRenderer> ();

        renderer.SetupMesh(tilePerSide);

        return(renderer);
    }
Exemplo n.º 3
0
        RegionMeshRenderer CreateRegionRenderer()
        {
            RegionMeshRenderer rend;

            if (Application.isPlaying)
            {
                rend = GridlikePools.renderers.Get();
            }
            else
            {
                rend = RegionMeshRenderer.Create(Grid.REGION_SIZE);
            }

            if (grid.atlas.material == null)
            {
                grid.atlas.RegenerateMaterial();
            }
            rend.SetupRendering(grid.atlas.material, grid.atlas.tilePixelSize, grid.atlas.emptySprite);

            return(rend);
        }
Exemplo n.º 4
0
        void _Initialize()
        {
            GameObject rendererContainer = new GameObject("Mesh regions");

            rendererContainer.transform.SetParent(gameObject.transform);
            rendererContainer.transform.localPosition = Vector2.zero;
            _renderers = new ComponentPool <RegionMeshRenderer> (rendererContainer, 16, () => RegionMeshRenderer.Create(Grid.REGION_SIZE));
        }