Example #1
0
 /// <summary>
 /// 创建模型,根据模型的皮肤
 /// </summary>
 /// <param name="unBeastTypeId">神兽模型id</param>
 /// <param name="nSuitId">皮肤id</param>
 /// <param name="callBack">回调</param>
 public void Dowork(int unBeastTypeId, int nSuitId, Action <GameObject> callBack)
 {
     if (this.m_unBeastTypeId == unBeastTypeId && this.m_nSuitId == nSuitId)
     {
         if (null != callBack)
         {
             if (this.m_bFinished)
             {
                 callBack(this.m_gameObject);
             }
             else
             {
                 this.m_callBackFinish = (Action <GameObject>)Delegate.Combine(this.m_callBackFinish, callBack);
             }
         }
     }
     else
     {
         //在创建模型前先卸载之前的缓存模型
         this.Unload();
         this.m_unBeastTypeId  = unBeastTypeId;
         this.m_nSuitId        = nSuitId;
         this.m_callBackFinish = callBack;
         //DataSuit dataByID = DataSuitManager.Instance.GetDataByID(nSuitId);
         DataSuit dataByID = GameData <DataSuit> .dataMap[nSuitId];
         if (null != dataByID)
         {
             //合并类型
             this.m_nMergeType = dataByID.Merge;
             List <string> arrayList = DataExtensions.GetArrayList(dataByID.Texture);
             if (arrayList.Count != 0)
             {
                 //加载模型皮肤需要的贴图
                 for (int i = 0; i < arrayList.Count; i++)
                 {
                     string relativeUrl = string.Format("Texture/SuitTexture/{0}", arrayList[i]);
                     this.m_listAssetRequestSuitTexture.Add(ResourceManager.singleton.LoadTexture(relativeUrl, new AssetRequestFinishedEventHandler(this.OnLoadSuitTextureFinished), AssetPRI.DownloadPRI_Plain));
                 }
             }
             //加载皮肤模型
             if (!string.IsNullOrEmpty(dataByID.SuitPath))
             {
                 string relativeUrl2 = string.Format("Data/Model/BeastModel/{0}", dataByID.SuitPath);
                 this.m_assetRequestSuitModel = ResourceManager.singleton.LoadModel(relativeUrl2, new AssetRequestFinishedEventHandler(this.OnLoadSuitModelFinished), AssetPRI.DownloadPRI_Plain);
             }
         }
         //获取基础模型路径
         this.m_strBaseModelPath = AvatarTool.GetBasePath(nSuitId, unBeastTypeId);
         //加载基础模型
         this.m_assetRequestBaseModel = ResourceManager.singleton.LoadModel(this.m_strBaseModelPath, new AssetRequestFinishedEventHandler(this.OnLoadBaseModelFinished), AssetPRI.DownloadPRI_Plain);
     }
 }