You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
165 lines
4.7 KiB
165 lines
4.7 KiB
using AX.MessageSystem; |
|
using System; |
|
using System.Collections; |
|
using System.Collections.Generic; |
|
using UnityEngine; |
|
using UnityEngine.UI; |
|
/// <summary> |
|
/// 此脚本挂在PersonIconItem上 |
|
/// </summary> |
|
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<Image>(); |
|
selected.enabled = false; |
|
unselected = transform.Find("UnelectedBack").GetComponent<Image>(); |
|
userName = transform.Find("Text").GetComponent<Text>(); |
|
userName.text = userData.UserInfo.RealName; |
|
userBack = transform.Find("Image").GetComponent<Image>(); |
|
rectTransform = GetComponent<RectTransform>(); |
|
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); |
|
} |
|
/// <summary> |
|
/// 根据4G图传相机位置更新图标位置 |
|
/// </summary> |
|
/// <param name="obj"></param> |
|
void UpdatePos(IMessage obj) |
|
{ |
|
var pair = (MapIconPair)obj.Data; |
|
if (pair.gameObjID == userInfo.gameObjID && rectTransform!=null) |
|
{ |
|
rectTransform.anchoredPosition = new Vector2(pair.rectX, pair.rectY); |
|
} |
|
} |
|
/// <summary> |
|
/// 人员被选中时图标变为蓝色 |
|
/// </summary> |
|
/// <param name="obj"></param> |
|
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; |
|
} |
|
} |
|
} |
|
} |
|
}
|
|
|