/// <summary> /// 刷新同步数据 /// </summary> public void UpdateSyncData(SyncObject[] updateList) { for (int i = 0; i < updateList.Length; i++) { SyncObject updateObj = updateList[i]; SyncObject srcObj; if (updataList.TryGetValue(updateObj.serverID, out srcObj)) { srcObj.posX = updateObj.posX; srcObj.posY = updateObj.posY; srcObj.posZ = updateObj.posZ; srcObj.rotX = updateObj.rotX; srcObj.rotY = updateObj.rotY; srcObj.rotZ = updateObj.rotZ; srcObj.rotW = updateObj.rotW; } else { if (SyncCreater.instance != null && Connection.GetInstance().isHost == false) { if (updateObj.objectIndex >= 0) { SyncCreater.instance.ActiveObject(updateObj.objectIndex, updateObj.serverID); } else { ProtoCreateObject create = new ProtoCreateObject(); create.objectIndex = updateObj.objectIndex; create.hashCode = -1; create.serverID = updateObj.serverID; create.SetPos(updateObj.GetPos()); create.SetRot(updateObj.GetRot()); SyncCreater.instance.CreateObject(updateObj.objectIndex, updateObj.serverID, create); } } } updateObj.Recycle(); } }