- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg) - LoginPanel: InputField placeholder本地化、字体颜色保持 - HistoryPanel: 用时数据本地化、placeholder本地化 - RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建) - AppraiseWindowBase: 评价等级本地化、操作消息重建 - EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized - StudentOperateRecorder: 新增InjectOperateMsgLocalized方法 - LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选 - 字体切换时保留颜色和verticalOverflow
126 lines
3.9 KiB
C#
126 lines
3.9 KiB
C#
using UnityEngine;
|
||
using UnityEngine.Events;
|
||
using UnityEngine.UI;
|
||
|
||
///用于展示数据的预制件控制类
|
||
///提供一个Image,一定数量Text[] (由预制件决定数量),并提供两个按钮的交互功能(按钮具体功能由外部注册事件决定)
|
||
///当前当前用于展示 用户信息和学习记录
|
||
public class MessagePrefabCtrl : MonoBehaviour
|
||
{
|
||
|
||
public Text[] MessTexts;
|
||
public Image icon;
|
||
public MessType messType = MessType.user;
|
||
private User userMsg;
|
||
|
||
//string eventTriggerID;
|
||
public Button button1;
|
||
public Button button2;
|
||
int id=-1;//记录数据标识
|
||
|
||
private void Awake()
|
||
{
|
||
if (messType == MessType.user)
|
||
{
|
||
button1 = this.transform.Find("Button_remove")?.GetComponent<Button>();
|
||
button2 = this.transform.Find("Button_editor")?.GetComponent<Button>();
|
||
}
|
||
}
|
||
|
||
void Start()
|
||
{
|
||
switch (messType)
|
||
{
|
||
//case MessType.result:
|
||
// this.transform.Find("Button_remove").GetComponent<Button>().onClick.AddListener(DeleteResult);
|
||
// this.transform.Find("Button_editor").GetComponent<Button>().onClick.AddListener(ShowRecord);
|
||
// break;
|
||
case MessType.user:
|
||
this.transform.Find("Button_remove").GetComponent<Button>().onClick.AddListener(DeleteUser);
|
||
this.transform.Find("Button_editor").GetComponent<Button>().onClick.AddListener(EditUser);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 显示文字信息
|
||
/// </summary>
|
||
/// <param name="index">该信息所在的标识</param>
|
||
/// <param name="msgs"></param>
|
||
public void SetTextMsg(int id, string[] msgs)
|
||
{
|
||
this.id = id;
|
||
if (msgs.Length != MessTexts.Length)
|
||
{
|
||
Debug.LogError("传入的文字信息和展示文字组件数量不符合!");
|
||
return;
|
||
}
|
||
|
||
for (int i = 0; i < MessTexts.Length; i++)
|
||
{
|
||
MessTexts[i].text = msgs[i];
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 显示图标
|
||
/// </summary>
|
||
/// <param name="iconSprite"></param>
|
||
public void SetImageSprite(Sprite iconSprite)
|
||
{
|
||
icon.sprite = iconSprite;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 注册两个按钮事件 注册时自动清空之前注册的事件
|
||
/// </summary>
|
||
/// <param name="id">预制件的标识 用于事件触发时分辨触发者的身份</param>
|
||
/// <param name="button1Click"> 按钮1的触发事件</param>
|
||
/// <param name="button2Click">按钮2的触发事件</param>
|
||
public void RegisteButtonEvent(UnityAction<int> button1Click, UnityAction<int> button2Click)
|
||
{
|
||
//注册前清空上次的事件 避免触发异常情况
|
||
button1.onClick.RemoveAllListeners();
|
||
button2.onClick.RemoveAllListeners();
|
||
//eventTriggerID = id;
|
||
button1.onClick.AddListener(() => button1Click.Invoke(id));
|
||
button2.onClick.AddListener(() => button2Click.Invoke(id));
|
||
}
|
||
|
||
//编辑用户
|
||
private void EditUser()
|
||
{
|
||
//this.transform.root.GetComponentInChildren<UserManagerPanel>().EditStudent(userMsg,this);
|
||
EventCenter.Instance.EventTrigger<User,MessagePrefabCtrl>("EditUser", userMsg,this);
|
||
}
|
||
|
||
//删除用户
|
||
private void DeleteUser()
|
||
{
|
||
//EventCenter.Instance.EventTrigger<string>("DeleteUser", userMsg.user);
|
||
this.GetComponentInParent<EnquireConntentCtrl>().DeleteOneStMessage(userMsg.user,this.gameObject);//删除一条数据需要更新面板
|
||
DBManager.Instance.DeleteUser(userMsg);
|
||
|
||
}
|
||
|
||
|
||
//显示账户信息
|
||
public void SetMessage(User studentMess,Sprite iconSprite=null)
|
||
{
|
||
userMsg = studentMess;
|
||
if(iconSprite!=null)
|
||
icon.sprite = iconSprite;
|
||
MessTexts[0].text = studentMess.user;
|
||
MessTexts[1].text = studentMess.password;
|
||
}
|
||
|
||
private void OnDisable()
|
||
{
|
||
id = -1;
|
||
}
|
||
|
||
|
||
}
|