Exemple #1
0
    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);
    }
Exemple #2
0
    public IEnumerator  generageCharacterFormGirlDataSynchronous(GirlData girlData)
    {
        currentCharacter = "a001";

        if (mCharacterConfig == null)
        {
            mCharacterConfig = Globals.Instance.MDataTableManager.GetConfig <CharacterConfig>();
        }
//		mCharacterConfig.GetCharacterObject(girlData.BasicData.LogicID,out mCharacterObj);

        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)));
            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;
            root.transform.localEulerAngles = Vector3.zero;
        }


        ///2-13 衣服//
        for (int i = mInedxIter; i < 19; i++)
        {
            Debug.Log("i is : " + mInedxIter.ToString());
            ///内衣内裤袜子///
            if (i == 5 || i == 6 || i == 7)
            {
                string textureName = mCharacterObj.PartInfoList[i].partModelName;
                switch (mCharacterObj.PartInfoList[i].partID)
                {
                case 6:
                    mBaraTextureName = textureName;
                    break;

                case 7:
                    mUnderTextureName = textureName;
                    break;

                case 8:
                    mSockTextureName = textureName;
                    break;
                }
                continue;
            }

            ItemSlotData itemSlotData = null;
            girlData.ClothDatas.TryGetValue(mCharacterObj.PartInfoList[i].partID, out itemSlotData);
            if (itemSlotData != null)
            {
                if (mItemConfig == null)
                {
                    mItemConfig = Globals.Instance.MDataTableManager.GetConfig <ItemConfig> ();
                }

                ItemConfig.ItemElement element = null;
                bool IsHas = mItemConfig.GetItemElement(itemSlotData.MItemData.BasicData.LogicID, out element);
                if (!IsHas)
                {
                    yield return(false);
                }
                string partModelName = element.ModelName;

                if (partModelName != "" && partModelName != "0")
                {
                    partModelName = partModelName.ToLower();
                    CharacterElement partModelElement = sortedElements[currentCharacter][partModelName];
                    yield return(partModelElement.CreateWWWBundle(AssetbundleBaseURL, GameDefines.AssetBundleVersion));
                }
            }
            else
            {
                string partModelName = mCharacterObj.PartInfoList[i].partModelName;
                if (partModelName != "" && partModelName != "0")
                {
                    partModelName = partModelName.ToLower();
                    CharacterElement partModelElement = sortedElements[currentCharacter][partModelName];
                    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);
                ItemConfig.ItemElement element = null;
                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;
            ChangePartTexture(mCharacterObj.PartInfoList[i].partID, partModelName);
        }


        yield break;
    }
Exemple #3
0
    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();
    }