网演高层钦州
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

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