- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg) - LoginPanel: InputField placeholder本地化、字体颜色保持 - HistoryPanel: 用时数据本地化、placeholder本地化 - RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建) - AppraiseWindowBase: 评价等级本地化、操作消息重建 - EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized - StudentOperateRecorder: 新增InjectOperateMsgLocalized方法 - LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选 - 字体切换时保留颜色和verticalOverflow
69 lines
2.0 KiB
C#
69 lines
2.0 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using XFramework;
|
|
using VRTK;
|
|
using XFramework.NetOuter;
|
|
|
|
//VR可抓取物体交互同步发送类
|
|
public class VRGrabedSyncSender : StateSyncSenderBase
|
|
{
|
|
VRGrabInterractableBase grabGO;
|
|
|
|
TransGesture thisTransGesture;
|
|
Transform thisTrans;
|
|
protected override void Awake()
|
|
{
|
|
base.Awake();
|
|
thisTrans = this.transform;
|
|
grabGO = this.GetComponent<VRGrabInterractableBase>();
|
|
|
|
if (grabGO)
|
|
{
|
|
grabGO.OnGrabbedEvent += SendOnGrabbedSync;
|
|
grabGO.UnGrabbedEvent += SendUnGrabbedSync;
|
|
}
|
|
}
|
|
|
|
//放开时发送解除权限 并根据参数发送结束指令
|
|
private void SendUnGrabbedSync(bool onFixedPos)
|
|
{
|
|
ExitSendList();
|
|
ActionProtoBuilder protoBuilder;
|
|
if (onFixedPos)
|
|
protoBuilder = new ActionProtoBuilder(GroupLearnHelper.ThisIP, soleName, NetActionType.yeildCtrl | NetActionType.unGrabbedOnFixed);
|
|
else
|
|
protoBuilder = new ActionProtoBuilder(GroupLearnHelper.ThisIP, soleName, NetActionType.yeildCtrl | NetActionType.unGrabbedOnFree);
|
|
NetUDPManager.Instance.SendNetMess(protoBuilder.GetProto());
|
|
}
|
|
|
|
//抓取时发送获取权限 加入位置同步队列
|
|
private void SendOnGrabbedSync()
|
|
{
|
|
ActionProtoBuilder protoBuilder = new ActionProtoBuilder(GroupLearnHelper.ThisIP, soleName, NetActionType.getCtrl);
|
|
NetUDPManager.Instance.SendNetMess(protoBuilder.GetProto());
|
|
JoinSendList();
|
|
}
|
|
|
|
public override Type GetMsgType()
|
|
{
|
|
return typeof(TransGesture);
|
|
}
|
|
|
|
public override object GetSyncMsg()
|
|
{
|
|
thisTransGesture = new TransGesture(thisTrans.position, thisTrans.eulerAngles);
|
|
return thisTransGesture;
|
|
}
|
|
|
|
void OnDestroy()
|
|
{
|
|
if (grabGO)
|
|
{
|
|
grabGO.OnGrabbedEvent -= SendOnGrabbedSync;
|
|
grabGO.UnGrabbedEvent -= SendUnGrabbedSync;
|
|
}
|
|
}
|
|
}
|