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.
166 lines
4.7 KiB
166 lines
4.7 KiB
4 years ago
|
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;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|