using AX.MessageSystem; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// /// 此脚本挂在PersonIconItem上 /// public class PersonIconItemCtrl : MonoBehaviour { private Image selected; private Image unselected; private Image userBack; private Text userName; public GameObject FireMan; public RectTransform rectTransform; public UserData userData; public CloneGameObjInfo userInfo; private bool isSelected = false; //是否被选中 private bool isHiding = false; //开启查看模式时需隐藏地图图标 // Use this for initialization void Start () { } public void SetIconInfo(CloneGameObjInfo userinfo,UserData userdata) { userInfo = userinfo; userData = userdata; selected = transform.Find("SelectedBack").GetComponent(); selected.enabled = false; unselected = transform.Find("UnelectedBack").GetComponent(); userName = transform.Find("Text").GetComponent(); userName.text = userData.UserInfo.RealName; userBack = transform.Find("Image").GetComponent(); rectTransform = GetComponent(); MessageDispatcher.AddListener("4GIconUpdate", UpdatePos); MessageDispatcher.AddListener("4GPersonSelected", IconSelected); MessageDispatcher.AddListener("4GLookOver", HideIcon); MessageDispatcher.AddListener("4GCancelLookOver", ShowIcon); if (FourthGLookOver.lookingOver) //如果正在查看模式 { selected.enabled = false; //隐藏地图图标 unselected.enabled = false; userName.enabled = false; userBack.enabled = false; isHiding = true; } } private void ShowIcon(IMessage obj) { if (userBack) { userBack.enabled = true; } if (userName) { userName.enabled = true; } if (isSelected) { if (selected) { selected.enabled = true; } if (unselected) { unselected.enabled = false; } } else { if (selected) { selected.enabled = false; } if (unselected) { unselected.enabled = true; } } isHiding = false; } private void HideIcon(IMessage obj) { if (userBack) { userBack.enabled = false; } if (userName) { userName.enabled = false; } if (selected) { selected.enabled = false; } if (unselected) { unselected.enabled = false; } isHiding = true; } void OnDestroy() { MessageDispatcher.RemoveListener("4GIconUpdate", UpdatePos); MessageDispatcher.RemoveListener("4GPersonSelected", IconSelected); MessageDispatcher.RemoveListener("4GLookOver", HideIcon); MessageDispatcher.RemoveListener("4GCancelLookOver", ShowIcon); } /// /// 根据4G图传相机位置更新图标位置 /// /// void UpdatePos(IMessage obj) { var pair = (MapIconPair)obj.Data; if (pair.gameObjID == userInfo.gameObjID && rectTransform!=null) { rectTransform.anchoredPosition = new Vector2(pair.rectX, pair.rectY); } } /// /// 人员被选中时图标变为蓝色 /// /// void IconSelected(IMessage obj) { var pair = (MapSelectedPair)obj.Data; if(pair.gameObjID == userInfo.gameObjID) { if(pair.isOn == true) { isSelected = true; transform.SetAsLastSibling(); //在最上层显示 if (isHiding) { selected.enabled = false; unselected.enabled = false; } else { selected.enabled = true; unselected.enabled = false; } } else { isSelected = false; if (isHiding) { selected.enabled = false; unselected.enabled = false; } else { selected.enabled = false; unselected.enabled = true; } } } } }