准备server gamelogic

master
sunqinzhe 3 days ago
parent 6256dcb52b
commit 6d912005a5
  1. 3
      Assets/Scenes/NetworkDriverAsset.asset
  2. 42
      Assets/Scenes/SampleScene.unity
  3. 11
      Assets/Scripts/Client/ClientMain.cs
  4. 19
      Assets/Scripts/Client/ClientUpdateJob.cs
  5. 1
      Assets/Scripts/EntityType.cs
  6. 21
      Assets/Scripts/Main.cs
  7. 11
      Assets/Scripts/Main.cs.meta
  8. 18
      Assets/Scripts/Server/GameLogic.cs
  9. 3
      Assets/Scripts/Server/GameLogic.cs.meta
  10. 2
      Assets/Scripts/Server/ServerConnectionJob.cs
  11. 17
      Assets/Scripts/Server/ServerGameLogicJobs.cs
  12. 3
      Assets/Scripts/Server/ServerGameLogicJobs.cs.meta
  13. 2
      Assets/Scripts/Server/ServerMain.cs
  14. 2
      Assets/Scripts/Server/ServerReceiveJob.cs
  15. 2
      Assets/Scripts/Server/ServerSendJob.cs
  16. 10
      Assets/Scripts/Server/WorldManager.cs
  17. 3
      Assets/Scripts/Server/WorldManager.cs.meta

@ -12,7 +12,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: b79190dcfae6a2f4fbdfc9deccf00ef7, type: 3} m_Script: {fileID: 11500000, guid: b79190dcfae6a2f4fbdfc9deccf00ef7, type: 3}
m_Name: NetworkDriverAsset m_Name: NetworkDriverAsset
m_EditorClassIdentifier: m_EditorClassIdentifier:
useSimulator: 0 port: 7777
useSimulator: 1
packetDelayMs: 500 packetDelayMs: 500
packetJitterMs: 300 packetJitterMs: 300
packetDropPercentage: 10 packetDropPercentage: 10

@ -227,7 +227,6 @@ GameObject:
- component: {fileID: 963194228} - component: {fileID: 963194228}
- component: {fileID: 963194227} - component: {fileID: 963194227}
- component: {fileID: 963194226} - component: {fileID: 963194226}
- component: {fileID: 963194229}
m_Layer: 0 m_Layer: 0
m_Name: Main Camera m_Name: Main Camera
m_TagString: MainCamera m_TagString: MainCamera
@ -309,18 +308,52 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &963194229 --- !u!1 &1613085077
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1613085078}
- component: {fileID: 1613085079}
m_Layer: 0
m_Name: ClientMain
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &1613085078
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1613085077}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1613085079
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 963194225} m_GameObject: {fileID: 1613085077}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 694d8256118344eb2b130fceb1a11b7f, type: 3} m_Script: {fileID: 11500000, guid: d126d712307544dd89716677e730aa93, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
address: 127.0.0.1
driverAsset: {fileID: 11400000, guid: a8a5562854ecf4cc1a49700e8bd93c19, type: 2}
--- !u!1 &1936170114 --- !u!1 &1936170114
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -374,3 +407,4 @@ SceneRoots:
- {fileID: 963194228} - {fileID: 963194228}
- {fileID: 705507995} - {fileID: 705507995}
- {fileID: 1936170116} - {fileID: 1936170116}
- {fileID: 1613085078}

@ -42,9 +42,16 @@ namespace ECSTest
{ {
jobHandle.Complete(); jobHandle.Complete();
//TODO Render() //TODO Render()
jobHandle = driver.ScheduleUpdate();
jobHandle = new ClientUpdateJob()
{
driver = driver,
unreliablePipeline = unreliablePipeline,
reliablePipeline = reliablePipeline,
connection = connection,
}.Schedule(jobHandle);
} }
} }
} }

@ -2,6 +2,7 @@
using Unity.Collections; using Unity.Collections;
using Unity.Jobs; using Unity.Jobs;
using Unity.Networking.Transport; using Unity.Networking.Transport;
using UnityEngine;
namespace ECSTest namespace ECSTest
{ {
@ -15,11 +16,27 @@ namespace ECSTest
public void Execute() public void Execute()
{ {
if (connection.Value == default)
return;
NetworkEvent.Type cmd; NetworkEvent.Type cmd;
while ((cmd = connection.Value.PopEvent(driver, out var stream, out var networkPipeline)) != while ((cmd = connection.Value.PopEvent(driver, out var stream, out var networkPipeline)) !=
NetworkEvent.Type.Empty) NetworkEvent.Type.Empty)
{ {
if (cmd == NetworkEvent.Type.Data)
{
//TODO
}
else if (cmd == NetworkEvent.Type.Connect)
{
Debug.Log("[Client] Connected to server");
//TODO
}
else if (cmd == NetworkEvent.Type.Disconnect)
{
connection.Value = default;
Debug.Log("[Client] Disconnected to server");
}
} }
} }
} }

@ -4,6 +4,7 @@ namespace ECSTest
{ {
Unit, Unit,
Monster, Monster,
Bullet,
} }
} }

@ -1,21 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace ECSTest
{
public class Main : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
TestEntityDataBlock.Run();
}
// Update is called once per frame
void Update()
{
}
}
}

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

@ -0,0 +1,18 @@
using Unity.Jobs;
namespace ECSTest.Server
{
public class GameLogic
{
public JobHandle Simulate(int beginFrameId, int frameCount, JobHandle dependency)
{
//TODO
return dependency;
}
private JobHandle Step(int frameId, JobHandle dependency)
{
return dependency;
}
}
}

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 51ab02ddeb9e4cdbb736075b2c7b43a8
timeCreated: 1765871132

@ -4,7 +4,7 @@ using Unity.Jobs;
using Unity.Networking.Transport; using Unity.Networking.Transport;
using UnityEngine; using UnityEngine;
namespace ECSTest namespace ECSTest.Server
{ {
[BurstCompile] [BurstCompile]
public struct ServerConnectionJob : IJob public struct ServerConnectionJob : IJob

@ -0,0 +1,17 @@
using GameCore.TinyECS;
using Unity.Burst;
using Unity.Jobs;
namespace ECSTest.Server
{
[BurstCompile]
public struct SpawnBulletJob : IJob
{
public WorldManager worldManager;
public void Execute()
{
}
}
}

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 9cfef090e4d64e91bf319abd48fe7e18
timeCreated: 1765877986

@ -7,7 +7,7 @@ using Unity.Jobs;
using Unity.Networking.Transport; using Unity.Networking.Transport;
using UnityEngine; using UnityEngine;
namespace ECSTest namespace ECSTest.Server
{ {
public class ServerMain : MonoBehaviour public class ServerMain : MonoBehaviour
{ {

@ -4,7 +4,7 @@ using Unity.Jobs;
using Unity.Networking.Transport; using Unity.Networking.Transport;
using UnityEngine; using UnityEngine;
namespace ECSTest namespace ECSTest.Server
{ {
[BurstCompile] [BurstCompile]
public struct ServerReceiveJob : IJobParallelForDefer public struct ServerReceiveJob : IJobParallelForDefer

@ -1,7 +1,7 @@
using Unity.Burst; using Unity.Burst;
using Unity.Jobs; using Unity.Jobs;
namespace ECSTest namespace ECSTest.Server
{ {
[BurstCompile] [BurstCompile]
public struct ServerSendJob : IJobParallelFor public struct ServerSendJob : IJobParallelFor

@ -0,0 +1,10 @@
using GameCore.TinyECS;
namespace ECSTest.Server
{
public struct WorldManager
{
public EntityCollection<EntityType> entities;
public EntityDataBlockChain chain;
}
}

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 34167e4ecf924d05b9abd31eb2b2e464
timeCreated: 1765879427
Loading…
Cancel
Save