using System.Collections; using System.Collections.Generic; using UnityEngine; using XFramework; using XFramework.NetOuter; //车辆同步消息处理 public class CarSyncHandler : AbsSyncHandler { CarCtrl carCtrl; protected override void Awake() { base.Awake(); carCtrl = this.GetComponent(); JoinHandList();//加入消息分发队列 } //处理网络消息 public override void HandleSyncData(object msg, string msgType = null) { switch (msgType) { case "ActionSync"://操作行为同步 NetActionType action = (NetActionType)msg; HnadleSyncAction(action); break; case "Trans"://位置同步 TransGesture trans = (TransGesture)msg; this.transform.position = trans.GetPos(); this.transform.rotation = Quaternion.Euler(trans.GetRotAnlgle()); break; default: break; } } //处理行为同步 private void HnadleSyncAction(NetActionType action) { switch (action) { case NetActionType.getCtrl://其他人获取控制权限时 carCtrl.OtherUserCtrl = true; break; case NetActionType.yeildCtrl://其他人放弃控制权限时 carCtrl.OtherUserCtrl = false; break; case NetActionType.openAnima: carCtrl.ChangeOpening(); break; case NetActionType.closeAnima: carCtrl.ChangeOpening(); break; default: break; } } }