public IEnumerator generateCharacterFromConfigSynchronous(int characterId, string animationName) { currentCharacter = "a001"; if (!characterBaseWWWs.ContainsKey(currentCharacter)) { var www = WWW.LoadFromCacheOrDownload(AssetbundleBaseURL + currentCharacter + "_characterbase.assetbundle", GameDefines.AssetBundleVersion); characterBaseWWWs.Add(currentCharacter, www); yield return(characterBaseWWWs[currentCharacter]); } if (!characterBaseRequests.ContainsKey(currentCharacter)) { //AssetBundleRequest requestCBase = ; characterBaseRequests.Add(currentCharacter, CurrentCharacterBase.assetBundle.LoadAssetAsync("characterbase", typeof(GameObject))); //if (!characterBaseRequests[currentCharacter].isDone) // return false; yield return(characterBaseRequests[currentCharacter]); } if (hips == null || hips.Length == 0) { GameObject root = (GameObject)Object.Instantiate(characterBaseRequests[currentCharacter].asset); animator = root.GetComponent <Animator>(); root.name = currentCharacter; root.transform.parent = target; for (int i = 0; i < PartListLength; i++) { GameObject partObj = new GameObject(); partObj.name = InnerPartList[i]; partObj.transform.parent = root.transform; //为新建立的 GameObject 加入 SkinnedMeshRenderer,并将此 SkinnedMeshRenderer 存入 targetSmr targetSmr.Add(InnerPartList[i], partObj.AddComponent <SkinnedMeshRenderer>()); } //从目标物件取得骨架资料 (Female_Hips 的全部物件) hips = root.GetComponentsInChildren <Transform>(); root.transform.localPosition = Vector3.zero; } if (mCharacterConfig == null) { mCharacterConfig = Globals.Instance.MDataTableManager.GetConfig <CharacterConfig>(); } mCharacterConfig.GetCharacterObject(characterId, out mCharacterObj); if (mItemConfig == null) { mItemConfig = Globals.Instance.MDataTableManager.GetConfig <ItemConfig>(); } ItemConfig.ItemElement element = null; for (int i = 0; i < 19; i++) { ///内衣内裤袜子/// if (i == 5 || i == 6 || i == 7) { continue; } string partModelName = mCharacterObj.PartInfoList[i].partModelName; if (partModelName != "" && partModelName != "0") { partModelName = partModelName.ToLower(); CharacterElement partModelElement = sortedElements[currentCharacter][partModelName]; //if(!partModelElement.WWWBundle.isDone) //return false; yield return(partModelElement.CreateWWWBundle(AssetbundleBaseURL, GameDefines.AssetBundleVersion)); } } ///20-25 肉体 //// for (int i = 13; i < 19; i++) { string partModelName = mCharacterObj.PartInfoList[i].partModelName; if (partModelName != "" && partModelName != "0") { string partName = partModelName.Substring(0, partModelName.Length - 3); string partIDStr = partModelName.Substring(partModelName.Length - 3, 3); partModelName = partModelName.ToLower(); CharacterElement partModelElement = sortedElements[currentCharacter][partModelName]; GameObject go = (GameObject)partModelElement.GetWWWBundle().assetBundle.LoadAsset("rendererobject", typeof(GameObject)); SkinnedMeshRenderer smr = (SkinnedMeshRenderer)go.GetComponent <Renderer>(); smr.updateWhenOffscreen = true; StringHolder stringHolder = (StringHolder)partModelElement.GetWWWBundle().assetBundle.LoadAsset("bonenames", typeof(StringHolder)); ChangePartSynchronous(smr, partName, partIDStr, mCharacterObj.PartInfoList[i].partID, false, stringHolder.content); } } ///1-13 头发和衣服// for (int i = 0; i < 13; i++) { string partModelName = mCharacterObj.PartInfoList[i].partModelName; ///内衣内裤袜子/// if (i == 5 || i == 6 || i == 7) { continue; } if (partModelName != "" && partModelName != "0") { string partName = partModelName.Substring(0, partModelName.Length - 3); string partIDStr = partModelName.Substring(partModelName.Length - 3, 3); bool IsHas = mItemConfig.GetItemElement(mCharacterObj.PartInfoList[i].ItemID, out element); string outTextureName0 = ""; string outTextureName1 = ""; if (IsHas) { outTextureName0 = element.OutTextureName0; outTextureName1 = element.OutTextureName1; } partModelName = partModelName.ToLower(); CharacterElement partModelElement = sortedElements[currentCharacter][partModelName]; GameObject go = (GameObject)partModelElement.GetWWWBundle().assetBundle.LoadAsset("rendererobject", typeof(GameObject)); SkinnedMeshRenderer smr = (SkinnedMeshRenderer)go.GetComponent <Renderer>(); smr.updateWhenOffscreen = true; StringHolder stringHolder = (StringHolder)partModelElement.GetWWWBundle().assetBundle.LoadAsset("bonenames", typeof(StringHolder)); ChangePartSynchronous(smr, partName, partIDStr, mCharacterObj.PartInfoList[i].partID, false, stringHolder.content, outTextureName0, outTextureName1); } } for (int i = 5; i < 8; i++) { string partModelName = mCharacterObj.PartInfoList[i].partModelName; if (partModelName != "") { ChangePartTexture(mCharacterObj.PartInfoList[i].partID, partModelName); } } mCharacterConfigId = characterId; yield return(true); }
public void ShowSuccessReward(sg.GS2C_Task_Complete_Res res) { this.gameObject.SetActive(true); foreach (sg.GS2C_Task_Complete_Res.TaskReward reward in res.rewards) { if (reward.rewardType == (int)TaskRewardTypeEnum.GET_ARTTST) { RewardObj.SetActive(false); FansRewardObj.SetActive(true); WarshipConfig config = Globals.Instance.MDataTableManager.GetConfig <WarshipConfig>(); WarshipConfig.WarshipObject warshipElement = null; config.GetWarshipElement(reward.itemId, out warshipElement); if (warshipElement == null) { return; } FansName.text = warshipElement.Name; FansIcon.mainTexture = Resources.Load("Icon/FansIcon/" + warshipElement.Fans_Icon, typeof(Texture2D)) as Texture2D; return; } } RewardObj.SetActive(true); FansRewardObj.SetActive(false); mCurrentfinishLv = res.finishLv; TaskID = res.taskId; CompleteBtn.Data = res.nextTaskId; TaskConfig task = Globals.Instance.MDataTableManager.GetConfig <TaskConfig>(); bool hasData = task.GetTaskObject(res.taskId, out element); if (!hasData) { return; } ScoreSlider.value = (EliminationMgr.Score * 1f) / EliminationMgr.Instance.star3; float baseX = 630f / EliminationMgr.Instance.star3; float baseX2 = 630f / 2f; float star1X = baseX * EliminationMgr.Instance.star1 - baseX2; Star1Obj.transform.localPosition = new Vector3(star1X, Star1Obj.transform.localPosition.y, Star1Obj.transform.localPosition.z); float star2X = baseX * EliminationMgr.Instance.star2 - baseX2; Star2Obj.transform.localPosition = new Vector3(star2X, Star2Obj.transform.localPosition.y, Star2Obj.transform.localPosition.z); float star3X = baseX * EliminationMgr.Instance.star3 - baseX2; Star3Obj.transform.localPosition = new Vector3(star3X, Star3Obj.transform.localPosition.y, Star3Obj.transform.localPosition.z); if (EliminationMgr.Score >= EliminationMgr.Instance.star1) { Star1Anim.SetActive(true); } if (EliminationMgr.Score >= EliminationMgr.Instance.star2) { Star2Anim.SetActive(true); } if (EliminationMgr.Score >= EliminationMgr.Instance.star3) { Star3Anim.SetActive(true); } CurrentScore.text = EliminationMgr.Score.ToString(); List <string[]> RewardArray = ParsingRewards(element.Rewards); if (RewardArray.Count > 0) { for (int i = 0; i < RewardArray.Count; i++) { switch (StrParser.ParseDecInt(RewardArray[i][0], -1)) { case (int)TaskRewardTypeEnum.ROLE_ATTR: switch (StrParser.ParseDecInt(RewardArray[i][1], -1)) { case (int)BaseRewardType.MONEY: MoneyBaseReward = StrParser.ParseDecInt(RewardArray[i][2], -1); break; case (int)BaseRewardType.DIAMOND: DiamondBaseReward = StrParser.ParseDecInt(RewardArray[i][2], -1); break; } break; case (int)TaskRewardTypeEnum.FANS_NUM: FansBaseReward = StrParser.ParseDecInt(RewardArray[i][2], -1); break; } } } NGUITools.SetActive(RewardItem1.gameObject, false); NGUITools.SetActive(RewardItem2.gameObject, false); int RewardItemState = 0; foreach (sg.GS2C_Task_Complete_Res.TaskReward reward in res.rewards) { switch (reward.rewardType) { case (int)TaskRewardTypeEnum.ITEM: ItemConfig item = Globals.Instance.MDataTableManager.GetConfig <ItemConfig>(); ItemConfig.ItemElement ItemEle = null; bool hasDataItem = item.GetItemElement(reward.itemId, out ItemEle); if (!hasDataItem) { return; } if (RewardItemState == 0) { RewardItemState = 1; NGUITools.SetActive(RewardItem1.gameObject, true); RewardItem1.mainTexture = Resources.Load("Icon/ItemIcon/" + ItemEle.Icon, typeof(Texture2D)) as Texture2D; if (reward.num > 1) { RewardItem1Name.text = Globals.Instance.MDataTableManager.GetWordText(reward.itemId) + "X" + reward.num; } else { RewardItem1Name.text = Globals.Instance.MDataTableManager.GetWordText(reward.itemId); } addItemOne = RewardItem1; addItemNameLabelOne = RewardItem1Name; addMoneyList.Add(1, reward.clothAddMoney); Debug.Log(" 1 -- reward.clothAddMoney = " + reward.clothAddMoney); } else { NGUITools.SetActive(RewardItem2.gameObject, true); RewardItem2.mainTexture = Resources.Load("Icon/ItemIcon/" + ItemEle.Icon, typeof(Texture2D)) as Texture2D; if (reward.num > 1) { RewardItem2Name.text = Globals.Instance.MDataTableManager.GetWordText(reward.itemId) + "X" + reward.num; } else { RewardItem2Name.text = Globals.Instance.MDataTableManager.GetWordText(reward.itemId); } addItemTwo = RewardItem2; addItemNameLabelTwo = RewardItem2Name; addMoneyList.Add(2, reward.clothAddMoney); Debug.Log(" 2 -- reward.clothAddMoney = " + reward.clothAddMoney); } break; case (int)TaskRewardTypeEnum.POSTURE: break; case (int)TaskRewardTypeEnum.ROLE_ATTR: switch (reward.itemId) { case (int)BaseRewardType.MONEY: MoneyAppraisalReward = reward.num - MoneyBaseReward; if (MoneyAppraisalReward > 0) { RewardMoneyNum.text = "[000000]" + MoneyBaseReward + "[-]" + "[00A542]" + " + " + MoneyAppraisalReward.ToString() + "[-]"; } else { RewardMoneyNum.text = "[000000]" + MoneyBaseReward + "[-]"; } break; case (int)BaseRewardType.DIAMOND: DiamondAppraisalReward = reward.num - DiamondBaseReward; if (DiamondAppraisalReward > 0) { RewardDiamondNum.text = "[000000]" + DiamondBaseReward + "[-]" + "[00A542]" + " + " + DiamondAppraisalReward.ToString() + "[-]"; } else { RewardDiamondNum.text = "[000000]" + DiamondBaseReward + "[-]"; } break; case (int)BaseRewardType.ACTING: break; case (int)BaseRewardType.CHARM: break; } break; case (int)TaskRewardTypeEnum.FANS_NUM: FansAppraisalReward = reward.num - FansBaseReward; if (FansAppraisalReward > 0) { RewardFansNum.text = "[000000]" + FansBaseReward.ToString() + "[-]" + "[00A542]" + " + " + FansAppraisalReward.ToString() + "[-]"; } else { RewardFansNum.text = "[000000]" + FansBaseReward.ToString() + "[-]"; } break; case (int)TaskRewardTypeEnum.UNKNOWNTYPE: break; } } addMoney(); }