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