Beispiel #1
0
    public SectorUnity GetSectorUnityFromCache(Sector sector)
    {
        if (goContainer == null)
        {
            goContainer      = new GameObject();
            goContainer.name = "Sectors";
            goContainer.transform.position   = new Vector3(0, 0, 0);
            goContainer.transform.rotation   = Quaternion.identity;
            goContainer.transform.localScale = new Vector3(1, 1, 1);
        }

        SectorUnity sectorUnity = null;

        if (lastSectorAssignmentCache.ContainsKey(sector.sectorPosition))
        {
            sectorUnity = lastSectorAssignmentCache[sector.sectorPosition];
            if (sectorUnity.IsInUse())
            {
                sectorUnity = null;
            }
            else
            {
                cacheSectors.Remove(sectorUnity);
            }
        }

        if (sectorUnity == null)
        {
            if (cacheSectors.Count > 0)
            {
                sectorUnity = cacheSectors[cacheSectors.Count - 1];
                cacheSectors.RemoveAt(cacheSectors.Count - 1);
            }
            else
            {
                GameObject g = new GameObject();
                sectorUnity = (SectorUnity)g.AddComponent(typeof(SectorUnity));
                sectorUnity.gameManagerUnity = gameManagerUnity;
                sectorUnity.transform.parent = goContainer.transform;

                unitySectors.Add(sectorUnity);
            }
        }

        sectorUnity.transform.position = GraphicsUnity.TilePositionToVector3(sector.tileOffset);
        sector.SetSectorGraphics(sectorUnity);

        sectorUnity.name = sector.sectorPosition.y + "," + sector.sectorPosition.x + "," + sector.sectorPosition.z;

        return(sectorUnity);
    }
	public void ReturnSectorUnityToCache(SectorUnity sectorUnity)
	{
		lastSectorAssignmentCache[sectorUnity.GetSector().sectorPosition] = sectorUnity;
		cacheSectors.Add(sectorUnity);
		sectorUnity.GetSector().SetSectorGraphics(null);
	}
Beispiel #3
0
 public void ReturnSectorUnityToCache(SectorUnity sectorUnity)
 {
     lastSectorAssignmentCache[sectorUnity.GetSector().sectorPosition] = sectorUnity;
     cacheSectors.Add(sectorUnity);
     sectorUnity.GetSector().SetSectorGraphics(null);
 }