/// <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); } }