//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, October 25, 2017 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; namespace vnxbqy.UI { public class TeammateBriefInfoBehaviour : MonoBehaviour { [SerializeField] ImageEx m_Icon; [SerializeField] Image m_LevelBG; [SerializeField] TextEx m_Level; [SerializeField] Transform m_Matching; TeamModel model { get { return ModelCenter.Instance.GetModel(); } } Teammate teammate = null; public void Display(Teammate _mate) { teammate = _mate; model.matchingStateChangeEvent -= OnMatchMember; model.teammateLevelUpEvent -= OnTeammateLevelUp; model.teammateOnOffLineEvent -= OnTeammateOnOffLine; if (teammate != null) { m_Icon.SetActive(true); m_LevelBG.SetActive(true); m_Level.SetActive(true); m_Matching.SetActive(false); m_Icon.SetSprite(GeneralDefine.GetOtherJobHeadPortrait(teammate.job, 0)); m_Icon.gray = !teammate.online; m_LevelBG.SetSprite("UnNirvana"); m_Level.text = teammate.level.ToString(); m_Level.colorType = teammate.id == (int)PlayerDatas.Instance.baseData.PlayerID ? TextColType.Green : TextColType.White; model.teammateLevelUpEvent += OnTeammateLevelUp; model.teammateOnOffLineEvent += OnTeammateOnOffLine; } else { m_LevelBG.SetActive(false); m_Level.SetActive(false); m_Icon.SetActive(false); m_Matching.SetActive(model.isMatching); model.matchingStateChangeEvent += OnMatchMember; } } public void Dispose() { teammate = null; model.matchingStateChangeEvent -= OnMatchMember; model.teammateLevelUpEvent -= OnTeammateLevelUp; model.teammateOnOffLineEvent -= OnTeammateOnOffLine; } private void OnTeammateLevelUp(int _playerId) { if (teammate == null || teammate.id != _playerId) { return; } m_LevelBG.SetSprite("UnNirvana"); m_Level.text = teammate.level.ToString(); m_Level.colorType = teammate.id == (int)PlayerDatas.Instance.baseData.PlayerID ? TextColType.Green : TextColType.White; } private void OnTeammateOnOffLine(int _playerId) { if (teammate == null || teammate.id != _playerId) { return; } m_Icon.gray = !teammate.online; } private void OnMatchMember() { m_Matching.SetActive(model.isMatching); m_LevelBG.SetActive(false); m_Level.SetActive(false); m_Icon.SetActive(false); } } }