tanghai 2 éve
szülő
commit
2e8781300e
21 módosított fájl, 154 hozzáadás és 49 törlés
  1. 1 1
      Unity/Assets/Scripts/Codes/Hotfix/Client/LockStep/BattleSceneClientUpdaterSystem.cs
  2. 13 7
      Unity/Assets/Scripts/Codes/Hotfix/Share/LockStep/BattleSceneSystem.cs
  3. 16 0
      Unity/Assets/Scripts/Codes/Hotfix/Share/LockStep/LSUnitInputComponentSystem.cs
  4. 3 0
      Unity/Assets/Scripts/Codes/Hotfix/Share/LockStep/LSUnitInputComponentSystem.cs.meta
  5. 11 0
      Unity/Assets/Scripts/Codes/Model/Generate/Client/Message/LockStepOuter_C_11001.cs.meta
  6. 11 0
      Unity/Assets/Scripts/Codes/Model/Generate/Client/Message/OuterMessage_C_10001.cs.meta
  7. 11 0
      Unity/Assets/Scripts/Codes/Model/Generate/ClientServer/Message/InnerMessage_S_20001.cs.meta
  8. 11 0
      Unity/Assets/Scripts/Codes/Model/Generate/ClientServer/Message/LockStepInner_S_21001.cs.meta
  9. 11 0
      Unity/Assets/Scripts/Codes/Model/Generate/ClientServer/Message/LockStepOuter_C_11001.cs.meta
  10. 11 0
      Unity/Assets/Scripts/Codes/Model/Generate/ClientServer/Message/OuterMessage_C_10001.cs.meta
  11. 11 0
      Unity/Assets/Scripts/Codes/Model/Generate/Server/Message/InnerMessage_S_20001.cs.meta
  12. 11 0
      Unity/Assets/Scripts/Codes/Model/Generate/Server/Message/LockStepInner_S_21001.cs.meta
  13. 11 0
      Unity/Assets/Scripts/Codes/Model/Generate/Server/Message/LockStepOuter_C_11001.cs.meta
  14. 11 0
      Unity/Assets/Scripts/Codes/Model/Generate/Server/Message/OuterMessage_C_10001.cs.meta
  15. 0 28
      Unity/Assets/Scripts/Codes/Model/Share/LockStep/BattleScene.cs
  16. 0 0
      Unity/Assets/Scripts/Codes/Model/Share/LockStep/IActorRoom.cs
  17. 0 0
      Unity/Assets/Scripts/Codes/Model/Share/LockStep/IActorRoom.cs.meta
  18. 8 0
      Unity/Assets/Scripts/Codes/Model/Share/LockStep/LSUnitInputComponent.cs
  19. 3 0
      Unity/Assets/Scripts/Codes/Model/Share/LockStep/LSUnitInputComponent.cs.meta
  20. 0 8
      Unity/Assets/Scripts/Codes/Model/Share/LockStep/Message.meta
  21. 0 5
      Unity/Assets/Scripts/Core/LockStep/LSUpdater.cs

+ 1 - 1
Unity/Assets/Scripts/Codes/Hotfix/Client/LockStep/BattleSceneClientUpdaterSystem.cs

@@ -30,7 +30,7 @@ namespace ET.Client
             if (frameBuffer.NowFrame < frameBuffer.RealFrame + frameBuffer.PredictionCount)
             {
                 int j = 0;
-                for (int i = frameBuffer.NowFrame; i < frameBuffer.RealFrame + frameBuffer.PredictionCount; ++i)
+                for (int i = frameBuffer.NowFrame; i <= frameBuffer.RealFrame + frameBuffer.PredictionCount; ++i)
                 {
                     if (++j % 5 == 0)
                     {

+ 13 - 7
Unity/Assets/Scripts/Codes/Hotfix/Share/LockStep/BattleSceneSystem.cs

@@ -11,21 +11,27 @@ namespace ET
             {
                 LockStepUnitInfo unitInfo = room2CBattleStart.UnitInfo[i];
                 UnitFFactory.Init(self.LSWorld, unitInfo);
-                self.SlotIds.Add(i, unitInfo.PlayerId);
             }
         }
 
 
         public static void Update(this BattleScene self, OneFrameMessages oneFrameMessages)
         {
-            // 保存当前帧场景数据
-            self.FrameBuffer.SaveDate(self.FrameBuffer.NowFrame, MongoHelper.Serialize(self.LSWorld));
-            
-            
-            // 处理Message
+            // 设置输入到每个LSUnit身上
+            LSWorld lsWorld = self.LSWorld;
+            LSUnitComponent unitComponent = lsWorld.GetComponent<LSUnitComponent>();
+            foreach (var kv in oneFrameMessages.InputInfos)
+            {
+                LSUnit lsUnit = unitComponent.GetChild<LSUnit>(kv.Key);
+                LSInputInfo lsInputInfo = lsUnit.GetComponent<LSUnitInputComponent>().LSInputInfo;
+                lsInputInfo.V = kv.Value.V;
+                lsInputInfo.Button = kv.Value.Button;
+            }
             
+            lsWorld.Updater.Update();
             
-            self.LSWorld.Updater.Update();
+            // 保存当前帧场景数据
+            self.FrameBuffer.SaveDate(self.FrameBuffer.NowFrame, MongoHelper.Serialize(self.LSWorld));
         }
 
         // 回滚

+ 16 - 0
Unity/Assets/Scripts/Codes/Hotfix/Share/LockStep/LSUnitInputComponentSystem.cs

@@ -0,0 +1,16 @@
+using System;
+
+namespace ET
+{
+    public static class LSUnitInputComponentSystem
+    {
+        [ObjectSystem]
+        public class LSUpdateSystem: LSUpdateSystem<LSUnitInputComponent>
+        {
+            protected override void LSUpdate(LSUnitInputComponent self)
+            {
+                
+            }
+        }
+    }
+}

+ 3 - 0
Unity/Assets/Scripts/Codes/Hotfix/Share/LockStep/LSUnitInputComponentSystem.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 3d5a539bb83c43dbbcb520bd5cc06744
+timeCreated: 1682051449

+ 11 - 0
Unity/Assets/Scripts/Codes/Model/Generate/Client/Message/LockStepOuter_C_11001.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f13c8ac43732d4554b0f3ecbf6fb71d5
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 11 - 0
Unity/Assets/Scripts/Codes/Model/Generate/Client/Message/OuterMessage_C_10001.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 64806f5ea712581408fecb08728105c0
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 11 - 0
Unity/Assets/Scripts/Codes/Model/Generate/ClientServer/Message/InnerMessage_S_20001.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e0b72155012589840a78d9d64f29bdce
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 11 - 0
Unity/Assets/Scripts/Codes/Model/Generate/ClientServer/Message/LockStepInner_S_21001.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9a6810f88918d4d20ae7b353895f1af1
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 11 - 0
Unity/Assets/Scripts/Codes/Model/Generate/ClientServer/Message/LockStepOuter_C_11001.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f493672bf2fa046739a1f8fbf88a28c3
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 11 - 0
Unity/Assets/Scripts/Codes/Model/Generate/ClientServer/Message/OuterMessage_C_10001.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9a420edf6a4a57a4c8d98e5acdffcfe9
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 11 - 0
Unity/Assets/Scripts/Codes/Model/Generate/Server/Message/InnerMessage_S_20001.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 77ca20f99751331479808fb220803c31
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 11 - 0
Unity/Assets/Scripts/Codes/Model/Generate/Server/Message/LockStepInner_S_21001.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f5da6702a31064c42833a7f9147016ce
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 11 - 0
Unity/Assets/Scripts/Codes/Model/Generate/Server/Message/LockStepOuter_C_11001.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8fdb6d43fedc543daa3824a136bf364f
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 11 - 0
Unity/Assets/Scripts/Codes/Model/Generate/Server/Message/OuterMessage_C_10001.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c0d2c0be69c996a4488513ae7ade42f3
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 0 - 28
Unity/Assets/Scripts/Codes/Model/Share/LockStep/BattleScene.cs

@@ -6,32 +6,6 @@ namespace ET
     [ComponentOf(typeof(Scene))]
     public class BattleScene: Entity, IScene, IAwake, IUpdate
     {
-        public readonly struct SlotIdPair
-        {
-            private readonly long[] SlotIds = new long[LSConstValue.MatchCount];
-            private readonly Dictionary<long, int> IdSlots = new(LSConstValue.MatchCount);
-
-            public SlotIdPair()
-            {
-            }
-
-            public long GetIdBySlot(int slot)
-            {
-                return this.SlotIds[slot];
-            }
-            
-            public int GetSlotById(long id)
-            {
-                return this.IdSlots[id];
-            }
-
-            public void Add(int slot, long id)
-            {
-                this.SlotIds[slot] = id;
-                this.IdSlots[id] = slot;
-            }
-        }
-        
         public SceneType SceneType { get; set; } = SceneType.Battle;
         public string Name { get; set; }
         
@@ -53,7 +27,5 @@ namespace ET
         public long StartTime { get; set; }
 
         public FrameBuffer FrameBuffer { get; } = new();
-
-        public SlotIdPair SlotIds { get; } = new();
     }
 }

+ 0 - 0
Unity/Assets/Scripts/Codes/Model/Share/LockStep/Message/IActorRoom.cs → Unity/Assets/Scripts/Codes/Model/Share/LockStep/IActorRoom.cs


+ 0 - 0
Unity/Assets/Scripts/Codes/Model/Share/LockStep/Message/IActorRoom.cs.meta → Unity/Assets/Scripts/Codes/Model/Share/LockStep/IActorRoom.cs.meta


+ 8 - 0
Unity/Assets/Scripts/Codes/Model/Share/LockStep/LSUnitInputComponent.cs

@@ -0,0 +1,8 @@
+namespace ET
+{
+    public class LSUnitInputComponent: LSEntity, ILSUpdate
+    {
+        public LSInputInfo LSInputInfo { get; set; } = new LSInputInfo();
+
+    }
+}

+ 3 - 0
Unity/Assets/Scripts/Codes/Model/Share/LockStep/LSUnitInputComponent.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: e0df77bdfbbb4a5fa2e9de116dabaaa2
+timeCreated: 1682051388

+ 0 - 8
Unity/Assets/Scripts/Codes/Model/Share/LockStep/Message.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: ec7ec19a01fc746faad23d8859935dfe
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 5
Unity/Assets/Scripts/Core/LockStep/LSUpdater.cs

@@ -9,8 +9,6 @@ namespace ET
         [BsonIgnore]
         public LSWorld Parent { get; set; }
         
-        public int Frame { get; private set; }
-        
         private SortedSet<long> updateIds = new();
 
         private Queue<long> addUpdateIds = new();
@@ -19,9 +17,6 @@ namespace ET
 
         public void Update()
         {
-            ++this.Frame;
-
-            // 让id保持从小到大update,后加进来的在一帧后面Update
             while (this.addUpdateIds.Count > 0)
             {
                 this.updateIds.Add(this.addUpdateIds.Dequeue());