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;
}
}
}
}
}