Esempio n. 1
0
    /// <summary> 캐릭터 변경시? </summary>
    void ClearJobType()
    {
        PoolAtlasType[] types = new PoolAtlasType[] {
            PoolAtlasType.EquipItem,
            PoolAtlasType.LoadAni,
            PoolAtlasType.Skill
        };

        for (int i = 0; i < types.Length; i++)
        {
            UIAtlas atlas = null;
            if (!PoolAtlas.TryGetValue(types[i], out atlas))
            {
                continue;
            }

            atlas.gameObject.SetActive(false);
            Resources.UnloadAsset(atlas.texture);
            Resources.UnloadAsset(atlas.spriteMaterial);
            atlas = null;

            PoolAtlas.Remove(types[i]);
        }

        PoolAtlas.Clear();
    }
Esempio n. 2
0
    /// <summary> 캐릭터 선택시 사용. </summary>
    public void Load()
    {
        ClearJobType();
        PoolAtlas.Clear();

        for (PoolAtlasType i = PoolAtlasType.Skill; i < PoolAtlasType.Max; i++)
        {
            IgnoreAtlas[(int)i] = GetLoadAtlas(i).name;
        }
    }
Esempio n. 3
0
    /// <summary> 아틀라스 타입에 맞게 반환해준다. 없으면 로드 후 보냄. </summary>
    public UIAtlas GetLoadAtlas(PoolAtlasType type)
    {
        UIAtlas atlas = null;

        if (!PoolAtlas.TryGetValue(type, out atlas))
        {
            string atlasName = GetAtlasNameForType(type);
            atlas = Resources.Load(string.Format("UI/Atlases/{0}", atlasName), typeof(UIAtlas)) as UIAtlas;

            if (atlas == null)
            {
                Debug.LogError(string.Format("atlas not found error. path = 'UI/Atlases/{0}'", atlasName));
            }
            else
            {
                PoolAtlas.Add(type, atlas);
            }
        }

        return(atlas);
    }
Esempio n. 4
0
    /// <summary> 아틀라스 이름 찾기 외부에서 필요하면 public으로 변경해도 상관없음. </summary>
    private string GetAtlasNameForType(PoolAtlasType type)
    {
        string atlasName = "";

        switch (type)
        {
        case PoolAtlasType.LoadAni:
        case PoolAtlasType.EquipItem:
        case PoolAtlasType.Skill:
            if (NetData.instance.GetUserInfo() == null)    //null일 수 있음.
            {
                break;
            }

            uint charIdx = NetData.instance.GetUserInfo().GetCharIdx();
            if (charIdx == 11000)    //권
            {
                atlasName = "F";
            }
            else if (charIdx == 12000)    //명
            {
                atlasName = "P";
            }
            else if (charIdx == 13000)    //협
            {
                atlasName = "D";
            }

            switch (type)
            {
            case PoolAtlasType.LoadAni:
                atlasName = string.Format("Ani{0}", atlasName);
                break;

            case PoolAtlasType.EquipItem:
                atlasName = string.Format("Item{0}", atlasName);
                break;

            case PoolAtlasType.Skill:
                atlasName = string.Format("Skill{0}", atlasName);
                break;
            }

            break;

        case PoolAtlasType.Img:
            atlasName = "Img";
            break;

        case PoolAtlasType.Bod:
            atlasName = "Bod";
            break;

        case PoolAtlasType.Loading:
            atlasName = "LoginAndSelectHero";
            break;

        case PoolAtlasType.Btn:
            atlasName = "Btn";
            break;
        }

        return(atlasName);
    }