Пример #1
0
    // 유틸 : 테이블 데이터 생성 ( 번들정보와 리소스정보 준비시키기 )
    static SHTableData CreateTableData(BuildTarget eTarget)
    {
        // 테이블 데이터 생성
        SHTableData pTableData = new SHTableData();

        pTableData.OnInitialize();
        {
            // 클라이언트 정보 테이블 준비
            var pClientInfo = GetClientConfigTable(pTableData);
            pClientInfo.LoadJsonToLocal(pClientInfo.m_strFileName);

            // 서버 정보 테이블 준비
            var pServerInfo = GetServerConfigTable(pTableData);
            if (false == string.IsNullOrEmpty(pClientInfo.GetConfigurationCDN()))
            {
                pServerInfo.DownloadByCDNToSync(pClientInfo.GetConfigurationCDN());
            }
            else
            {
                pServerInfo.LoadJsonToLocal(pServerInfo.m_strFileName);
            }

            // 번들정보 테이블 준비
            var pBundleInfo = GetBundleTable(pTableData);
            pBundleInfo.SetData(
                pBundleInfo.UpdateAssetBundlesMakeInfoByStreamingPath(
                    pServerInfo.GetBundleCDN(pClientInfo.GetServiceMode(), pClientInfo.GetVersion()), eTarget));

            // 리소스 리스트 테이블 준비
            var pResourceInfo = GetResourceTable(pTableData);
            pResourceInfo.LoadJsonToLocal(pResourceInfo.m_strFileName);
        }
        return(pTableData);
    }
Пример #2
0
    // 인터페이스 : 에디터 클래스 전용 ( Resources폴더내에 컨버팅된 Byte파일을 쏟아 냄 )
    public void RunEditorToConverter()
    {
        var pTableData = new SHTableData();

        pTableData.OnInitialize();
        ConverterTableToByte(pTableData, SHPath.GetResourceByteTable());
        pTableData.OnFinalize();
    }
Пример #3
0
    // 인터페이스 : 에디터 클래스 전용 ( Resources폴더내에 컨버팅된 Byte파일을 쏟아 냄 )
    public void RunEditorToConvert()
    {
        var pTableData = new SHTableData();

        pTableData.OnInitialize();
        ConvertByteFiles(pTableData, string.Format("{0}{1}", SHPath.GetPathToResources(), "/Table/Bytes"));
        pTableData.OnFinalize();
    }
Пример #4
0
    // 유틸 : 패킹할 번들 리스트 만들기
    static Dictionary <string, AssetBundleInfo> GetPackingBundleList(SHTableData pTableData, eBundlePackType ePackingType)
    {
        var pBundleInfo = GetBundleTable(pTableData);

        switch (ePackingType)
        {
        case eBundlePackType.All:     return(pBundleInfo.GetContainer());

        case eBundlePackType.Update:  return(pBundleInfo.GetBundleListToCompare(GetResourceTable(pTableData)));
        }

        return(new Dictionary <string, AssetBundleInfo>());
    }
Пример #5
0
    // 유틸 : 원본 리소스 모두 제거
    static void DeleteOriginalResource(SHTableData pTableData)
    {
        var pBundleInfo = GetBundleTable(pTableData);

        SHUtils.ForToDic(pBundleInfo.GetContainer(), (pKey, pValue) =>
        {
            SHUtils.ForToDic(pValue.m_dicResources, (pResKey, pResValue) =>
            {
                SHUtils.DeleteFile(string.Format("{0}/{1}{2}", SHPath.GetPathToResources(), pResValue.m_strPath, pResValue.m_strExtension));
                SHUtils.DeleteFile(string.Format("{0}/{1}{2}", SHPath.GetPathToResources(), pResValue.m_strPath, ".meta"));
            });
        });
    }
Пример #6
0
    // 인터페이스 : 바이트파일 컨버터 ( 전달된 TableData를 참조해서 전달된 저장경로에 쏟아 냄 )
    public void ConvertByteFiles(SHTableData pTableData, string strSavePath)
    {
        if (null == pTableData)
        {
            return;
        }

        SHUtils.ForToDic(pTableData.Tables, (pKey, pValue) =>
        {
            ConvertByteFile(pValue, strSavePath);
        });

        Debug.Log("<color=yellow>ConvertByteFiles Finish!!!</color>");
    }
Пример #7
0
    // 인터페이스 : 바이트파일 컨버터 ( 전달된 TableData를 참조해서 전달된 저장경로에 쏟아 냄 )
    public void ConverterTableToByte(SHTableData pTableData, string strSavePath)
    {
        if (null == pTableData)
        {
            return;
        }

        int iSucceedCnt = 0;

        foreach (var kvp in pTableData.Tables)
        {
            if (ConverterByteFile(kvp.Value, strSavePath))
            {
                ++iSucceedCnt;
            }
        }

        Debug.LogFormat("<color=yellow>[LSH] Converter Table To Byte Finish!!!(SucceedCnt : {0})</color>", iSucceedCnt);
    }
Пример #8
0
    // 유틸 : 번들정보 스크립트 아웃풋
    static void UpdateBundleInfoTable(BuildTarget eTarget, SHTableData pTableData, Dictionary <string, AssetBundleInfo> dicMakeBundles, string strOutputPath)
    {
        var pBundleTable   = GetBundleTable(pTableData);
        var pResourceTable = GetResourceTable(pTableData);

        SHUtils.ForToDic(dicMakeBundles, (pKey, pValue) =>
        {
            AssetBundleInfo pData = pBundleTable.GetBundleInfo(pValue.m_strBundleName);
            pData.m_lBundleSize   = pValue.m_lBundleSize;
            pData.m_pHash128      = pValue.m_pHash128;
            pData.CopyResourceInfo(pValue.m_dicResources);

            SHUtils.ForToDic(pData.m_dicResources, (pResKey, pResValue) =>
            {
                pResValue.CopyTo(pResourceTable.GetResouceInfo(pResKey));
            });
        });

        pBundleTable.SaveJsonFileByDic(
            string.Format("{0}/{1}.json", strOutputPath, pBundleTable.m_strFileName));
    }
Пример #9
0
 // 유틸 : 리소스 테이블 얻기
 static JsonResourcesTable GetResourceTable(SHTableData pTableData)
 {
     return(pTableData.GetTable <JsonResourcesTable>());
 }
Пример #10
0
 // 유틸 : 번들 테이블 얻기
 static JsonAssetBundleInfo GetBundleTable(SHTableData pTableData)
 {
     return(pTableData.GetTable <JsonAssetBundleInfo>());
 }
Пример #11
0
 // 유틸 : 서버 정보 테이블 얻기
 static JsonServerConfiguration GetServerConfigTable(SHTableData pTableData)
 {
     return(pTableData.GetTable <JsonServerConfiguration>());
 }
Пример #12
0
 // 유틸 : 클라이언트 정보 테이블 얻기
 static JsonClientConfiguration GetClientConfigTable(SHTableData pTableData)
 {
     return(pTableData.GetTable <JsonClientConfiguration>());
 }