- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg) - LoginPanel: InputField placeholder本地化、字体颜色保持 - HistoryPanel: 用时数据本地化、placeholder本地化 - RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建) - AppraiseWindowBase: 评价等级本地化、操作消息重建 - EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized - StudentOperateRecorder: 新增InjectOperateMsgLocalized方法 - LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选 - 字体切换时保留颜色和verticalOverflow
94 lines
2.4 KiB
C#
94 lines
2.4 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using XFramework;
|
|
using XFramework.NetOuter;
|
|
|
|
/// <summary>
|
|
/// 车辆同步信息发送
|
|
/// </summary>
|
|
public class CarSyncSender : StateSyncSenderBase
|
|
{
|
|
CarCtrl carCtrl;
|
|
TransGesture trans;
|
|
bool waitYield;//等待到达指定目标点后 放弃控制权
|
|
// Start is called before the first frame update
|
|
protected override void Awake()
|
|
{
|
|
base.Awake();
|
|
carCtrl = this.GetComponent<CarCtrl>();
|
|
carCtrl.selcetChangedEvent += SelectChanged;
|
|
}
|
|
|
|
//车辆选中状态变化
|
|
private void SelectChanged(bool value)
|
|
{
|
|
if (value)//选中时
|
|
{
|
|
carCtrl.carStateChangedEvent += CarStateChanged;
|
|
waitYield = false;//关闭放弃标志
|
|
SendSyncAction(NetActionType.getCtrl);
|
|
}
|
|
else
|
|
{
|
|
if (carCtrl.CarState == CarState.moving)//移动中 标记为待放开 移动完成后 放开控制权
|
|
{
|
|
waitYield = true;
|
|
}
|
|
else
|
|
{
|
|
YieldContrl();
|
|
}
|
|
}
|
|
}
|
|
|
|
//车辆状态变化
|
|
private void CarStateChanged(CarState state)
|
|
{
|
|
switch (state)
|
|
{
|
|
case CarState.moving://移动时加入状态同步队列
|
|
JoinSendList();
|
|
break;
|
|
case CarState.parking://驻车时移除队列
|
|
ExitSendList();
|
|
if (waitYield)//驻车时如果被标记了等待放开 则放开控制权
|
|
{
|
|
YieldContrl();
|
|
}
|
|
break;
|
|
case CarState.openingAnim:
|
|
SendSyncAction(NetActionType.openAnima);
|
|
break;
|
|
case CarState.closingAnim:
|
|
SendSyncAction(NetActionType.closeAnima);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//放弃控制权
|
|
private void YieldContrl()
|
|
{
|
|
carCtrl.carStateChangedEvent -= CarStateChanged;
|
|
SendSyncAction(NetActionType.yeildCtrl);
|
|
}
|
|
|
|
public override Type GetMsgType()
|
|
{
|
|
return typeof(TransGesture);
|
|
}
|
|
|
|
|
|
public override object GetSyncMsg()
|
|
{
|
|
trans = new TransGesture(this.transform.position,this.transform.eulerAngles);
|
|
return trans;
|
|
}
|
|
|
|
}
|