Files
JJBB/Assets/Project/Script/GUI/Marry/FashionViewPanelCtr.cs
2024-08-23 15:49:34 +08:00

205 lines
6.0 KiB
C#

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; //隐藏的时候重置
}
}