using UnityEngine; using System.Collections; using GCGame.Table; using Games.GlobeDefine; using UnityEngine.UI; using System.Collections.Generic; public class FashionViewPanelCtr : MonoBehaviour{ public Text fashionItemName; public UICameraTexture modelCamera; public static FashionViewPanelCtr Instance; private void Awake() { Instance = this; } private void OnDestroy() { Instance = null; } private void OnEnable() { SetBtnNameAndState(); } public List<GameObject> _MarkIconList; public List<Text> _MenuItemNameList; private int _CurItemVisualId = -1; public void ShowFashionView(Tab_CommonItem _CommonItem) { fashionItemName.text = _CommonItem.Name; Tab_CommonFashionItem commonFashionItem = TableManager.GetCommonFashionItemByID(_CommonItem.Id, 0); if(commonFashionItem == null) { OnBackClick(); return; } int _Prefession = -1; var _MainPlayer = Singleton<ObjManager>.Instance.MainPlayer; if(_MainPlayer != null) { _Prefession = _MainPlayer.Profession; }else { _Prefession = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Profession; } if(_Prefession == -1) { OnBackClick(); return; } switch(_CommonItem.SubClassID) { case (int)Games.Item.FashionSubClass.FASHION: { if(gameObject.activeInHierarchy) { _CurItemVisualId = commonFashionItem.ItemVisualId; OnProfessionBtnClick(_Prefession); } } break; default: break; } } public void SetBtnNameAndState() { for(int index = 0; index < (int)CharacterDefine.PROFESSION.MAX; index ++) { string _StrId = "#{" + (int)CharacterDefine.PROFESSION_DICNUM[index] + "}"; _MenuItemNameList[index].text = _MenuItemNameList[index + (int)CharacterDefine.PROFESSION.MAX].text = StrDictionary.GetClientDictionaryString(_StrId); } } public void OnProfessionBtnClick(int index ) { for(int _Index = 0; _Index < _MarkIconList.Count; _Index++) { _MarkIconList[_Index].SetActive(index == _Index); } //StopAllCoroutines(); if (_IsMarryView) { StartCoroutine(ShowFashionView(_CurFashionItemId, index)); }else { StartCoroutine(ShowSelfFashionView(_CurItemVisualId, index)); } } private int _CurFashionItemId = -1; private int _MarryItemDataId = -1; public void SetFashionView(int fahsionItemId, int profession, int marryItemId) { _IsMarryView = true; _CurFashionItemId = fahsionItemId; _MarryItemDataId = marryItemId; OnProfessionBtnClick(profession); } private bool _IsMarryView = false; IEnumerator ShowSelfFashionView(int _ItemVisualId, int profession) { yield return new WaitForEndOfFrame(); var itemVisual = TableManager.GetItemVisualByID(_ItemVisualId, 0); if (itemVisual == null) { yield break; } int charModelId = -1; switch (profession) { case (int)CharacterDefine.PROFESSION.XUANNV: charModelId = itemVisual.CharModelIDXiaoYao; break; case (int)CharacterDefine.PROFESSION.LIUSHAN: charModelId = itemVisual.CharModelIDTianShan; break; case (int)CharacterDefine.PROFESSION.SHUSHAN: charModelId = itemVisual.CharModelIDDaLi; break; case (int)CharacterDefine.PROFESSION.TIANJI: charModelId = itemVisual.CharModelIDShaoLin; break; } Tab_CharModel charModel = TableManager.GetCharModelByID(charModelId, 0); if(charModel == null) { yield break; } modelCamera.InitModelPath(charModel.ResPath, charModel, LoadAssetBundle.BUNDLE_PATH_MODEL, true); yield break; } IEnumerator ShowFashionView(int fahsionItemId, int profession) { yield return new WaitForEndOfFrame(); var fahionItemTab = TableManager.GetFashionItemByID(fahsionItemId, 0); if(fahionItemTab == null) { yield break; } Tab_CommonItem commonmItem = TableManager.GetCommonItemByID(_MarryItemDataId, 0); if (commonmItem != null) { fashionItemName.text = commonmItem.Name; } var itemVisual = TableManager.GetItemVisualByID(fahionItemTab.ItemVisualId, 0); if(itemVisual == null) { yield break; } int charModelId = -1; switch(profession) { case (int)CharacterDefine.PROFESSION.XUANNV: charModelId = itemVisual.CharModelIDXiaoYao; break; case (int)CharacterDefine.PROFESSION.LIUSHAN: charModelId = itemVisual.CharModelIDTianShan; break; case (int)CharacterDefine.PROFESSION.SHUSHAN: charModelId = itemVisual.CharModelIDDaLi; break; case (int)CharacterDefine.PROFESSION.TIANJI: charModelId = itemVisual.CharModelIDShaoLin; break; } if(charModelId == -1) { yield break; } Tab_CharModel charModel = TableManager.GetCharModelByID(charModelId, 0); if(charModel == null) { yield break; } modelCamera.InitModelPath(charModel.ResPath, charModel, LoadAssetBundle.BUNDLE_PATH_MODEL, true); yield break; } public void OnBackClick() { UIManager.CloseUI(UIInfo.FashionViewPanel); } private void OnDisable() { _IsMarryView = false; //隐藏的时候重置 } }