예제 #1
0
 /// <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();
     }
 }