diff --git a/JNFrame2/AimingRig.csproj b/JNFrame2/AimingRig.csproj index ec4db832..ed44c4f3 100644 --- a/JNFrame2/AimingRig.csproj +++ b/JNFrame2/AimingRig.csproj @@ -806,12 +806,12 @@ C:\APP\UnityEdit\2021.3.33f1c1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Xml.Serialization.dll - - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll + + D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll + diff --git a/JNFrame2/Assembly-CSharp.csproj b/JNFrame2/Assembly-CSharp.csproj index d2c386ef..1e36fccb 100644 --- a/JNFrame2/Assembly-CSharp.csproj +++ b/JNFrame2/Assembly-CSharp.csproj @@ -688,6 +688,7 @@ + @@ -703,7 +704,6 @@ - diff --git a/JNFrame2/Assets/JNGame/Network/Action/NActionEnum.cs b/JNFrame2/Assets/JNGame/Network/Action/NActionEnum.cs index 9fb84b47..0d483c21 100644 --- a/JNFrame2/Assets/JNGame/Network/Action/NActionEnum.cs +++ b/JNFrame2/Assets/JNGame/Network/Action/NActionEnum.cs @@ -8,8 +8,8 @@ LocalClientConnect = 11, //客户端连接 (用于客户端通知) LocalClientDisconnect = 12, //客户端断开 (用于客户端通知) - ServerClientConnect = 13, //服务器客户端连接 (用于服务端通知) - ServerClientDisconnect = 14, //服务器客户端断开 (用于服务端通知) + ServerClientConnect = 13, //服务器客户端连接 (用于业务服务端通知) + ServerClientDisconnect = 14, //服务器客户端断开 (用于业务服务端通知) NSyncFrameStart = 100, //帧同步开始 NSyncFrameEnd = 101, //帧同步结束 diff --git a/JNFrame2/Assets/JNGame/Sync/App/Tile/Entity/Component/JNTileComponent.cs b/JNFrame2/Assets/JNGame/Sync/App/Tile/Entity/Component/JNTileComponent.cs index 9d060d17..80ffdf06 100644 --- a/JNFrame2/Assets/JNGame/Sync/App/Tile/Entity/Component/JNTileComponent.cs +++ b/JNFrame2/Assets/JNGame/Sync/App/Tile/Entity/Component/JNTileComponent.cs @@ -26,6 +26,6 @@ namespace JNGame.Sync.State.Tile.Entity.Component public virtual void OnTileEnter(){} public virtual void OnTileExit(){} - + public void OnTileSlaveExit(){} } } \ No newline at end of file diff --git a/JNFrame2/Assets/JNGame/Sync/App/Tile/Entity/JNTileEntity.cs b/JNFrame2/Assets/JNGame/Sync/App/Tile/Entity/JNTileEntity.cs index 628694dc..f8498b56 100644 --- a/JNFrame2/Assets/JNGame/Sync/App/Tile/Entity/JNTileEntity.cs +++ b/JNFrame2/Assets/JNGame/Sync/App/Tile/Entity/JNTileEntity.cs @@ -125,6 +125,7 @@ namespace JNGame.Sync.State.Tile.Entity if (isHost && !isContains) { OnTileExit(); + if (SyncTile.IsSlave) OnTileSlaveExit(); } } @@ -147,5 +148,13 @@ namespace JNGame.Sync.State.Tile.Entity } } + public virtual void OnTileSlaveExit() + { + //给组件生命周期 + foreach (var component in GetComponents()) + { + (component as JNTileComponent)?.OnTileSlaveExit(); + } + } } } \ No newline at end of file diff --git a/JNFrame2/Assets/JNGame/Sync/App/Tile/IJNTileCycle.cs b/JNFrame2/Assets/JNGame/Sync/App/Tile/IJNTileCycle.cs index c1dc7ebb..1bb93eb5 100644 --- a/JNFrame2/Assets/JNGame/Sync/App/Tile/IJNTileCycle.cs +++ b/JNFrame2/Assets/JNGame/Sync/App/Tile/IJNTileCycle.cs @@ -13,5 +13,10 @@ /// public void OnTileExit(); + /// + /// 从服务器 - 退出当前区块 + /// + public void OnTileSlaveExit(); + } } \ No newline at end of file diff --git a/JNFrame2/Assets/JNGame/Sync/Entity/JNContext.cs b/JNFrame2/Assets/JNGame/Sync/Entity/JNContext.cs index 8bc40bb8..e7639fae 100644 --- a/JNFrame2/Assets/JNGame/Sync/Entity/JNContext.cs +++ b/JNFrame2/Assets/JNGame/Sync/Entity/JNContext.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using DotRecast.Core.Collections; using Entitas; using JNGame.Sync.Entity; using JNGame.Sync.Frame.Entity.Component.Components; @@ -17,18 +18,20 @@ namespace JNGame.Sync.Frame.Entity //方便查抄的实体Map public Dictionary Entities = new (); - - public JNContext(): base((new T()).NewCLookup().Count, () => new T()) + + public JNContext() + : this((new T()).NewCLookup().Count, () => new T()) { - CLookup = (new T()).NewCLookup(); } - public JNContext(int totalComponents, Func entityFactory) : base(totalComponents, entityFactory) + public JNContext(int totalComponents, Func entityFactory) : this(totalComponents, 0, null, null, entityFactory) { } - public JNContext(int totalComponents, int startCreationIndex, ContextInfo contextInfo, Func aercFactory, Func entityFactory) : base(totalComponents, startCreationIndex, contextInfo, aercFactory, entityFactory) + public JNContext(int totalComponents, int startCreationIndex, ContextInfo contextInfo, Func aercFactory, Func entityFactory) + : base(totalComponents, startCreationIndex, contextInfo, aercFactory, entityFactory) { + CLookup = (new T()).NewCLookup(); } public JNSyncService GetSync() @@ -96,8 +99,20 @@ namespace JNGame.Sync.Frame.Entity BindLifeCycle(entity); return entity; } + + //生效延迟销毁 + public void DelayDestroy() + { + GetEntities().ForEach(child => + { + if (child.IsDelayDestroy) + { + child.Destroy(); + } + }); + } - //帧同步 生命周期 + //生命周期 public virtual void OnSyncStart(){} public virtual void OnSyncUpdate(int dt) @@ -122,6 +137,7 @@ namespace JNGame.Sync.Frame.Entity public abstract void InitReference(JNSyncService data); public void AddEntity(ulong id,JNEntity entity); public void RemoveEntity(ulong id); + public void DelayDestroy(); } diff --git a/JNFrame2/Assets/JNGame/Sync/Entity/JNContexts.cs b/JNFrame2/Assets/JNGame/Sync/Entity/JNContexts.cs index 8c83f118..b429e770 100644 --- a/JNFrame2/Assets/JNGame/Sync/Entity/JNContexts.cs +++ b/JNFrame2/Assets/JNGame/Sync/Entity/JNContexts.cs @@ -19,12 +19,18 @@ namespace JNGame.Sync.Entity } //给所有实体推帧 - public void Simulate() + public virtual void Simulate() { for (var i = 0; i < allContexts.Length; i++) { (allContexts[i] as IJNContext)?.OnSyncUpdate(Sync.DeltaTime); } + + //延迟销毁 + for (var i = 0; i < allContexts.Length; i++) + { + (allContexts[i] as IJNContext)?.DelayDestroy(); + } } public T GetContext() where T : IContext diff --git a/JNFrame2/Assets/JNGame/Sync/Entity/JNEntity.cs b/JNFrame2/Assets/JNGame/Sync/Entity/JNEntity.cs index 303cb636..a27c96f7 100644 --- a/JNFrame2/Assets/JNGame/Sync/Entity/JNEntity.cs +++ b/JNFrame2/Assets/JNGame/Sync/Entity/JNEntity.cs @@ -50,6 +50,8 @@ namespace JNGame.Sync.Entity /// public LVector3 Position => Transform.Position; + public bool IsDelayDestroy { get; private set; } = false; + public virtual void OnInit(IJNContext context,ulong id = 0) { Context = context; @@ -127,12 +129,18 @@ namespace JNGame.Sync.Entity public override void Destroy() { + //清理缓存 Context.RemoveEntity(Id); OnSyncDestroy(); RemoveAllComponents(); base.Destroy(); } + public void DelayDestroy() + { + IsDelayDestroy = true; + } + //生命周期 public virtual void OnSyncStart(){} @@ -146,7 +154,11 @@ namespace JNGame.Sync.Entity } public virtual void OnSyncDestroy() - {} + { + _id = 0; + IsDelayDestroy = false; + } + } } \ No newline at end of file diff --git a/JNFrame2/Assets/JNGame/Sync/System/Data/STileDataSystem.cs b/JNFrame2/Assets/JNGame/Sync/System/Data/STileDataSystem.cs index a9fb9a32..4437215c 100644 --- a/JNFrame2/Assets/JNGame/Sync/System/Data/STileDataSystem.cs +++ b/JNFrame2/Assets/JNGame/Sync/System/Data/STileDataSystem.cs @@ -148,7 +148,6 @@ namespace JNGame.Sync.System.Data if (NodeContext.Query(child.Key) is null) { Delete(child.Key); - return; } //主动更新 @@ -179,7 +178,7 @@ namespace JNGame.Sync.System.Data { var entity = NodeContext.Query(keyValue.Key); //给从服务器发送数据 - if (IsMaster && entity is not null && entity.IsSyncSlave) + if (IsMaster && ((entity is not null && entity.IsSyncSlave) || keyValue.Value == SDByteOperate.Delete)) { slave[keyValue.Key] = keyValue.Value; } diff --git a/JNFrame2/Assets/Scripts/AppGame/App.cs b/JNFrame2/Assets/Scripts/AppGame/App.cs index ed572954..c032b359 100644 --- a/JNFrame2/Assets/Scripts/AppGame/App.cs +++ b/JNFrame2/Assets/Scripts/AppGame/App.cs @@ -35,7 +35,6 @@ namespace AppGame public static readonly JNGClientGroup Client = new JNGClientGroup(); public static readonly JNGResService Resource = new JNGResService(); public static readonly JNGGame Game = new JNGGame(); - public static readonly JNGSocket Socket = new JNGSocket(); public static readonly JAPI API = new(new JAPIConfig(){BaseURL = "http://127.0.0.1:8080"}); public static readonly GAPI GAPI = new GAPI(); public static readonly EventDispatcher Event = new(); @@ -50,7 +49,6 @@ namespace AppGame Client, Resource, Game, - // Socket, }; } diff --git a/JNFrame2/Assets/Scripts/AppGame/Sync/JNGFrameSystem.cs b/JNFrame2/Assets/Scripts/AppGame/Sync/JNGFrameSystem.cs index 6881a94e..5755935d 100644 --- a/JNFrame2/Assets/Scripts/AppGame/Sync/JNGFrameSystem.cs +++ b/JNFrame2/Assets/Scripts/AppGame/Sync/JNGFrameSystem.cs @@ -89,7 +89,7 @@ namespace AppGame.Sync protected override void OnSendInput(JNFrameInputs inputs) { //发送帧数据给服务端 - App.Socket.Send((int)NActionEnum.NSyncFrameInput,inputs); + App.Business.Send((int)NActionEnum.NSyncFrameInput,inputs); } /// diff --git a/JNFrame2/Assets/Scripts/AppGame/Sync/JNGStateServerSystem.cs b/JNFrame2/Assets/Scripts/AppGame/Sync/JNGStateServerSystem.cs index f9afeb82..4f606973 100644 --- a/JNFrame2/Assets/Scripts/AppGame/Sync/JNGStateServerSystem.cs +++ b/JNFrame2/Assets/Scripts/AppGame/Sync/JNGStateServerSystem.cs @@ -89,7 +89,7 @@ namespace AppGame.Sync if (inputs.Inputs.Count > 0) { //发送帧数据给服务端 - App.Socket.Send((int)NActionEnum.NSyncFrameInput,inputs); + App.Business.Send((int)NActionEnum.NSyncFrameInput,inputs); } } diff --git a/JNFrame2/Assets/Scripts/AppGame/Systems/CServer/JNGClient.cs b/JNFrame2/Assets/Scripts/AppGame/Systems/CServer/JNGClient.cs index d20a723a..49269390 100644 --- a/JNFrame2/Assets/Scripts/AppGame/Systems/CServer/JNGClient.cs +++ b/JNFrame2/Assets/Scripts/AppGame/Systems/CServer/JNGClient.cs @@ -74,7 +74,7 @@ namespace AppGame.Systems private void OnNSyncStateDataUpdate(byte[] data) { var info = JNStateItemData.Parser.ParseFrom(data); - App.Game.AddState(info); + App.Game.SyncState(info,true,false); } @@ -92,7 +92,7 @@ namespace AppGame.Systems //生效全局回调 allData.Data.Data.ForEach(child => { - App.Game.AddState(child); + App.Game.SyncState(child,true,false); }); } diff --git a/JNFrame2/Assets/Scripts/AppGame/Systems/CServer/JNGServer.cs b/JNFrame2/Assets/Scripts/AppGame/Systems/CServer/JNGServer.cs index 230f5954..d9169dc7 100644 --- a/JNFrame2/Assets/Scripts/AppGame/Systems/CServer/JNGServer.cs +++ b/JNFrame2/Assets/Scripts/AppGame/Systems/CServer/JNGServer.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using AppGame.Sync; using Cysharp.Threading.Tasks; using DotRecast.Core.Collections; +using Game.Logic.System; using Google.Protobuf; using JNGame.Network; using JNGame.Sync.State.Tile; @@ -31,6 +32,7 @@ namespace AppGame.Systems.CServer AddListener((int)NActionEnum.NSyncTileInput,OnNSyncTileInput); AddListener((int)NActionEnum.NSyncTileAllUpdate,OnNSyncTileAllUpdate); AddListener((int)NActionEnum.NSyncTileGetTileInfo,OnNSyncTileGetTileInfo); + AddListener((int)NActionEnum.LocalClientDisconnect,OnLocalClientDisconnect); OnInit_Game(); @@ -38,6 +40,7 @@ namespace AppGame.Systems.CServer await base.OnInit(); } + public override void OnClose() { isInit = false; @@ -165,5 +168,23 @@ namespace AppGame.Systems.CServer } + /// + /// 有客户端断开连接 + /// + private void OnLocalClientDisconnect(JNServerParam args) + { + + if (App.Game.Server is null) return; + //只有绑定过ID 的客户端才可以执行操作 + if (!ids.ContainsKey(args.Client)) return; + App.Game.Server.GetSystems().ForEach(child => + { + child.OnPlayerExitServer(ids[args.Client]); + }); + + + } + + } } \ No newline at end of file diff --git a/JNFrame2/Assets/Scripts/AppGame/Systems/CServer/JNGTileClient.cs b/JNFrame2/Assets/Scripts/AppGame/Systems/CServer/JNGTileClient.cs index 1fc97de2..a0f18c24 100644 --- a/JNFrame2/Assets/Scripts/AppGame/Systems/CServer/JNGTileClient.cs +++ b/JNFrame2/Assets/Scripts/AppGame/Systems/CServer/JNGTileClient.cs @@ -74,7 +74,7 @@ namespace AppGame.Systems private void OnNSyncStateDataUpdate(byte[] data) { var info = JNStateItemData.Parser.ParseFrom(data); - App.Game.AddState(info); + App.Game.SyncState(info,false,true); } /// @@ -91,7 +91,7 @@ namespace AppGame.Systems //生效全局状态 allData.Data.Data.ForEach(child => { - App.Game.AddState(child); + App.Game.SyncState(child,false,true); }); } diff --git a/JNFrame2/Assets/Scripts/AppGame/Systems/JNGGame.cs b/JNFrame2/Assets/Scripts/AppGame/Systems/JNGGame.cs index ccbd1988..664bef7a 100644 --- a/JNFrame2/Assets/Scripts/AppGame/Systems/JNGGame.cs +++ b/JNFrame2/Assets/Scripts/AppGame/Systems/JNGGame.cs @@ -112,24 +112,30 @@ namespace AppGame.Systems /// /// 接收状态数据 /// - public void AddState(JNStateItemData frame) + public void SyncState(JNStateItemData frame,bool isSyncClient,bool isSyncServer) { var message = new Dictionary(); foreach (var data in frame.Messages) { message.Add(data.Key,data.Value.Data.ToByteArray()); } - - client?.GetSystems().ForEach(child => + + if (isSyncClient) { - if (child.NetID != frame.NetID) return; - child.OnInsertUBytes(message); - }); - server?.GetSystems().ForEach(child => + client?.GetSystems().ForEach(child => + { + if (child.NetID != frame.NetID) return; + child.OnInsertUBytes(message); + }); + } + if (isSyncServer) { - if (child.NetID != frame.NetID) return; - child.OnInsertUBytes(message); - }); + server?.GetSystems().ForEach(child => + { + if (child.NetID != frame.NetID) return; + child.OnInsertUBytes(message); + }); + } } } diff --git a/JNFrame2/Assets/Scripts/Game/Logic/Entity/EDContexts.cs b/JNFrame2/Assets/Scripts/Game/Logic/Entity/EDContexts.cs index 836d5d1e..2096ed4f 100644 --- a/JNFrame2/Assets/Scripts/Game/Logic/Entity/EDContexts.cs +++ b/JNFrame2/Assets/Scripts/Game/Logic/Entity/EDContexts.cs @@ -8,6 +8,8 @@ namespace Game.JNGFrame.Logic.Entity { public override IContext[] allContexts { get; } = { new EDNodeContext(),new EDPlayerContext(),new EDBossContext(), }; + + } } \ No newline at end of file diff --git a/JNFrame2/Assets/Scripts/Game/Logic/Entity/EDEntityBasis.cs b/JNFrame2/Assets/Scripts/Game/Logic/Entity/EDEntityBasis.cs index 4c184473..05967d13 100644 --- a/JNFrame2/Assets/Scripts/Game/Logic/Entity/EDEntityBasis.cs +++ b/JNFrame2/Assets/Scripts/Game/Logic/Entity/EDEntityBasis.cs @@ -2,6 +2,8 @@ using JNGame.Sync.Frame.Service; using JNGame.Sync.State.Tile; using JNGame.Sync.State.Tile.Entity; +using JNGame.Sync.System.Data; +using NotImplementedException = System.NotImplementedException; namespace Game.Logic.Entity { @@ -24,7 +26,17 @@ namespace Game.Logic.Entity } return LVector3.Down; } - - + + public override void TileSyncData(ISTileData data) + { + Transform.Position = data.GetDataPosition(); + } + + public override void OnTileSlaveExit() + { + base.OnTileSlaveExit(); + //从服务器 - 实体移出后立即删除 + Destroy(); + } } } \ No newline at end of file diff --git a/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/Component/Controller/EDPlayerController.cs b/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/Component/Controller/EDPlayerController.cs index b5cdd437..6786c18f 100644 --- a/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/Component/Controller/EDPlayerController.cs +++ b/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/Component/Controller/EDPlayerController.cs @@ -34,6 +34,10 @@ namespace Game.JNGFrame.Logic.Entity.Controller public override void OnSyncStart() { + + //Player 同步到从服务器 + TileEntity.IsSyncSlave = true; + base.OnSyncStart(); Move.Speed = LFloat.L10; } diff --git a/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/Contexts/EDPlayerContext.cs b/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/Contexts/EDPlayerContext.cs index 200b0845..406d8dad 100644 --- a/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/Contexts/EDPlayerContext.cs +++ b/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/Contexts/EDPlayerContext.cs @@ -1,4 +1,5 @@ -using Game.JNGFrame.Logic.Entity.Controller; +using Entitas; +using Game.JNGFrame.Logic.Entity.Controller; using Game.Logic.Entity.Nodes; using Game.Logic.Entity.Nodes.Component.Components; using JNGame.Sync.State.Tile.Entity; @@ -7,6 +8,7 @@ namespace Game.JNGFrame.Logic.Entity.Contexts { public sealed partial class EDPlayerContext : JNTileContext { + protected override EDPlayer BindComponent(EDPlayer entity) { base.BindComponent(entity); @@ -14,5 +16,6 @@ namespace Game.JNGFrame.Logic.Entity.Contexts entity.AddComponent(); return entity; } + } } \ No newline at end of file diff --git a/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/EDBoss.cs b/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/EDBoss.cs index f099029e..3e5ecd79 100644 --- a/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/EDBoss.cs +++ b/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/EDBoss.cs @@ -13,12 +13,6 @@ namespace Game.Logic.Entity.Nodes public EDMoveComponent Move => CLookup.Query(this); public EDBossController Controller => CLookup.Query(this); - public override void TileSyncData(ISTileData data) - { - var nodeData = data as EDBossData; - Transform.Position = nodeData.Value.Position.ToLVector3(); - } - public override JNEntityLookup NewCLookup() { return new EDBoosLookup(); diff --git a/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/EDNode.cs b/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/EDNode.cs index 7f8b2ba6..f7134a63 100644 --- a/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/EDNode.cs +++ b/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/EDNode.cs @@ -12,13 +12,6 @@ namespace Game.Logic.Entity.Nodes public EDMoveComponent Move => CLookup.Query(this); - - public override void TileSyncData(ISTileData data) - { - var nodeData = data as EDNodeData; - Transform.Position = nodeData.Value.Position.ToLVector3(); - } - public override JNEntityLookup NewCLookup() { return new EDNodeLookup(); diff --git a/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/EDPlayer.cs b/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/EDPlayer.cs index 37727cf3..e9a39c31 100644 --- a/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/EDPlayer.cs +++ b/JNFrame2/Assets/Scripts/Game/Logic/Entity/Nodes/EDPlayer.cs @@ -16,9 +16,9 @@ namespace Game.Logic.Entity.Nodes public override void TileSyncData(ISTileData data) { + base.TileSyncData(data); var nodeData = data as EDPlayerData; Controller.AuthBind(nodeData.Value.Auth.Value); - Transform.Position = nodeData.Value.Position.ToLVector3(); } public override JNEntityLookup NewCLookup() diff --git a/JNFrame2/Assets/Scripts/Game/Logic/System/DGBasisSystem.cs b/JNFrame2/Assets/Scripts/Game/Logic/System/DGBasisSystem.cs index c583c05d..2618bba4 100644 --- a/JNFrame2/Assets/Scripts/Game/Logic/System/DGBasisSystem.cs +++ b/JNFrame2/Assets/Scripts/Game/Logic/System/DGBasisSystem.cs @@ -30,5 +30,11 @@ namespace Game.Logic.System return LVector3.Down; } + /// + /// [状态同步生命周期] 玩家离开服务器 不在游戏线程中执行 + /// + public virtual void OnPlayerExitServer(int auth){} + + } } \ No newline at end of file diff --git a/JNFrame2/Assets/Scripts/Game/Logic/System/Logic/DPlayerSystem.cs b/JNFrame2/Assets/Scripts/Game/Logic/System/Logic/DPlayerSystem.cs index d4f34602..290de287 100644 --- a/JNFrame2/Assets/Scripts/Game/Logic/System/Logic/DPlayerSystem.cs +++ b/JNFrame2/Assets/Scripts/Game/Logic/System/Logic/DPlayerSystem.cs @@ -1,6 +1,5 @@ using DotRecast.Core.Collections; using Game.Input; -using Game.JNGFrame.Logic.Entity; using Game.JNGFrame.Logic.Entity.Contexts; using Game.Logic.Entity.Nodes; using JNGame.Math; @@ -40,5 +39,20 @@ namespace Game.Logic.System.Logic }); } + + + public override void OnPlayerExitServer(int auth) + { + base.OnPlayerExitServer(auth); + + NodeContext.GetHostEntities().ForEach(child => + { + if (child.Controller.Auth == auth) + { + child.DelayDestroy(); + } + }); + + } } } \ No newline at end of file diff --git a/JNFrame2/Assets/Scripts/Game/View/Entity/VDPlayers.cs b/JNFrame2/Assets/Scripts/Game/View/Entity/VDPlayers.cs index a0a7793d..26fe8843 100644 --- a/JNFrame2/Assets/Scripts/Game/View/Entity/VDPlayers.cs +++ b/JNFrame2/Assets/Scripts/Game/View/Entity/VDPlayers.cs @@ -14,6 +14,9 @@ namespace Game.JNGFrame.View.Entity public GameObject VWorld => App.Resource.VWorld; public GameObject Player => App.Resource.Player; public CinemachineFreeLook FreeLook => App.Resource.FreeLook; + + //本地玩家 视图 + private GameObject LocalView; public VDPlayers(SViewSystem root) : base(root) { @@ -67,9 +70,20 @@ namespace Game.JNGFrame.View.Entity public override GameObject NewView(EDPlayerData data) { - var gameObject = Object.Instantiate(Player, VWorld.transform); - gameObject.name = $"Player_{data.Id}"; - return gameObject; + GameObject view; + //如果这个角色是自己 则 直接拿自己的 View + if (App.IsClient() && data.Value.Auth == App.ClientID) + { + if (LocalView is null) LocalView = Object.Instantiate(Player, VWorld.transform); + view = LocalView; + } + else + { + view = Object.Instantiate(Player, VWorld.transform); + } + + view.name = $"Player_{data.Id}"; + return view; } public override EDPlayerData[] GetData() @@ -80,7 +94,10 @@ namespace Game.JNGFrame.View.Entity public override void ViewRemove(GameObject view) { view.transform.DOKill(); - Object.Destroy(view); + if (LocalView != view) + { + Object.Destroy(view); + } } } } \ No newline at end of file diff --git a/JNFrame2/BestHTTP.csproj b/JNFrame2/BestHTTP.csproj index e07bd8db..d94f6c4b 100644 --- a/JNFrame2/BestHTTP.csproj +++ b/JNFrame2/BestHTTP.csproj @@ -1979,8 +1979,8 @@ - + @@ -2809,12 +2809,12 @@ C:\APP\UnityEdit\2021.3.33f1c1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Xml.Serialization.dll - - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll + + D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll + diff --git a/JNFrame2/Logs/shadercompiler-UnityShaderCompiler.exe0.log b/JNFrame2/Logs/shadercompiler-UnityShaderCompiler.exe0.log index d9617fbf..e69de29b 100644 --- a/JNFrame2/Logs/shadercompiler-UnityShaderCompiler.exe0.log +++ b/JNFrame2/Logs/shadercompiler-UnityShaderCompiler.exe0.log @@ -1,3 +0,0 @@ -Base path: 'C:/APP/UnityEdit/2021.3.33f1c1/Editor/Data', plugins path 'C:/APP/UnityEdit/2021.3.33f1c1/Editor/Data/PlaybackEngines' -Cmd: initializeCompiler - diff --git a/JNFrame2/StompyRobot.SRDebugger.Editor.csproj b/JNFrame2/StompyRobot.SRDebugger.Editor.csproj index 8b66b138..017c3d1e 100644 --- a/JNFrame2/StompyRobot.SRDebugger.Editor.csproj +++ b/JNFrame2/StompyRobot.SRDebugger.Editor.csproj @@ -839,12 +839,12 @@ C:\APP\UnityEdit\2021.3.33f1c1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Xml.XPath.XDocument.dll - - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll + + D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll + D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.TestRunner.dll diff --git a/JNFrame2/StompyRobot.SRDebugger.csproj b/JNFrame2/StompyRobot.SRDebugger.csproj index f5c92a6b..14c03377 100644 --- a/JNFrame2/StompyRobot.SRDebugger.csproj +++ b/JNFrame2/StompyRobot.SRDebugger.csproj @@ -916,12 +916,12 @@ C:\APP\UnityEdit\2021.3.33f1c1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Xml.Serialization.dll - - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll + + D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll + diff --git a/JNFrame2/StompyRobot.SRF.Editor.csproj b/JNFrame2/StompyRobot.SRF.Editor.csproj index d9a80448..8ed38a64 100644 --- a/JNFrame2/StompyRobot.SRF.Editor.csproj +++ b/JNFrame2/StompyRobot.SRF.Editor.csproj @@ -830,12 +830,12 @@ C:\APP\UnityEdit\2021.3.33f1c1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Xml.XPath.XDocument.dll - - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll + + D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll + D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.TestRunner.dll diff --git a/JNFrame2/StompyRobot.SRF.csproj b/JNFrame2/StompyRobot.SRF.csproj index a1b170eb..d7f5537e 100644 --- a/JNFrame2/StompyRobot.SRF.csproj +++ b/JNFrame2/StompyRobot.SRF.csproj @@ -861,12 +861,12 @@ C:\APP\UnityEdit\2021.3.33f1c1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Xml.Serialization.dll - - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll + + D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll + diff --git a/JNFrame2/UniTask.Addressables.csproj b/JNFrame2/UniTask.Addressables.csproj index ac2ca5f7..a331c4e7 100644 --- a/JNFrame2/UniTask.Addressables.csproj +++ b/JNFrame2/UniTask.Addressables.csproj @@ -806,12 +806,12 @@ C:\APP\UnityEdit\2021.3.33f1c1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Xml.Serialization.dll - - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll + + D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll + diff --git a/JNFrame2/UniTask.DOTween.csproj b/JNFrame2/UniTask.DOTween.csproj index 00a41b0e..2cf761ae 100644 --- a/JNFrame2/UniTask.DOTween.csproj +++ b/JNFrame2/UniTask.DOTween.csproj @@ -806,12 +806,12 @@ C:\APP\UnityEdit\2021.3.33f1c1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Xml.Serialization.dll - - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll + + D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll + diff --git a/JNFrame2/UniTask.Editor.csproj b/JNFrame2/UniTask.Editor.csproj index 838d965b..49045b5d 100644 --- a/JNFrame2/UniTask.Editor.csproj +++ b/JNFrame2/UniTask.Editor.csproj @@ -826,12 +826,12 @@ C:\APP\UnityEdit\2021.3.33f1c1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Xml.XPath.XDocument.dll - - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll + + D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll + D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.TestRunner.dll diff --git a/JNFrame2/UniTask.Linq.csproj b/JNFrame2/UniTask.Linq.csproj index 1cd1ea69..25015907 100644 --- a/JNFrame2/UniTask.Linq.csproj +++ b/JNFrame2/UniTask.Linq.csproj @@ -878,12 +878,12 @@ C:\APP\UnityEdit\2021.3.33f1c1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Xml.Serialization.dll - - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll + + D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll + diff --git a/JNFrame2/UniTask.TextMeshPro.csproj b/JNFrame2/UniTask.TextMeshPro.csproj index f1e4a588..66736b24 100644 --- a/JNFrame2/UniTask.TextMeshPro.csproj +++ b/JNFrame2/UniTask.TextMeshPro.csproj @@ -810,12 +810,12 @@ D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.TextMeshPro.dll - - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll + + D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll + diff --git a/JNFrame2/UniTask.csproj b/JNFrame2/UniTask.csproj index b3457ec5..ef7114f0 100644 --- a/JNFrame2/UniTask.csproj +++ b/JNFrame2/UniTask.csproj @@ -878,12 +878,12 @@ C:\APP\UnityEdit\2021.3.33f1c1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Xml.Serialization.dll - - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll - D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll + + D:\Jisol\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll + diff --git a/JNFrame2/UserSettings/Layouts/default-2021.dwlt b/JNFrame2/UserSettings/Layouts/default-2021.dwlt index 1dbf4745..3f2bb3f4 100644 --- a/JNFrame2/UserSettings/Layouts/default-2021.dwlt +++ b/JNFrame2/UserSettings/Layouts/default-2021.dwlt @@ -119,7 +119,7 @@ MonoBehaviour: m_MinSize: {x: 400, y: 200} m_MaxSize: {x: 32384, y: 16192} vertical: 0 - controlID: 22 + controlID: 82 --- !u!114 &6 MonoBehaviour: m_ObjectHideFlags: 52 @@ -144,7 +144,7 @@ MonoBehaviour: m_MinSize: {x: 300, y: 200} m_MaxSize: {x: 24288, y: 16192} vertical: 1 - controlID: 23 + controlID: 83 --- !u!114 &7 MonoBehaviour: m_ObjectHideFlags: 52 @@ -170,7 +170,7 @@ MonoBehaviour: m_MinSize: {x: 300, y: 100} m_MaxSize: {x: 24288, y: 8096} vertical: 0 - controlID: 24 + controlID: 28 --- !u!114 &8 MonoBehaviour: m_ObjectHideFlags: 52 @@ -243,8 +243,8 @@ MonoBehaviour: y: 0 width: 609 height: 528 - m_MinSize: {x: 102, y: 121} - m_MaxSize: {x: 4002, y: 4021} + m_MinSize: {x: 100, y: 100} + m_MaxSize: {x: 4000, y: 4000} m_ActualView: {fileID: 20} m_Panes: - {fileID: 20} @@ -394,23 +394,23 @@ MonoBehaviour: m_SceneHierarchy: m_TreeViewState: scrollPos: {x: 0, y: 0} - m_SelectedIDs: - m_LastClickedID: 0 - m_ExpandedIDs: d2e4ffff28e5ffffe6e7ffffeae7ffff14eaffff6aeaffff28edffff2cedffffa8f6fffffef6ffffbcf9ffffc0f9ffff1afbffff + m_SelectedIDs: 169d0000 + m_LastClickedID: 40214 + m_ExpandedIDs: f2beffff0ecaffff64caffff22cdffff26cdffff94e1ffff80e5ffff26f6ffff7cf6ffff3af9ffff3ef9ffff1afbffff12910000ee9c0000 m_RenameOverlay: m_UserAcceptedRename: 0 - m_Name: - m_OriginalName: + m_Name: World + m_OriginalName: World m_EditFieldRect: serializedVersion: 2 x: 0 y: 0 width: 0 height: 0 - m_UserData: 0 + m_UserData: 40174 m_IsWaitingForDelay: 0 m_IsRenaming: 0 - m_OriginalEventType: 11 + m_OriginalEventType: 0 m_IsRenamingFilename: 0 m_ClientGUIView: {fileID: 8} m_SearchString: @@ -734,9 +734,9 @@ MonoBehaviour: m_PlayAudio: 0 m_AudioPlay: 0 m_Position: - m_Target: {x: 66.17166, y: 74.382965, z: -68.47802} + m_Target: {x: 104.11677, y: 87.14451, z: -68.7427} speed: 2 - m_Value: {x: 66.17166, y: 74.382965, z: -68.47802} + m_Value: {x: 104.11677, y: 87.14451, z: -68.7427} m_RenderMode: 0 m_CameraMode: drawMode: 0 @@ -783,13 +783,13 @@ MonoBehaviour: m_GridAxis: 1 m_gridOpacity: 0.5 m_Rotation: - m_Target: {x: -0.2639696, y: -0.106222175, z: 0.029262349, w: -0.95822775} + m_Target: {x: -0.35256705, y: -0.0022476835, z: 0.000847305, w: -0.9357961} speed: 2 - m_Value: {x: -0.26396698, y: -0.106221125, z: 0.02926206, w: -0.9582183} + m_Value: {x: -0.35256287, y: -0.002247657, z: 0.000847295, w: -0.93578506} m_Size: - m_Target: 2.598076 + m_Target: 0.8660254 speed: 2 - m_Value: 2.598076 + m_Value: 0.8660254 m_Ortho: m_Target: 0 speed: 2 @@ -897,9 +897,9 @@ MonoBehaviour: m_IsLocked: 0 m_FolderTreeState: scrollPos: {x: 0, y: 0} - m_SelectedIDs: 26e80000 - m_LastClickedID: 59430 - m_ExpandedIDs: 000000000a740000 + m_SelectedIDs: 8e740000 + m_LastClickedID: 29838 + m_ExpandedIDs: 000000002274000000ca9a3b m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -927,7 +927,7 @@ MonoBehaviour: scrollPos: {x: 0, y: 0} m_SelectedIDs: m_LastClickedID: 0 - m_ExpandedIDs: 000000000a740000 + m_ExpandedIDs: 0000000022740000 m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -952,9 +952,9 @@ MonoBehaviour: m_Icon: {fileID: 0} m_ResourceFile: m_ListAreaState: - m_SelectedInstanceIDs: f62f0100 - m_LastClickedInstanceID: 77814 - m_HadKeyboardFocusLastEvent: 0 + m_SelectedInstanceIDs: ce2e0000 + m_LastClickedInstanceID: 11982 + m_HadKeyboardFocusLastEvent: 1 m_ExpandedInstanceIDs: c623000000000000 m_RenameOverlay: m_UserAcceptedRename: 0 diff --git a/JNFrame2/obj/Debug/AimingRig.csproj.AssemblyReference.cache b/JNFrame2/obj/Debug/AimingRig.csproj.AssemblyReference.cache index bbee1800..5af6fbdb 100644 Binary files a/JNFrame2/obj/Debug/AimingRig.csproj.AssemblyReference.cache and b/JNFrame2/obj/Debug/AimingRig.csproj.AssemblyReference.cache differ diff --git a/JNFrame2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache b/JNFrame2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache index 81972b0c..de34fb27 100644 Binary files a/JNFrame2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache and b/JNFrame2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache differ diff --git a/JNFrame2/obj/Debug/Assembly-CSharp-firstpass.csproj.AssemblyReference.cache b/JNFrame2/obj/Debug/Assembly-CSharp-firstpass.csproj.AssemblyReference.cache index b56a2f3f..b1bbdf75 100644 Binary files a/JNFrame2/obj/Debug/Assembly-CSharp-firstpass.csproj.AssemblyReference.cache and b/JNFrame2/obj/Debug/Assembly-CSharp-firstpass.csproj.AssemblyReference.cache differ diff --git a/JNFrame2/obj/Debug/Assembly-CSharp.csproj.AssemblyReference.cache b/JNFrame2/obj/Debug/Assembly-CSharp.csproj.AssemblyReference.cache index b6faeea2..135af0a7 100644 Binary files a/JNFrame2/obj/Debug/Assembly-CSharp.csproj.AssemblyReference.cache and b/JNFrame2/obj/Debug/Assembly-CSharp.csproj.AssemblyReference.cache differ diff --git a/JNFrame2/obj/Debug/BestHTTP.csproj.AssemblyReference.cache b/JNFrame2/obj/Debug/BestHTTP.csproj.AssemblyReference.cache index 5ad5d628..22b8e2ad 100644 Binary files a/JNFrame2/obj/Debug/BestHTTP.csproj.AssemblyReference.cache and b/JNFrame2/obj/Debug/BestHTTP.csproj.AssemblyReference.cache differ diff --git a/JNFrame2/obj/Debug/StompyRobot.SRDebugger.Editor.csproj.AssemblyReference.cache b/JNFrame2/obj/Debug/StompyRobot.SRDebugger.Editor.csproj.AssemblyReference.cache index ae875719..ddda92a7 100644 Binary files a/JNFrame2/obj/Debug/StompyRobot.SRDebugger.Editor.csproj.AssemblyReference.cache and b/JNFrame2/obj/Debug/StompyRobot.SRDebugger.Editor.csproj.AssemblyReference.cache differ diff --git a/JNFrame2/obj/Debug/StompyRobot.SRDebugger.csproj.AssemblyReference.cache b/JNFrame2/obj/Debug/StompyRobot.SRDebugger.csproj.AssemblyReference.cache index bbee1800..5af6fbdb 100644 Binary files a/JNFrame2/obj/Debug/StompyRobot.SRDebugger.csproj.AssemblyReference.cache and b/JNFrame2/obj/Debug/StompyRobot.SRDebugger.csproj.AssemblyReference.cache differ diff --git a/JNFrame2/obj/Debug/StompyRobot.SRF.Editor.csproj.AssemblyReference.cache b/JNFrame2/obj/Debug/StompyRobot.SRF.Editor.csproj.AssemblyReference.cache index ae875719..ddda92a7 100644 Binary files a/JNFrame2/obj/Debug/StompyRobot.SRF.Editor.csproj.AssemblyReference.cache and b/JNFrame2/obj/Debug/StompyRobot.SRF.Editor.csproj.AssemblyReference.cache differ diff --git a/JNFrame2/obj/Debug/StompyRobot.SRF.csproj.AssemblyReference.cache b/JNFrame2/obj/Debug/StompyRobot.SRF.csproj.AssemblyReference.cache index bbee1800..5af6fbdb 100644 Binary files a/JNFrame2/obj/Debug/StompyRobot.SRF.csproj.AssemblyReference.cache and b/JNFrame2/obj/Debug/StompyRobot.SRF.csproj.AssemblyReference.cache differ diff --git a/JNFrame2/obj/Debug/UniTask.Addressables.csproj.AssemblyReference.cache b/JNFrame2/obj/Debug/UniTask.Addressables.csproj.AssemblyReference.cache index 5ad5d628..22b8e2ad 100644 Binary files a/JNFrame2/obj/Debug/UniTask.Addressables.csproj.AssemblyReference.cache and b/JNFrame2/obj/Debug/UniTask.Addressables.csproj.AssemblyReference.cache differ diff --git a/JNFrame2/obj/Debug/UniTask.DOTween.csproj.AssemblyReference.cache b/JNFrame2/obj/Debug/UniTask.DOTween.csproj.AssemblyReference.cache index 295c09c5..e21455af 100644 Binary files a/JNFrame2/obj/Debug/UniTask.DOTween.csproj.AssemblyReference.cache and b/JNFrame2/obj/Debug/UniTask.DOTween.csproj.AssemblyReference.cache differ diff --git a/JNFrame2/obj/Debug/UniTask.Editor.csproj.AssemblyReference.cache b/JNFrame2/obj/Debug/UniTask.Editor.csproj.AssemblyReference.cache index 66bac86c..e2c9f1e7 100644 Binary files a/JNFrame2/obj/Debug/UniTask.Editor.csproj.AssemblyReference.cache and b/JNFrame2/obj/Debug/UniTask.Editor.csproj.AssemblyReference.cache differ diff --git a/JNFrame2/obj/Debug/UniTask.Linq.csproj.AssemblyReference.cache b/JNFrame2/obj/Debug/UniTask.Linq.csproj.AssemblyReference.cache index 5ad5d628..22b8e2ad 100644 Binary files a/JNFrame2/obj/Debug/UniTask.Linq.csproj.AssemblyReference.cache and b/JNFrame2/obj/Debug/UniTask.Linq.csproj.AssemblyReference.cache differ diff --git a/JNFrame2/obj/Debug/UniTask.TextMeshPro.csproj.AssemblyReference.cache b/JNFrame2/obj/Debug/UniTask.TextMeshPro.csproj.AssemblyReference.cache index 1788975d..99ea1b87 100644 Binary files a/JNFrame2/obj/Debug/UniTask.TextMeshPro.csproj.AssemblyReference.cache and b/JNFrame2/obj/Debug/UniTask.TextMeshPro.csproj.AssemblyReference.cache differ diff --git a/JNFrame2/obj/Debug/UniTask.csproj.AssemblyReference.cache b/JNFrame2/obj/Debug/UniTask.csproj.AssemblyReference.cache index 5ad5d628..22b8e2ad 100644 Binary files a/JNFrame2/obj/Debug/UniTask.csproj.AssemblyReference.cache and b/JNFrame2/obj/Debug/UniTask.csproj.AssemblyReference.cache differ