using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using XFramework; public class DoorSyncHandler : AbsSyncHandler { SimpleDoor simpleDoor; protected override void Awake() { base.Awake(); simpleDoor = 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: simpleDoor.SetGrabbable(false); break; case NetActionType.yeildCtrl: simpleDoor.SetGrabbable(true);//开启控制逻辑 simpleDoor.UnGrabbedCheckDoorPos();//同步开始检测位置 break; case NetActionType.openAnima: case NetActionType.closeAnima: case NetActionType.unGrabbedOnFree: case NetActionType.unGrabbedOnFixed: case NetActionType.OnUseable: case NetActionType.UnUseable: break; default: break; } } }