Last active
March 25, 2020 22:50
DOTSSample Upgrade Unity ECS packages
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Refactored code to use new unity Networking/Transport api | |
Part2: | |
https://gist.github.com/JCBuck/7c65823462a93673d7976e99ffd717ce |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Assets/Scripts/EditorTools/Editor/BuildSettingsRunner.cs b/Assets/Scripts/EditorTools/Editor/BuildSettingsRunner.cs | |
index bddc8ed..e79719a 100644 | |
--- a/Assets/Scripts/EditorTools/Editor/BuildSettingsRunner.cs | |
+++ b/Assets/Scripts/EditorTools/Editor/BuildSettingsRunner.cs | |
@@ -1,6 +1,7 @@ | |
using System; | |
using Unity.Build; | |
using Unity.Build.Common; | |
+using Unity.Build.Classic; | |
using UnityEditor; | |
using UnityEngine; | |
@@ -40,7 +41,7 @@ public static class BuildSettingsRunner | |
static bool RunBuildSettingsAtPath(string assetPath, string buildDir, bool enableIL2CPP) | |
{ | |
- var buildSettings = AssetDatabase.LoadAssetAtPath<BuildSettings>(assetPath); | |
+ var buildSettings = AssetDatabase.LoadAssetAtPath<BuildConfiguration>(assetPath); | |
if (buildSettings == null) | |
{ | |
Debug.LogError($"No build settings found at path {assetPath}"); | |
@@ -55,6 +56,7 @@ public static class BuildSettingsRunner | |
if (enableIL2CPP) | |
{ | |
+ | |
if (buildSettings.TryGetComponent<ClassicScriptingSettings>(out var scriptingSettings)) | |
{ | |
Debug.Log("Overriding scripting backend to IL2CPP"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Assets/Scripts/Networking/GhostSnapshotValueAngle.txt b/Assets/Scripts/Networking/GhostSnapshotValueAngle.txt | |
index 89337a8..485a815 100644 | |
--- a/Assets/Scripts/Networking/GhostSnapshotValueAngle.txt | |
+++ b/Assets/Scripts/Networking/GhostSnapshotValueAngle.txt | |
@@ -31,7 +31,7 @@ public struct GhostSnapshotData | |
#endregion | |
} | |
- public void Serialize(int networkId, ref GhostSnapshotData baseline, DataStreamWriter writer, NetworkCompressionModel compressionModel) | |
+ public void Serialize(int networkId, ref GhostSnapshotData baseline, ref DataStreamWriter writer, NetworkCompressionModel compressionModel) | |
{ | |
#region __GHOST_CALCULATE_CHANGE_MASK_ZERO__ | |
changeMask__GHOST_MASK_BATCH__ = (__GHOST_FIELD_NAME__ != baseline.__GHOST_FIELD_NAME__) ? 1u : 0; | |
@@ -45,12 +45,12 @@ public struct GhostSnapshotData | |
#endregion | |
} | |
- public void Deserialize(uint tick, ref GhostSnapshotData baseline, DataStreamReader reader, ref DataStreamReader.Context ctx, | |
+ public void Deserialize(uint tick, ref GhostSnapshotData baseline, ref DataStreamReader reader, | |
NetworkCompressionModel compressionModel) | |
{ | |
#region __GHOST_READ__ | |
if ((changeMask__GHOST_MASK_BATCH__ & (1 << __GHOST_MASK_INDEX__)) != 0) | |
- __GHOST_FIELD_NAME__ = reader.ReadPackedIntDelta(ref ctx, baseline.__GHOST_FIELD_NAME__, compressionModel); | |
+ __GHOST_FIELD_NAME__ = reader.ReadPackedIntDelta(baseline.__GHOST_FIELD_NAME__, compressionModel); | |
else | |
__GHOST_FIELD_NAME__ = baseline.__GHOST_FIELD_NAME__; | |
#endregion |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Assets/Scripts/EditorTools/Editor/LaunchWindow.cs b/Assets/Scripts/EditorTools/Editor/LaunchWindow.cs | |
index ed6c6da..6b6783d 100644 | |
--- a/Assets/Scripts/EditorTools/Editor/LaunchWindow.cs | |
+++ b/Assets/Scripts/EditorTools/Editor/LaunchWindow.cs | |
@@ -30,13 +30,13 @@ public class LaunchWindow : EditorWindow | |
public string buildSettingsGUID; | |
public string arguments; | |
- public BuildSettings GetBuildSettings() | |
+ public BuildConfiguration GetBuildSettings() | |
{ | |
var buildSettingsPath = AssetDatabase.GUIDToAssetPath(buildSettingsGUID); | |
- return AssetDatabase.LoadAssetAtPath<BuildSettings>(buildSettingsPath); | |
+ return AssetDatabase.LoadAssetAtPath<BuildConfiguration>(buildSettingsPath); | |
} | |
- public void SetBuildSettings(BuildSettings settings) | |
+ public void SetBuildSettings(BuildConfiguration settings) | |
{ | |
var buildSettingsPath = AssetDatabase.GetAssetPath(settings); | |
buildSettingsGUID = AssetDatabase.AssetPathToGUID(buildSettingsPath); | |
@@ -44,23 +44,23 @@ public class LaunchWindow : EditorWindow | |
public bool GetBuildName(out string buildPath, out string buildName) | |
{ | |
- var buildSettings = GetBuildSettings(); | |
+ var buildConfiguration = GetBuildSettings(); | |
buildPath = ""; | |
buildName = ""; | |
- if (buildSettings == null) | |
+ if (buildConfiguration == null) | |
{ | |
- GameDebug.LogError("No buildsettings asset defined"); | |
+ GameDebug.LogError("No buildConfiguration asset defined"); | |
return false; | |
} | |
- var generalSettings = buildSettings.GetComponent<GeneralSettings>(); | |
+ var generalSettings = buildConfiguration.GetComponent<GeneralSettings>(); | |
if (generalSettings == null) | |
{ | |
GameDebug.LogError("No GeneralSettings component for buildSetting"); | |
return false; | |
} | |
- buildPath = Path.GetFullPath(buildSettings.GetOutputBuildDirectory()); | |
+ buildPath = Path.GetFullPath(buildConfiguration.GetOutputBuildDirectory()); | |
buildName = generalSettings.ProductName; | |
return true; | |
@@ -227,8 +227,8 @@ public class LaunchWindow : EditorWindow | |
EditorGUI.BeginChangeCheck(); | |
- var buildSettings = | |
- EditorGUILayout.ObjectField("Build settings",entry.GetBuildSettings(), typeof(BuildSettings), false, null) as BuildSettings; | |
+ var buildConfiguration = | |
+ EditorGUILayout.ObjectField("Build settings",entry.GetBuildSettings(), typeof(BuildConfiguration), false, null) as BuildConfiguration; | |
EditorGUILayout.LabelField("Command line args"); | |
entry.arguments = EditorGUILayout.TextArea(entry.arguments); | |
@@ -236,7 +236,7 @@ public class LaunchWindow : EditorWindow | |
if (EditorGUI.EndChangeCheck()) | |
{ | |
- entry.SetBuildSettings(buildSettings); | |
+ entry.SetBuildSettings(buildConfiguration); | |
SaveSettings(); | |
} | |
@@ -372,11 +372,11 @@ public class LaunchWindow : EditorWindow | |
void QueueBuild(Entry entry) | |
{ | |
- var buildSettings = entry.GetBuildSettings(); | |
- if(buildSettings == null) | |
+ var buildConfiguration = entry.GetBuildSettings(); | |
+ if(buildConfiguration == null) | |
GameDebug.LogError("No build settings defined"); | |
- BuildManager.QueueBuild(buildSettings); | |
+ BuildManager.QueueBuild(buildConfiguration); | |
Repaint(); | |
} | |
@@ -404,8 +404,8 @@ public class LaunchWindow : EditorWindow | |
{ | |
var entry = data.entries[i]; | |
- var buildSettings = entry.GetBuildSettings(); | |
- if (buildSettings == null) | |
+ var buildConfiguration = entry.GetBuildSettings(); | |
+ if (buildConfiguration == null) | |
continue; | |
string buildName; | |
@@ -450,7 +450,7 @@ public class LaunchWindow : EditorWindow | |
} | |
- List<BuildSettings> m_BuildSettings = new List<BuildSettings>(); | |
+ List<BuildConfiguration> m_BuildConfiguration = new List<BuildConfiguration>(); | |
int m_currentPickerWindow; | |
LaunchWindowSettingsAsset m_Asset; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Packages/manifest.json b/Packages/manifest.json | |
index 0b7e805..272cdbe 100644 | |
--- a/Packages/manifest.json | |
+++ b/Packages/manifest.json | |
@@ -1,36 +1,47 @@ | |
{ | |
"dependencies": { | |
+ "com.unity.2d.sprite": "1.0.0", | |
+ "com.unity.2d.tilemap": "1.0.0", | |
+ "com.unity.ads": "2.0.8", | |
"com.unity.analytics": "3.3.5", | |
"com.unity.animation": "0.2.16-preview.5", | |
+ "com.unity.burst": "1.3.0-preview.3", | |
+ "com.unity.collab-proxy": "1.2.16", | |
"com.unity.collections": "0.5.2-preview.8", | |
- "com.unity.dots.editor": "0.1.0-preview.2", | |
- "com.unity.entities": "0.5.0-preview.17", | |
+ "com.unity.dots.editor": "0.3.0-preview", | |
+ "com.unity.entities": "0.6.0-preview.24", | |
"com.unity.ext.nunit": "1.0.0", | |
"com.unity.formats.fbx": "2.0.1-preview.11", | |
"com.unity.ide.rider": "1.1.4", | |
"com.unity.ide.visualstudio": "1.0.11", | |
"com.unity.ide.vscode": "1.1.4", | |
- "com.unity.jobs": "0.2.2-preview.6", | |
+ "com.unity.inputsystem": "1.0.0-preview.5", | |
+ "com.unity.jobs": "0.2.5-preview.20", | |
"com.unity.mathematics": "1.1.0", | |
- "com.unity.netcode": "0.0.2-preview.1", | |
- "com.unity.performance.profile-analyzer": "0.5.0-preview.1", | |
+ "com.unity.multiplayer-hlapi": "1.0.4", | |
+ "com.unity.netcode": "0.1.0-preview.6", | |
+ "com.unity.performance.profile-analyzer": "0.6.0-preview.1", | |
"com.unity.physics": "0.2.5-preview.1", | |
- "com.unity.platforms": "0.1.6-preview", | |
+ "com.unity.platforms": "0.2.1-preview.5", | |
"com.unity.probuilder": "4.2.3", | |
"com.unity.progrids": "3.0.3-preview.5", | |
+ "com.unity.purchasing": "2.0.6", | |
"com.unity.render-pipelines.core": "7.2.1", | |
"com.unity.render-pipelines.universal": "7.2.1", | |
- "com.unity.rendering.hybrid": "0.3.1-preview.10", | |
+ "com.unity.rendering.hybrid": "0.3.4-preview.24", | |
"com.unity.scriptablebuildpipeline": "1.6.4-preview", | |
"com.unity.shadergraph": "7.2.1", | |
"com.unity.test-framework": "1.1.11", | |
"com.unity.textmeshpro": "2.0.1", | |
- "com.unity.transport": "0.2.1-preview.1", | |
+ "com.unity.timeline": "1.2.12", | |
+ "com.unity.transport": "0.3.0-preview.6", | |
+ "com.unity.ugui": "1.0.0", | |
"com.unity.visualeffectgraph": "7.2.1", | |
- "com.unity.xr.legacyinputhelpers": "1.3.11", | |
+ "com.unity.xr.legacyinputhelpers": "2.0.8", | |
"com.unity.xr.management": "3.0.6", | |
- "com.unity.xr.oculus": "1.1.5", | |
+ "com.unity.xr.oculus": "1.2.0", | |
"com.unity.modules.ai": "1.0.0", | |
+ "com.unity.modules.androidjni": "1.0.0", | |
"com.unity.modules.animation": "1.0.0", | |
"com.unity.modules.assetbundle": "1.0.0", | |
"com.unity.modules.audio": "1.0.0", |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Assets/Scripts/Networking/V2/NetworkEventSystem.cs b/Assets/Scripts/Networking/V2/NetworkEventSystem.cs | |
index 344ccf1..73d7687 100644 | |
--- a/Assets/Scripts/Networking/V2/NetworkEventSystem.cs | |
+++ b/Assets/Scripts/Networking/V2/NetworkEventSystem.cs | |
@@ -121,7 +121,7 @@ public class ClientEventSystem : JobComponentSystem | |
protected override JobHandle OnUpdate(JobHandle inputDeps) | |
{ | |
JobHandle queryJob; | |
- var connection = m_ConnectionQuery.ToEntityArray(Allocator.TempJob, out queryJob); | |
+ var connection = m_ConnectionQuery.ToEntityArrayAsync(Allocator.TempJob, out queryJob); | |
var sendSetupJob = new SendPlayerSetupJob { | |
CommandBuffer = m_CommandBuffer.CreateCommandBuffer(), | |
RpcQueue = m_RpcSettingsQueue, | |
@@ -192,7 +192,7 @@ public class ClientReadyEventSystem : JobComponentSystem | |
{ | |
CommandBuffer = m_CommandBuffer.CreateCommandBuffer(), | |
RpcQueue = m_RpcReadyQueue, | |
- ConnectionEntity = m_ReadyQuery.ToEntityArray(Allocator.TempJob, out queryJob), | |
+ ConnectionEntity = m_ReadyQuery.ToEntityArrayAsync(Allocator.TempJob, out queryJob), | |
RpcBuffer = GetBufferFromEntity<OutgoingRpcDataStreamBufferComponent>() | |
}; | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Assets/Unity.Sample.Game/Player/PlayerModuleClient.cs b/Assets/Unity.Sample.Game/Player/PlayerModuleClient.cs | |
index 7673f70..1480550 100644 | |
--- a/Assets/Unity.Sample.Game/Player/PlayerModuleClient.cs | |
+++ b/Assets/Unity.Sample.Game/Player/PlayerModuleClient.cs | |
@@ -23,10 +23,11 @@ public class PlayerModuleClient | |
#pragma warning disable 618 | |
// we're keeping World.Active until we can properly remove them all | |
- var defaultWorld = World.Active; | |
+ //var defaultWorld = World.Active; | |
+ var defaultWorld = World.DefaultGameObjectInjectionWorld; | |
try | |
{ | |
- World.Active = m_world; | |
+ //World.Active = m_world; | |
m_settings = Resources.Load<PlayerModuleSettings>("PlayerModuleSettings"); | |
m_HandlePlayerCameraControlSpawn = m_world.CreateSystem<PlayerCameraControl.HandlePlayerCameraControlSpawn>(); | |
m_UpdatePlayerCameras = m_world.CreateSystem<PlayerCameraControl.UpdatePlayerCameras>(); | |
@@ -36,7 +37,8 @@ public class PlayerModuleClient | |
} | |
finally | |
{ | |
- World.Active = defaultWorld; | |
+ //World.Active = defaultWorld; | |
+ World.DefaultGameObjectInjectionWorld = defaultWorld; | |
} | |
#pragma warning restore 618 | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Assets/Unity.Sample.Core/Scripts/PrefabAssetRegistry/PrefabAssetManager.cs b/Assets/Unity.Sample.Core/Scripts/PrefabAssetRegistry/PrefabAssetManager.cs | |
index 73d40f9..fa37708 100644 | |
--- a/Assets/Unity.Sample.Core/Scripts/PrefabAssetRegistry/PrefabAssetManager.cs | |
+++ b/Assets/Unity.Sample.Core/Scripts/PrefabAssetRegistry/PrefabAssetManager.cs | |
@@ -48,17 +48,19 @@ public class PrefabAssetManager | |
public static Entity CreateEntity(World world, GameObject prefab) | |
{ | |
-// GameDebug.Log("CreateEntity prefab:" + prefab.name); | |
+ // GameDebug.Log("CreateEntity prefab:" + prefab.name); | |
// If gameObject has GameObjectEntity it is already registered in entitymanager. If not we register it here | |
#pragma warning disable 618 | |
// we're keeping World.Active until we can properly remove them all | |
- var defaultWorld = World.Active; | |
+ //var defaultWorld = World.Active; | |
+ var defaultWorld = World.DefaultGameObjectInjectionWorld; | |
try | |
{ | |
- World.Active = world; | |
+ //World.Active = world; | |
+ World.DefaultGameObjectInjectionWorld = world; | |
#pragma warning restore 618 | |
if (prefab.GetComponent<GameObjectEntity>() != null) | |
{ | |
@@ -84,7 +86,8 @@ public class PrefabAssetManager | |
{ | |
#pragma warning disable 618 | |
// we're keeping World.Active until we can properly remove them all | |
- World.Active = defaultWorld; | |
+ //World.Active = defaultWorld; | |
+ World.DefaultGameObjectInjectionWorld = defaultWorld; | |
#pragma warning restore 618 | |
} | |
} | |
@@ -132,10 +135,11 @@ public class PrefabAssetManager | |
{ | |
#pragma warning disable 618 | |
// we're keeping World.Active until we can properly remove them all | |
- var defaultWorld = World.Active; | |
+ //var defaultWorld = World.Active; | |
+ var defaultWorld = World.DefaultGameObjectInjectionWorld; | |
try | |
{ | |
- World.Active = world; | |
+ //World.Active = world; | |
entityPrefab = GameObjectConversionUtility.ConvertGameObjectHierarchy(prefab, world); | |
m_EntityPrefabs.Add(tuple,entityPrefab); | |
@@ -145,7 +149,8 @@ public class PrefabAssetManager | |
} | |
finally | |
{ | |
- World.Active = defaultWorld; | |
+ //World.Active = defaultWorld; | |
+ World.DefaultGameObjectInjectionWorld = defaultWorld; | |
} | |
#pragma warning restore 618 | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt | |
index f04fc72..a8d6725 100644 | |
--- a/ProjectSettings/ProjectVersion.txt | |
+++ b/ProjectSettings/ProjectVersion.txt | |
@@ -1,2 +1,2 @@ | |
-m_EditorVersion: 2019.3.2f1 | |
-m_EditorVersionWithRevision: 2019.3.2f1 (c46a3a38511e) | |
+m_EditorVersion: 2019.3.3f1 | |
+m_EditorVersionWithRevision: 2019.3.3f1 (7ceaae5f7503) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Assets/Scripts/Networking/V2/RPCs.cs b/Assets/Scripts/Networking/V2/RPCs.cs | |
index d9e509e..5f410a7 100644 | |
--- a/Assets/Scripts/Networking/V2/RPCs.cs | |
+++ b/Assets/Scripts/Networking/V2/RPCs.cs | |
@@ -10,9 +10,9 @@ public struct RpcInitializeMap : IRpcCommand | |
{ | |
public NativeString64 MapName; | |
- public void Serialize(DataStreamWriter writer) | |
+ public void Serialize(ref DataStreamWriter writer) | |
{ | |
- writer.Write(MapName.LengthInBytes); | |
+ writer.WriteUShort(MapName.LengthInBytes); | |
unsafe | |
{ | |
fixed (byte* b = &MapName.buffer.byte0000) | |
@@ -22,16 +22,16 @@ public struct RpcInitializeMap : IRpcCommand | |
} | |
} | |
- public void Deserialize(DataStreamReader reader, ref DataStreamReader.Context ctx) | |
+ public void Deserialize(ref DataStreamReader reader) | |
{ | |
- var nameLength = reader.ReadUShort(ref ctx); | |
+ var nameLength = reader.ReadUShort(); | |
GameDebug.Assert(nameLength <= NativeString64.MaxLength); | |
MapName.LengthInBytes = nameLength; | |
unsafe | |
{ | |
fixed (byte* b = &MapName.buffer.byte0000) | |
{ | |
- reader.ReadBytes(ref ctx, b, MapName.LengthInBytes); | |
+ reader.ReadBytes( b, MapName.LengthInBytes); | |
} | |
} | |
} | |
@@ -39,7 +39,7 @@ public struct RpcInitializeMap : IRpcCommand | |
private static void InvokeExecute(ref RpcExecutor.Parameters parameters) | |
{ | |
var rpcData = default(RpcInitializeMap); | |
- rpcData.Deserialize(parameters.Reader, ref parameters.ReaderContext); | |
+ rpcData.Deserialize(ref parameters.Reader); | |
var ent = parameters.CommandBuffer.CreateEntity(parameters.JobIndex); | |
parameters.CommandBuffer.AddComponent(parameters.JobIndex, ent, | |
@@ -61,11 +61,11 @@ public struct RpcPlayerSetup : IRpcCommand | |
public int CharacterType; | |
public short TeamId; | |
- public void Serialize(DataStreamWriter writer) | |
+ public void Serialize(ref DataStreamWriter writer) | |
{ | |
- writer.Write(TeamId); | |
- writer.Write(CharacterType); | |
- writer.Write(PlayerName.LengthInBytes); | |
+ writer.WriteShort(TeamId); | |
+ writer.WriteInt(CharacterType); | |
+ writer.WriteUShort(PlayerName.LengthInBytes); | |
unsafe | |
{ | |
fixed (byte* b = &PlayerName.buffer.byte0000) | |
@@ -75,18 +75,18 @@ public struct RpcPlayerSetup : IRpcCommand | |
} | |
} | |
- public void Deserialize(DataStreamReader reader, ref DataStreamReader.Context ctx) | |
+ public void Deserialize(ref DataStreamReader reader) | |
{ | |
- TeamId = reader.ReadShort(ref ctx); | |
- CharacterType = reader.ReadInt(ref ctx); | |
- var nameLength = reader.ReadUShort(ref ctx); | |
+ TeamId = reader.ReadShort(); | |
+ CharacterType = reader.ReadInt(); | |
+ var nameLength = reader.ReadUShort(); | |
GameDebug.Assert(nameLength <= NativeString64.MaxLength); | |
PlayerName.LengthInBytes = nameLength; | |
unsafe | |
{ | |
fixed (byte* b = &PlayerName.buffer.byte0000) | |
{ | |
- reader.ReadBytes(ref ctx, b, PlayerName.LengthInBytes); | |
+ reader.ReadBytes( b, PlayerName.LengthInBytes); | |
} | |
} | |
} | |
@@ -94,7 +94,7 @@ public struct RpcPlayerSetup : IRpcCommand | |
private static void InvokeExecute(ref RpcExecutor.Parameters parameters) | |
{ | |
var rpcData = default(RpcPlayerSetup); | |
- rpcData.Deserialize(parameters.Reader, ref parameters.ReaderContext); | |
+ rpcData.Deserialize(ref parameters.Reader); | |
parameters.CommandBuffer.AddComponent(parameters.JobIndex, parameters.Connection, | |
new PlayerSettingsComponent {CharacterType = rpcData.CharacterType, TeamId = rpcData.TeamId, PlayerName = rpcData.PlayerName}); | |
@@ -111,11 +111,11 @@ class PlayerSetupRpcCommandRequestSystem : RpcCommandRequestSystem<RpcPlayerSetu | |
[BurstCompile] | |
public struct RpcPlayerReady : IRpcCommand | |
{ | |
- public void Serialize(DataStreamWriter writer) | |
+ public void Serialize(ref DataStreamWriter writer) | |
{ | |
} | |
- public void Deserialize(DataStreamReader reader, ref DataStreamReader.Context ctx) | |
+ public void Deserialize(ref DataStreamReader reader) | |
{ | |
} | |
[BurstCompile] | |
@@ -138,9 +138,9 @@ public struct RpcRemoteCommand : IRpcCommand | |
{ | |
public NativeString64 Command; | |
- public void Serialize(DataStreamWriter writer) | |
+ public void Serialize(ref DataStreamWriter writer) | |
{ | |
- writer.Write(Command.LengthInBytes); | |
+ writer.WriteUShort(Command.LengthInBytes); | |
unsafe | |
{ | |
fixed (byte* b = &Command.buffer.byte0000) | |
@@ -150,16 +150,16 @@ public struct RpcRemoteCommand : IRpcCommand | |
} | |
} | |
- public void Deserialize(DataStreamReader reader, ref DataStreamReader.Context ctx) | |
+ public void Deserialize(ref DataStreamReader reader) | |
{ | |
- var msgLength = reader.ReadUShort(ref ctx); | |
+ var msgLength = reader.ReadUShort(); | |
GameDebug.Assert(msgLength <= NativeString64.MaxLength); | |
Command.LengthInBytes = msgLength; | |
unsafe | |
{ | |
fixed (byte* b = &Command.buffer.byte0000) | |
{ | |
- reader.ReadBytes(ref ctx, b, Command.LengthInBytes); | |
+ reader.ReadBytes( b, Command.LengthInBytes); | |
} | |
} | |
} | |
@@ -168,7 +168,7 @@ public struct RpcRemoteCommand : IRpcCommand | |
private static void InvokeExecute(ref RpcExecutor.Parameters parameters) | |
{ | |
var rpcData = default(RpcRemoteCommand); | |
- rpcData.Deserialize(parameters.Reader, ref parameters.ReaderContext); | |
+ rpcData.Deserialize(ref parameters.Reader); | |
var req = parameters.CommandBuffer.CreateEntity(parameters.JobIndex); | |
parameters.CommandBuffer.AddComponent(parameters.JobIndex, req, new IncomingRemoteCommandComponent{Command = rpcData.Command, Connection = parameters.Connection}); | |
@@ -187,10 +187,10 @@ public struct RpcChatMessage : IRpcCommand | |
{ | |
public NativeString512 Message; | |
- public void Serialize(DataStreamWriter writer) | |
+ public void Serialize(ref DataStreamWriter writer) | |
{ | |
GameDebug.Assert(writer.Capacity-writer.Length > Message.LengthInBytes*2, "Chat message too large (writer=" + (writer.Capacity-writer.Length) + " msg=" + Message.LengthInBytes*2); | |
- writer.Write(Message.LengthInBytes); | |
+ writer.WriteUShort(Message.LengthInBytes); | |
unsafe | |
{ | |
fixed (byte* b = &Message.buffer.byte0000) | |
@@ -200,16 +200,16 @@ public struct RpcChatMessage : IRpcCommand | |
} | |
} | |
- public void Deserialize(DataStreamReader reader, ref DataStreamReader.Context ctx) | |
+ public void Deserialize(ref DataStreamReader reader) | |
{ | |
- var msgLength = reader.ReadUShort(ref ctx); | |
+ var msgLength = reader.ReadUShort(); | |
GameDebug.Assert(msgLength <= NativeString512.MaxLength); | |
Message.LengthInBytes = msgLength; | |
unsafe | |
{ | |
fixed (byte* b = &Message.buffer.byte0000) | |
{ | |
- reader.ReadBytes(ref ctx, b, Message.LengthInBytes); | |
+ reader.ReadBytes( b, Message.LengthInBytes); | |
} | |
} | |
} | |
@@ -218,7 +218,7 @@ public struct RpcChatMessage : IRpcCommand | |
private static void InvokeExecute(ref RpcExecutor.Parameters parameters) | |
{ | |
var rpcData = default(RpcChatMessage); | |
- rpcData.Deserialize(parameters.Reader, ref parameters.ReaderContext); | |
+ rpcData.Deserialize(ref parameters.Reader); | |
var req = parameters.CommandBuffer.CreateEntity(parameters.JobIndex); | |
parameters.CommandBuffer.AddComponent(parameters.JobIndex, req, new IncomingChatMessageComponent{Message = rpcData.Message, Connection = parameters.Connection}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Assets/Scripts/Game/Main/ServerGameLoop.cs b/Assets/Scripts/Game/Main/ServerGameLoop.cs | |
index a450f0a..7ba0c10 100644 | |
--- a/Assets/Scripts/Game/Main/ServerGameLoop.cs | |
+++ b/Assets/Scripts/Game/Main/ServerGameLoop.cs | |
@@ -84,7 +84,8 @@ public class ServerGameWorld | |
#pragma warning disable 618 | |
// we're keeping World.Active until we can properly remove them all | |
- var defaultWorld = World.Active; | |
+ //var defaultWorld = World.Active; | |
+ var defaultWorld = World.DefaultGameObjectInjectionWorld; | |
try | |
{ | |
m_GameModeSystem = m_GameWorld.CreateSystem<GameModeSystemServer>(m_GameWorld, m_GameWorld.GetExistingSystem<ChatSystemServer>()); | |
@@ -109,7 +110,9 @@ public class ServerGameWorld | |
} | |
finally | |
{ | |
- World.Active = defaultWorld; | |
+ | |
+ //World.Active = defaultWorld; | |
+ World.DefaultGameObjectInjectionWorld = defaultWorld; | |
} | |
#pragma warning restore 618 | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Assets/Scripts/Networking/Editor/Tests/SocketTests.cs b/Assets/Scripts/Networking/Editor/Tests/SocketTests.cs | |
index 18b1621..5d9352f 100644 | |
--- a/Assets/Scripts/Networking/Editor/Tests/SocketTests.cs | |
+++ b/Assets/Scripts/Networking/Editor/Tests/SocketTests.cs | |
@@ -7,7 +7,7 @@ using System.Net.Sockets; | |
using Unity.Networking.Transport; | |
using Unity.Collections; | |
-using Unity.Networking.Transport.LowLevel.Unsafe; | |
+//using Unity.Networking.Transport.LowLevel.Unsafe; | |
using Unity.Sample.Core; | |
using ExperimentalEventType = Unity.Networking.Transport.NetworkEvent.Type; | |
@@ -18,7 +18,7 @@ namespace TransportTests | |
[Test] | |
public void UdpC_BindToEndpoint_ReturnSocketHandle() | |
{ | |
- using (var socket = new UdpNetworkDriver(new NetworkDataStreamParameter {})) | |
+ using (var socket = new NetworkDriver(default(UDPNetworkInterface),new NetworkDataStreamParameter {})) | |
{ | |
var socketError = socket.Bind(NetworkEndPoint.AnyIpv4); | |
@@ -29,10 +29,10 @@ namespace TransportTests | |
[Test] | |
public void UdpC_BindMultipleToSameEndpoint_ReturnSocketError() | |
{ | |
- using (var first = new UdpNetworkDriver(new NetworkDataStreamParameter {})) | |
- using (var second = new UdpNetworkDriver(new NetworkDataStreamParameter {})) | |
+ using (var first = new NetworkDriver(default(UDPNetworkInterface),new NetworkDataStreamParameter {})) | |
+ using (var second = new NetworkDriver(default(UDPNetworkInterface),new NetworkDataStreamParameter {})) | |
{ | |
- var endpoint = NetworkEndPoint.CreateIpv4(0, 50001); | |
+ var endpoint = NetworkEndPoint.Parse("0.0.0.0", 50001); | |
var socketError = first.Bind(endpoint); | |
Assert.AreEqual(socketError, (int)SocketError.Success); | |
@@ -46,9 +46,9 @@ namespace TransportTests | |
[Ignore("https://favro.com/organization/c564ede4ed3337f7b17986b6/215d676dd474c0744d2574f8?card=Uni-90284")] | |
public void UdpC_ListenThenConnect_ShouldFail() | |
{ | |
- using (var socket = new UdpNetworkDriver(new NetworkDataStreamParameter {})) | |
+ using (var socket = new NetworkDriver(default(UDPNetworkInterface),new NetworkDataStreamParameter {})) | |
{ | |
- var endpoint = NetworkEndPoint.CreateIpv4(0, 50007); | |
+ var endpoint = NetworkEndPoint.Parse("0.0.0.0", 50007); | |
socket.Bind(endpoint); | |
socket.Listen(); | |
@@ -61,17 +61,17 @@ namespace TransportTests | |
[Test] | |
public void UdpC_ConnectTest_ShouldConnect() | |
{ | |
- using (var server = new UdpNetworkDriver(new NetworkDataStreamParameter {})) | |
- using (var client = new UdpNetworkDriver(new NetworkDataStreamParameter {})) | |
+ using (var server = new NetworkDriver(default(UDPNetworkInterface),new NetworkDataStreamParameter {})) | |
+ using (var client = new NetworkDriver(default(UDPNetworkInterface),new NetworkDataStreamParameter {})) | |
{ | |
var serverPort = 50009; | |
- server.Bind(NetworkEndPoint.CreateIpv4(0x7f000001, (ushort)serverPort)); | |
+ server.Bind(NetworkEndPoint.Parse("127.0.0.1", (ushort)serverPort)); | |
client.Bind(NetworkEndPoint.LoopbackIpv4); | |
server.Listen(); | |
- var id = client.Connect(NetworkEndPoint.CreateIpv4(0x7f000001, (ushort)serverPort)); | |
+ var id = client.Connect(NetworkEndPoint.Parse("127.0.0.1", (ushort)serverPort)); | |
NetworkConnection serverConnection, clientConnection; | |
int maxIterations = 100; | |
@@ -84,15 +84,15 @@ namespace TransportTests | |
[Test] | |
public void UdpC_MultipleConnectTest_ShouldConnect() | |
{ | |
- using (var server = new UdpNetworkDriver(new NetworkDataStreamParameter {})) | |
- using (var client0 = new UdpNetworkDriver(new NetworkDataStreamParameter {})) | |
- using (var client1 = new UdpNetworkDriver(new NetworkDataStreamParameter {})) | |
- using (var client2 = new UdpNetworkDriver(new NetworkDataStreamParameter {})) | |
- using (var client3 = new UdpNetworkDriver(new NetworkDataStreamParameter {})) | |
+ using (var server = new NetworkDriver(default(UDPNetworkInterface),new NetworkDataStreamParameter {})) | |
+ using (var client0 = new NetworkDriver(default(UDPNetworkInterface),new NetworkDataStreamParameter {})) | |
+ using (var client1 = new NetworkDriver(default(UDPNetworkInterface),new NetworkDataStreamParameter {})) | |
+ using (var client2 = new NetworkDriver(default(UDPNetworkInterface),new NetworkDataStreamParameter {})) | |
+ using (var client3 = new NetworkDriver(default(UDPNetworkInterface),new NetworkDataStreamParameter {})) | |
{ | |
var serverPort = 50005; | |
- server.Bind(NetworkEndPoint.CreateIpv4(0x7f000001, (ushort)serverPort));//new IPEndPoint(IPAddress.Loopback, serverPort)); | |
+ server.Bind(NetworkEndPoint.Parse("127.0.0.1", (ushort)serverPort));//new IPEndPoint(IPAddress.Loopback, serverPort)); | |
client0.Bind(NetworkEndPoint.LoopbackIpv4);// new IPEndPoint(IPAddress.Loopback, 0)); | |
client1.Bind(NetworkEndPoint.LoopbackIpv4);//new IPEndPoint(IPAddress.Loopback, 0)); | |
client2.Bind(NetworkEndPoint.LoopbackIpv4);//new IPEndPoint(IPAddress.Loopback, 0)); | |
@@ -104,7 +104,7 @@ namespace TransportTests | |
int maxIterations = 100; | |
- var endpoint = NetworkEndPoint.CreateIpv4(0x7f000001, (ushort)serverPort); | |
+ var endpoint = NetworkEndPoint.Parse("127.0.0.1", (ushort)serverPort); | |
var id = client0.Connect(endpoint); | |
ConnectTogether(server, client0, maxIterations, out serverConnection, out clientConnection); | |
Assert.AreEqual(id, serverConnection); | |
@@ -126,17 +126,17 @@ namespace TransportTests | |
[Test] | |
public void UdpC_ConnectSendTest_ShouldConnectAndReceiveData() | |
{ | |
- using (var server = new UdpNetworkDriver(new NetworkDataStreamParameter {})) | |
- using (var client = new UdpNetworkDriver(new NetworkDataStreamParameter {})) | |
+ using (var server = new NetworkDriver(default(UDPNetworkInterface),new NetworkDataStreamParameter {})) | |
+ using (var client = new NetworkDriver(default(UDPNetworkInterface),new NetworkDataStreamParameter {})) | |
{ | |
var serverPort = 50008; | |
- server.Bind(NetworkEndPoint.CreateIpv4(0x7f000001, (ushort)serverPort)); | |
+ server.Bind(NetworkEndPoint.Parse("127.0.0.1", (ushort)serverPort)); | |
client.Bind(NetworkEndPoint.LoopbackIpv4); | |
server.Listen(); | |
- client.Connect(NetworkEndPoint.CreateIpv4(0x7f000001, (ushort)serverPort)); | |
+ client.Connect(NetworkEndPoint.Parse("127.0.0.1", (ushort)serverPort)); | |
NetworkConnection serverConnection, clientConnection; | |
int maxIterations = 100; | |
@@ -161,12 +161,12 @@ namespace TransportTests | |
[Test] | |
public void UdpC_ReconnectAndResend_ShouldReconnectAndResend() | |
{ | |
- using (var server = new UdpNetworkDriver(new NetworkDataStreamParameter {})) | |
- using (var client = new UdpNetworkDriver(new NetworkDataStreamParameter {})) | |
+ using (var server = new NetworkDriver(default(UDPNetworkInterface), new NetworkDataStreamParameter {})) | |
+ using (var client = new NetworkDriver(default(UDPNetworkInterface), new NetworkDataStreamParameter {})) | |
{ | |
var serverPort = 50007; | |
- server.Bind(NetworkEndPoint.CreateIpv4(0x7f000001, (ushort)serverPort)); | |
+ server.Bind(NetworkEndPoint.Parse("127.0.0.1", (ushort)serverPort)); | |
client.Bind(NetworkEndPoint.LoopbackIpv4); | |
server.Listen(); | |
@@ -174,7 +174,7 @@ namespace TransportTests | |
NetworkConnection serverConnection, clientConnection; | |
int maxIterations = 100; | |
- var id = client.Connect(NetworkEndPoint.CreateIpv4(0x7f000001, (ushort)serverPort)); | |
+ var id = client.Connect(NetworkEndPoint.Parse("127.0.0.1", (ushort)serverPort)); | |
ConnectTogether(server, client, maxIterations, out serverConnection, out clientConnection); | |
client.Disconnect(id); | |
@@ -187,7 +187,7 @@ namespace TransportTests | |
Assert.AreEqual(ExperimentalEventType.Disconnect, PollEvent(ExperimentalEventType.Disconnect, maxIterations, server, ref data, out size, out from)); | |
- id = client.Connect(NetworkEndPoint.CreateIpv4(0x7f000001, (ushort)serverPort)); | |
+ id = client.Connect(NetworkEndPoint.Parse("127.0.0.1", (ushort)serverPort)); | |
ConnectTogether(server, client, maxIterations, out serverConnection, out clientConnection); | |
var message = new byte[] | |
@@ -217,17 +217,17 @@ namespace TransportTests | |
disconnectTimeoutMS = customTimeout, | |
}; | |
- using (var server = new UdpNetworkDriver(config)) | |
- using (var client = new UdpNetworkDriver(config)) | |
+ using (var server = new NetworkDriver(default(UDPNetworkInterface),config)) | |
+ using (var client = new NetworkDriver(default(UDPNetworkInterface), config)) | |
{ | |
var serverPort = 50006; | |
- server.Bind(NetworkEndPoint.CreateIpv4(0x7f000001, (ushort)serverPort)); | |
+ server.Bind(NetworkEndPoint.Parse("127.0.0.1", (ushort)serverPort)); | |
client.Bind(NetworkEndPoint.LoopbackIpv4); | |
server.Listen(); | |
- var id = client.Connect(NetworkEndPoint.CreateIpv4(0x7f000001, (ushort)serverPort)); | |
+ var id = client.Connect(NetworkEndPoint.Parse("127.0.0.1", (ushort)serverPort)); | |
NetworkConnection serverConnection, clientConnection; | |
int maxIterations = 100; | |
@@ -238,15 +238,15 @@ namespace TransportTests | |
// Force timeout | |
Thread.Sleep(customTimeout + 500); | |
- var message = new DataStreamWriter(7, Allocator.Persistent); | |
- message.Write((byte)'m'); | |
- message.Write((byte)'e'); | |
- message.Write((byte)'s'); | |
- message.Write((byte)'s'); | |
- message.Write((byte)'a'); | |
- message.Write((byte)'g'); | |
- message.Write((byte)'e'); | |
- clientConnection.Send(server, message); | |
+ var sendwriter = server.BeginSend(id); | |
+ sendwriter.WriteByte((byte)'m'); | |
+ sendwriter.WriteByte((byte)'e'); | |
+ sendwriter.WriteByte((byte)'s'); | |
+ sendwriter.WriteByte((byte)'s'); | |
+ sendwriter.WriteByte((byte)'a'); | |
+ sendwriter.WriteByte((byte)'g'); | |
+ sendwriter.WriteByte((byte)'e'); | |
+ server.EndSend(sendwriter); | |
var data = new byte[1472]; | |
int size = -1; | |
@@ -256,7 +256,7 @@ namespace TransportTests | |
} | |
} | |
- ExperimentalEventType PollEvent(ExperimentalEventType ev, int maxIterations, UdpNetworkDriver socket, ref byte[] buffer, out int size, out NetworkConnection connection) | |
+ ExperimentalEventType PollEvent(ExperimentalEventType ev, int maxIterations, NetworkDriver socket, ref byte[] buffer, out int size, out NetworkConnection connection) | |
{ | |
int iterator = 0; | |
size = 0; | |
@@ -265,13 +265,16 @@ namespace TransportTests | |
while (iterator++ < maxIterations) | |
{ | |
DataStreamReader reader; | |
- var context = default(DataStreamReader.Context); | |
+ //var context = default(DataStreamReader.Context); | |
ExperimentalEventType e; | |
if ((e = socket.PopEvent(out connection, out reader)) == ev) | |
{ | |
if (reader.IsCreated) | |
{ | |
- reader.ReadBytesIntoArray(ref context, ref buffer, reader.Length); | |
+ NativeArray<byte> narr = new NativeArray<byte>(reader.Length, Allocator.Temp); | |
+ | |
+ reader.ReadBytes(narr); | |
+ buffer = narr.ToArray(); | |
size = reader.Length; | |
} | |
return e; | |
@@ -281,14 +284,18 @@ namespace TransportTests | |
return ExperimentalEventType.Empty; | |
} | |
- void SendReceive(UdpNetworkDriver sender, UdpNetworkDriver receiver, NetworkConnection from, NetworkConnection to, byte[] data, int maxIterations) | |
+ void SendReceive(NetworkDriver sender, NetworkDriver receiver, NetworkConnection from, NetworkConnection to, byte[] data, int maxIterations) | |
{ | |
- using (var writer = new DataStreamWriter(data.Length, Allocator.Persistent)) | |
- { | |
- writer.Write(data, data.Length); | |
+ | |
// sender.Send(to, writer); // old one preserved to explain how names were chosen :-) | |
- to.Send(sender, writer); // new :-) | |
+ //to.Send(sender, writer); // new :-) | |
+ var senderwrite = sender.BeginSend(to); | |
+ | |
+ NativeArray<byte> narr = new NativeArray<byte>(data, Allocator.Temp); | |
+ | |
+ senderwrite.WriteBytes(narr); | |
+ sender.EndSend(senderwrite); | |
sender.ScheduleUpdate().Complete(); | |
receiver.ScheduleUpdate().Complete(); | |
@@ -303,10 +310,10 @@ namespace TransportTests | |
for (int i = 0; i < data.Length; i++) | |
Assert.AreEqual(data[i], buffer[i]); | |
- } | |
+ | |
} | |
- void ConnectTogether(UdpNetworkDriver server, UdpNetworkDriver client, int maxIterations, out NetworkConnection serverConnection, out NetworkConnection clientConnection) | |
+ void ConnectTogether(NetworkDriver server, NetworkDriver client, int maxIterations, out NetworkConnection serverConnection, out NetworkConnection clientConnection) | |
{ | |
int servers = 0, clients = 0, iterations = 0; | |
serverConnection = default(NetworkConnection); | |
@@ -385,7 +392,7 @@ namespace TransportTests | |
public class UdpCClient : IDisposable | |
{ | |
- UdpNetworkDriver m_Socket; | |
+ NetworkDriver m_Socket; | |
NetworkConnection conn = default(NetworkConnection); | |
int serverPort; | |
@@ -396,8 +403,10 @@ namespace TransportTests | |
public UdpCClient(int port, int serverPort = -1) | |
{ | |
- m_Socket = new UdpNetworkDriver(new NetworkDataStreamParameter {}); | |
- m_Socket.Bind(NetworkEndPoint.CreateIpv4(0x7f000001, (ushort)port)); | |
+ //m_Socket = new NetworkDriver(default(UDPNetworkInterface),new NetworkDataStreamParameter {}); | |
+ m_Socket = new NetworkDriver(default(UDPNetworkInterface), new NetworkDataStreamParameter { }); | |
+ | |
+ m_Socket.Bind(NetworkEndPoint.Parse("127.0.0.1", (ushort)port)); | |
if (serverPort == -1) | |
m_Socket.Listen(); | |
@@ -408,22 +417,19 @@ namespace TransportTests | |
{ | |
if (!m_Socket.Listening && !conn.IsCreated) | |
{ | |
- conn = m_Socket.Connect(NetworkEndPoint.CreateIpv4(0x7f000001, (ushort)serverPort)); | |
+ conn = m_Socket.Connect(NetworkEndPoint.Parse("127.0.0.1", (ushort)serverPort)); | |
} | |
else if (!m_Socket.Listening && dataCounter == 0 && !conn.IsCreated) | |
{ | |
- using (var message = new DataStreamWriter(7, Allocator.Persistent)) | |
- { | |
- message.Write((byte)'m'); | |
- message.Write((byte)'e'); | |
- message.Write((byte)'s'); | |
- message.Write((byte)'s'); | |
- message.Write((byte)'a'); | |
- message.Write((byte)'g'); | |
- message.Write((byte)'e'); | |
- | |
- conn.Send(m_Socket, message); | |
- } | |
+ var sendwriter = m_Socket.BeginSend(conn); | |
+ sendwriter.WriteByte((byte)'m'); | |
+ sendwriter.WriteByte((byte)'e'); | |
+ sendwriter.WriteByte((byte)'s'); | |
+ sendwriter.WriteByte((byte)'s'); | |
+ sendwriter.WriteByte((byte)'a'); | |
+ sendwriter.WriteByte((byte)'g'); | |
+ sendwriter.WriteByte((byte)'e'); | |
+ m_Socket.EndSend(sendwriter); | |
} | |
else if (!m_Socket.Listening && conn.IsCreated && | |
UnityEngine.Random.Range(0, 1000) < 10) | |
@@ -434,17 +440,12 @@ namespace TransportTests | |
NetworkConnection connection; | |
DataStreamReader reader; | |
- var context = default(DataStreamReader.Context); | |
+ //var context = default(DataStreamReader.Context); | |
var ev = m_Socket.PopEvent(out connection, out reader); | |
if (ev == ExperimentalEventType.Empty) | |
return; | |
- | |
- using (var writer = new DataStreamWriter(reader.Length, Allocator.Temp)) | |
- { | |
- unsafe | |
- { | |
- reader.ReadBytes(ref context, writer.GetUnsafePtr(), reader.Length); | |
- } | |
+ NativeArray<byte> narr; | |
+ DataStreamWriter writer; | |
switch (ev) | |
{ | |
case ExperimentalEventType.Connect: | |
@@ -455,11 +456,18 @@ namespace TransportTests | |
disconnectCounter++; | |
break; | |
case ExperimentalEventType.Data: | |
+ writer = m_Socket.BeginSend(connection); | |
+ narr = new NativeArray<byte>(reader.Length, Allocator.Temp); | |
+ reader.ReadBytes(narr); | |
+ | |
dataCounter++; | |
- connection.Send(m_Socket, writer); | |
+ | |
+ m_Socket.EndSend(writer); | |
+ | |
+ | |
break; | |
} | |
- } | |
+ | |
} | |
public void Dispose() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Assets/Scripts/Networking/Socket/SocketTransport.cs b/Assets/Scripts/Networking/Socket/SocketTransport.cs | |
index 8bd7c2f..ac81be8 100644 | |
--- a/Assets/Scripts/Networking/Socket/SocketTransport.cs | |
+++ b/Assets/Scripts/Networking/Socket/SocketTransport.cs | |
@@ -1,4 +1,4 @@ | |
-using System.Net; | |
+using System.Net; | |
using Unity.Networking.Transport; | |
using Unity.Collections; | |
using Unity.Sample.Core; | |
@@ -14,9 +14,12 @@ public class SocketTransport : INetworkTransport | |
configParams.disconnectTimeoutMS = ServerGameLoop.serverDisconnectTimeout.IntValue; | |
configParams.connectTimeoutMS = NetworkParameterConstants.ConnectTimeoutMS; | |
configParams.maxConnectAttempts = NetworkParameterConstants.MaxConnectAttempts; | |
- m_Socket = new UdpNetworkDriver(configParams); | |
- m_Socket.Bind(NetworkEndPoint.CreateIpv4(0, (ushort)port)); | |
+ | |
+ m_Socket = new NetworkDriver(default(UDPNetworkInterface), configParams); | |
+ | |
+ NetworkDriver.Create(configParams); | |
+ m_Socket.Bind(NetworkEndPoint.Parse("0.0.0.0", (ushort)port)); | |
} | |
public int Connect(string ip, int port) | |
@@ -51,7 +54,7 @@ public class SocketTransport : INetworkTransport | |
} | |
DataStreamReader reader; | |
- var context = default(DataStreamReader.Context); | |
+ //var context = default(DataStreamReader.Context); | |
var ev = m_Socket.PopEvent(out connection, out reader); | |
if (ev == EventType.Empty) | |
@@ -61,7 +64,11 @@ public class SocketTransport : INetworkTransport | |
if (reader.IsCreated) | |
{ | |
GameDebug.Assert(m_Buffer.Length >= reader.Length); | |
- reader.ReadBytesIntoArray(ref context, ref m_Buffer, reader.Length); | |
+ NativeArray<byte> nbuf = new NativeArray<byte>(m_Buffer.Length, Allocator.Temp); | |
+ | |
+ reader.ReadBytes( nbuf); | |
+ nbuf.CopyTo(m_Buffer); | |
+ | |
size = reader.Length; | |
} | |
@@ -91,11 +98,14 @@ public class SocketTransport : INetworkTransport | |
public void SendData(int connectionId, byte[] data, int sendSize) | |
{ | |
- using (var sendStream = new DataStreamWriter(sendSize, Allocator.Persistent)) | |
- { | |
- sendStream.Write(data, sendSize); | |
- m_IdToConnection[connectionId].Send(m_Socket, sendStream); | |
- } | |
+ | |
+ | |
+ NativeArray<byte> narray = new NativeArray<byte>(data, Allocator.Temp); | |
+ | |
+ var datasend = m_Socket.BeginSend(m_IdToConnection[connectionId]); | |
+ datasend.WriteBytes(narray); | |
+ m_Socket.EndSend(datasend); | |
+ | |
} | |
public string GetConnectionDescription(int connectionId) | |
@@ -110,6 +120,8 @@ public class SocketTransport : INetworkTransport | |
} | |
byte[] m_Buffer = new byte[1024 * 8]; | |
- UdpNetworkDriver m_Socket; | |
+ // UdpNetworkDriver m_Socket; | |
+ NetworkDriver m_Socket; | |
+ | |
NativeArray<NetworkConnection> m_IdToConnection; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Assets/Scripts/Networking/SQP.cs b/Assets/Scripts/Networking/SQP.cs | |
index 5087021..64c437c 100644 | |
--- a/Assets/Scripts/Networking/SQP.cs | |
+++ b/Assets/Scripts/Networking/SQP.cs | |
@@ -6,7 +6,7 @@ using System.Collections.Generic; | |
using UnityEngine; | |
using Unity.Networking.Transport; | |
-using Unity.Networking.Transport.LowLevel.Unsafe; | |
+//using Unity.Networking.Transport.LowLevel.Unsafe; | |
using Unity.Sample.Core; | |
/// <summary> | |
@@ -34,7 +34,7 @@ namespace SQP | |
public interface ISQPMessage | |
{ | |
void ToStream(ref DataStreamWriter writer); | |
- void FromStream(DataStreamReader reader, ref DataStreamReader.Context ctx); | |
+ void FromStream(ref DataStreamReader reader); | |
} | |
public struct SQPHeader : ISQPMessage | |
@@ -44,14 +44,14 @@ namespace SQP | |
public void ToStream(ref DataStreamWriter writer) | |
{ | |
- writer.Write((byte)Type); | |
- writer.WriteNetworkByteOrder((uint)ChallangeId); | |
+ writer.WriteByte((byte)Type); | |
+ writer.WriteUIntNetworkByteOrder((uint)ChallangeId); | |
} | |
- public void FromStream(DataStreamReader reader, ref DataStreamReader.Context ctx) | |
+ public void FromStream(ref DataStreamReader reader) | |
{ | |
- Type = reader.ReadByte(ref ctx); | |
- ChallangeId = reader.ReadUIntNetworkByteOrder(ref ctx); | |
+ Type = reader.ReadByte(); | |
+ ChallangeId = reader.ReadUIntNetworkByteOrder(); | |
} | |
} | |
@@ -65,9 +65,9 @@ namespace SQP | |
Header.ToStream(ref writer); | |
} | |
- public void FromStream(DataStreamReader reader, ref DataStreamReader.Context ctx) | |
+ public void FromStream(ref DataStreamReader reader) | |
{ | |
- Header.FromStream(reader, ref ctx); | |
+ Header.FromStream(ref reader); | |
} | |
} | |
@@ -81,9 +81,9 @@ namespace SQP | |
Header.ToStream(ref writer); | |
} | |
- public void FromStream(DataStreamReader reader, ref DataStreamReader.Context ctx) | |
+ public void FromStream(ref DataStreamReader reader) | |
{ | |
- Header.FromStream(reader, ref ctx); | |
+ Header.FromStream(ref reader); | |
} | |
} | |
@@ -99,15 +99,15 @@ namespace SQP | |
Header.Type = (byte)SQPMessageType.QueryRequest; | |
Header.ToStream(ref writer); | |
- writer.WriteNetworkByteOrder((UInt16)Version); | |
- writer.Write((byte)RequestedChunks); | |
+ writer.WriteUShortNetworkByteOrder((UInt16)Version); | |
+ writer.WriteByte((byte)RequestedChunks); | |
} | |
- public void FromStream(DataStreamReader reader, ref DataStreamReader.Context ctx) | |
+ public void FromStream(ref DataStreamReader reader) | |
{ | |
- Header.FromStream(reader, ref ctx); | |
- Version = reader.ReadUShortNetworkByteOrder(ref ctx); | |
- RequestedChunks = reader.ReadByte(ref ctx); | |
+ Header.FromStream(ref reader); | |
+ Version = reader.ReadUShortNetworkByteOrder(); | |
+ RequestedChunks = reader.ReadByte(); | |
} | |
} | |
@@ -119,23 +119,27 @@ namespace SQP | |
public byte LastPacket; | |
public ushort Length; | |
- public DataStreamWriter.DeferredUShortNetworkByteOrder ToStream(ref DataStreamWriter writer) | |
+ public DataStreamWriter ToStream(ref DataStreamWriter writer) | |
{ | |
+ int offset; | |
Header.Type = (byte)SQPMessageType.QueryResponse; | |
Header.ToStream(ref writer); | |
- writer.WriteNetworkByteOrder((UInt16)Version); | |
- writer.Write((byte)CurrentPacket); | |
- writer.Write((byte)LastPacket); | |
- return writer.WriteNetworkByteOrder((UInt16)Length); | |
+ writer.WriteUShortNetworkByteOrder((UInt16)Version); | |
+ writer.WriteByte((byte)CurrentPacket); | |
+ writer.WriteByte((byte)LastPacket); | |
+ offset = writer.Length; | |
+ writer.WriteUShortNetworkByteOrder((UInt16)Length); | |
+ return new DataStreamWriter(writer.AsNativeArray().GetSubArray(offset, sizeof(UInt16))); | |
+ | |
} | |
- public void FromStream(DataStreamReader reader, ref DataStreamReader.Context ctx) | |
+ public void FromStream(ref DataStreamReader reader) | |
{ | |
- Header.FromStream(reader, ref ctx); | |
- Version = reader.ReadUShortNetworkByteOrder(ref ctx); | |
- CurrentPacket = reader.ReadByte(ref ctx); | |
- LastPacket = reader.ReadByte(ref ctx); | |
- Length = reader.ReadUShortNetworkByteOrder(ref ctx); | |
+ Header.FromStream(ref reader); | |
+ Version = reader.ReadUShortNetworkByteOrder(); | |
+ CurrentPacket = reader.ReadByte(); | |
+ LastPacket = reader.ReadByte(); | |
+ Length = reader.ReadUShortNetworkByteOrder(); | |
} | |
} | |
@@ -153,19 +157,19 @@ namespace SQP | |
encoder.Convert(chars, 0, chars.Length, buffer, 0, byte.MaxValue, true, out charsUsed, out bytesUsed, out completed); | |
Debug.Assert(bytesUsed <= byte.MaxValue); | |
- writer.Write((byte)bytesUsed); | |
+ writer.WriteByte((byte)bytesUsed); | |
fixed(byte* buf = buffer) | |
{ | |
writer.WriteBytes(buf, bytesUsed); | |
} | |
} | |
- unsafe public static string ReadString(this DataStreamReader reader, ref DataStreamReader.Context ctx, Encoding encoding) | |
+ unsafe public static string ReadString(this ref DataStreamReader reader, Encoding encoding) | |
{ | |
- var length = reader.ReadByte(ref ctx); | |
+ var length = reader.ReadByte(); | |
fixed(byte* buf = buffer) | |
{ | |
- reader.ReadBytes(ref ctx, buf, length); | |
+ reader.ReadBytes( buf, length); | |
} | |
return encoding.GetString(buffer, 0, length); | |
} | |
@@ -194,30 +198,32 @@ namespace SQP | |
public string Map = ""; | |
public ushort Port; | |
- public void ToStream(ref DataStreamWriter writer) | |
+ public int ToStream(ref DataStreamWriter writer) | |
{ | |
- writer.WriteNetworkByteOrder((UInt16)CurrentPlayers); | |
- writer.WriteNetworkByteOrder((UInt16)MaxPlayers); | |
+ int len; | |
+ writer.WriteUShortNetworkByteOrder((UInt16)CurrentPlayers); | |
+ writer.WriteUShortNetworkByteOrder((UInt16)MaxPlayers); | |
writer.WriteString(ServerName, encoding); | |
writer.WriteString(GameType, encoding); | |
writer.WriteString(BuildId, encoding); | |
writer.WriteString(Map, encoding); | |
- | |
- writer.WriteNetworkByteOrder((UInt16)Port); | |
+ len = writer.Length; // return the byte offset of the Port in the length | |
+ writer.WriteUShortNetworkByteOrder((UInt16)Port); | |
+ return len; | |
} | |
- public void FromStream(DataStreamReader reader, ref DataStreamReader.Context ctx) | |
+ public void FromStream(ref DataStreamReader reader) | |
{ | |
- CurrentPlayers = reader.ReadUShortNetworkByteOrder(ref ctx); | |
- MaxPlayers = reader.ReadUShortNetworkByteOrder(ref ctx); | |
+ CurrentPlayers = reader.ReadUShortNetworkByteOrder(); | |
+ MaxPlayers = reader.ReadUShortNetworkByteOrder(); | |
- ServerName = reader.ReadString(ref ctx, encoding); | |
- GameType = reader.ReadString(ref ctx, encoding); | |
- BuildId = reader.ReadString(ref ctx, encoding); | |
- Map = reader.ReadString(ref ctx, encoding); | |
+ ServerName = reader.ReadString( encoding); | |
+ GameType = reader.ReadString( encoding); | |
+ BuildId = reader.ReadString( encoding); | |
+ Map = reader.ReadString( encoding); | |
- Port = reader.ReadUShortNetworkByteOrder(ref ctx); | |
+ Port = reader.ReadUShortNetworkByteOrder(); | |
} | |
} | |
@@ -227,26 +233,29 @@ namespace SQP | |
var start = (ushort)writer.Length; | |
- var chunkValue = writer.WriteNetworkByteOrder((uint)0); | |
+ writer.WriteUIntNetworkByteOrder((uint)0); | |
+ var chunkValue = new DataStreamWriter(writer.AsNativeArray().GetSubArray(start, sizeof(uint))); | |
var chunkStart = writer.Length; | |
ServerInfoData.ToStream(ref writer); | |
ChunkLen = (uint)(writer.Length - chunkStart); | |
QueryHeader.Length = (ushort)(writer.Length - start); | |
- lengthValue.Update(QueryHeader.Length); | |
- chunkValue.Update(ChunkLen); | |
+ //lengthValue.Update(QueryHeader.Length); | |
+ lengthValue.WriteUShortNetworkByteOrder(QueryHeader.Length); | |
+ //chunkValue.Update(ChunkLen); | |
+ lengthValue.WriteUIntNetworkByteOrder(ChunkLen); | |
var length = (ushort)System.Net.IPAddress.HostToNetworkOrder((short)QueryHeader.Length); | |
var chunkLen = (uint)System.Net.IPAddress.HostToNetworkOrder((int)ChunkLen); | |
} | |
- public void FromStream(DataStreamReader reader, ref DataStreamReader.Context ctx) | |
+ public void FromStream(ref DataStreamReader reader) | |
{ | |
- QueryHeader.FromStream(reader, ref ctx); | |
- ChunkLen = reader.ReadUIntNetworkByteOrder(ref ctx); | |
+ QueryHeader.FromStream(ref reader); | |
+ ChunkLen = reader.ReadUIntNetworkByteOrder(); | |
- ServerInfoData.FromStream(reader, ref ctx); | |
+ ServerInfoData.FromStream(ref reader); | |
} | |
static private Encoding encoding = new UTF8Encoding(); | |
@@ -358,7 +367,8 @@ namespace SQP | |
var req = new ChallangeRequest(); | |
req.ToStream(ref writer); | |
- writer.CopyTo(0, writer.Length, ref m_Buffer); | |
+ //writer.CopyTo(0, writer.Length, ref m_Buffer); | |
+ writer.AsNativeArray().CopyTo(m_Buffer); | |
m_Socket.SendTo(m_Buffer, writer.Length, SocketFlags.None, q.m_Server); | |
q.m_State = SQPClientState.WaitingForChallange; | |
} | |
@@ -374,9 +384,10 @@ namespace SQP | |
req.ToStream(ref writer); | |
q.m_State = SQPClientState.WaitingForResponse; | |
- writer.CopyTo(0, writer.Length, ref m_Buffer); | |
+ //writer.CopyTo(0, writer.Length, ref m_Buffer); | |
+ writer.AsNativeArray().CopyTo(m_Buffer); | |
m_Socket.SendTo(m_Buffer, writer.Length, SocketFlags.None, q.m_Server); | |
- writer.Dispose(); | |
+ //writer.Dispose(); | |
} | |
public void Update() | |
@@ -387,13 +398,15 @@ namespace SQP | |
if (read > 0) | |
{ | |
// Transfer incoming data in m_Buffer into a DataStreamReader | |
- var writer = new DataStreamWriter(m_Buffer.Length, Unity.Collections.Allocator.Temp); | |
- writer.Write(m_Buffer, read); | |
- var reader = new DataStreamReader(writer, 0, read); | |
- var ctx = default(DataStreamReader.Context); | |
+ //var writer = new DataStreamWriter(m_Buffer.Length, Unity.Collections.Allocator.Temp); | |
+ //byte = &m_Buffer[0]; | |
+ //writer.WriteBytes(pbArr, read); | |
+ Unity.Collections.NativeArray<byte> written = new Unity.Collections.NativeArray<byte>(m_Buffer, Unity.Collections.Allocator.Temp); | |
+ var reader = new DataStreamReader(written); | |
+ //var ctx = default(DataStreamReader.Context); | |
var header = new SQPHeader(); | |
- header.FromStream(reader, ref ctx); | |
+ header.FromStream(ref reader); | |
foreach (var q in m_Queries) | |
{ | |
@@ -420,8 +433,8 @@ namespace SQP | |
case SQPClientState.WaitingForResponse: | |
if ((SQPMessageType)header.Type == SQPMessageType.QueryResponse) | |
{ | |
- ctx = default(DataStreamReader.Context); | |
- q.m_ServerInfo.FromStream(reader, ref ctx); | |
+ //ctx = default(DataStreamReader.Context); | |
+ q.m_ServerInfo.FromStream(ref reader); | |
// We report the average of two measurements | |
q.RTT = (q.RTT + (NetworkUtils.stopwatch.ElapsedMilliseconds - q.StartTime)) / 2; | |
@@ -497,13 +510,14 @@ namespace SQP | |
int read = m_Socket.ReceiveFrom(m_Buffer, m_Buffer.Length, SocketFlags.None, ref endpoint); | |
if (read > 0) | |
{ | |
- var bufferWriter = new DataStreamWriter(m_Buffer.Length, Unity.Collections.Allocator.Temp); | |
- bufferWriter.Write(m_Buffer, read); | |
- var reader = new DataStreamReader(bufferWriter, 0, read); | |
- var ctx = default(DataStreamReader.Context); | |
+ //var bufferWriter = new DataStreamWriter(m_Buffer.Length, Unity.Collections.Allocator.Temp); | |
+ //bufferWriter.Write(m_Buffer, read); | |
+ Unity.Collections.NativeArray<byte> written = new Unity.Collections.NativeArray<byte>(m_Buffer, Unity.Collections.Allocator.Temp); | |
+ var reader = new DataStreamReader(written); | |
+ //var ctx = default(DataStreamReader.Context); | |
var header = new SQPHeader(); | |
- header.FromStream(reader, ref ctx); | |
+ header.FromStream(ref reader); | |
SQPMessageType type = (SQPMessageType)header.Type; | |
@@ -521,7 +535,7 @@ namespace SQP | |
rsp.Header.ChallangeId = token; | |
rsp.ToStream(ref writer); | |
- writer.CopyTo(0, writer.Length, ref m_Buffer); | |
+ writer.AsNativeArray().CopyTo(m_Buffer); | |
m_Socket.SendTo(m_Buffer, writer.Length, SocketFlags.None, endpoint); | |
m_OutstandingTokens.Add(endpoint, token); | |
@@ -538,9 +552,9 @@ namespace SQP | |
} | |
m_OutstandingTokens.Remove(endpoint); | |
- ctx = default(DataStreamReader.Context); | |
+ | |
var req = new QueryRequest(); | |
- req.FromStream(reader, ref ctx); | |
+ req.FromStream(ref reader); | |
if ((SQPChunkType)req.RequestedChunks == SQPChunkType.ServerInfo) | |
{ | |
@@ -549,7 +563,9 @@ namespace SQP | |
rsp.QueryHeader.Header.ChallangeId = token; | |
rsp.ToStream(ref writer); | |
- writer.CopyTo(0, writer.Length, ref m_Buffer); | |
+ //writer.CopyTo(0, writer.Length, ref m_Buffer); | |
+ | |
+ writer.AsNativeArray().CopyTo(m_Buffer); | |
m_Socket.SendTo(m_Buffer, writer.Length, SocketFlags.None, endpoint); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Assets/Scripts/Networking/Editor/Tests/SQPTests.cs b/Assets/Scripts/Networking/Editor/Tests/SQPTests.cs | |
index f06d33f..f72c992 100644 | |
--- a/Assets/Scripts/Networking/Editor/Tests/SQPTests.cs | |
+++ b/Assets/Scripts/Networking/Editor/Tests/SQPTests.cs | |
@@ -1,4 +1,4 @@ | |
-using System; | |
+using System; | |
using System.Threading; | |
using System.Net; | |
using NUnit.Framework; | |
@@ -18,7 +18,7 @@ namespace TransportTests | |
DataStreamReader reader; | |
DataStreamWriter writer; | |
- DataStreamReader.Context context; | |
+ //DataStreamReader.Context context; | |
[SetUp] | |
public void Setup() | |
@@ -30,7 +30,7 @@ namespace TransportTests | |
[TearDown] | |
public void Teardown() | |
{ | |
- writer.Dispose(); | |
+ //writer.Dispose(); | |
} | |
[Test] | |
@@ -39,10 +39,10 @@ namespace TransportTests | |
var snd = new ChallangeRequest(); | |
snd.ToStream(ref writer); | |
- reader = new DataStreamReader(writer, 0, writer.Length); | |
- context = default(DataStreamReader.Context); | |
+ reader = new DataStreamReader(writer.AsNativeArray()); | |
+ //context = default(DataStreamReader.Context); | |
var rcv = new ChallangeRequest(); | |
- rcv.FromStream(reader, ref context); | |
+ rcv.FromStream(ref reader); | |
Assert.AreEqual((byte)SQPMessageType.ChallangeRequest, rcv.Header.Type); | |
} | |
@@ -59,9 +59,9 @@ namespace TransportTests | |
var rcv = new ChallangeResponse(); | |
- reader = new DataStreamReader(writer, 0, writer.Length); | |
- context = default(DataStreamReader.Context); | |
- rcv.FromStream(reader, ref context); | |
+ reader = new DataStreamReader(writer.AsNativeArray()); | |
+ //context = default(DataStreamReader.Context); | |
+ rcv.FromStream(ref reader); | |
Assert.AreEqual((byte)SQPMessageType.ChallangeResponse, rcv.Header.Type); | |
Assert.AreEqual(id, (uint)rcv.Header.ChallangeId); | |
@@ -81,9 +81,9 @@ namespace TransportTests | |
snd.ToStream(ref writer); | |
var rcv = new QueryRequest(); | |
- reader = new DataStreamReader(writer, 0, writer.Length); | |
- context = default(DataStreamReader.Context); | |
- rcv.FromStream(reader, ref context); | |
+ reader = new DataStreamReader(writer.AsNativeArray()); | |
+ //context = default(DataStreamReader.Context); | |
+ rcv.FromStream(ref reader); | |
Assert.AreEqual((byte)SQPMessageType.QueryRequest, rcv.Header.Type); | |
Assert.AreEqual(id, (uint)rcv.Header.ChallangeId); | |
@@ -108,9 +108,9 @@ namespace TransportTests | |
snd.ToStream(ref writer); | |
var rcv = new QueryResponseHeader(); | |
- var reader = new DataStreamReader(writer, 0, writer.Length); | |
- context = default(DataStreamReader.Context); | |
- rcv.FromStream(reader, ref context); | |
+ var reader = new DataStreamReader(writer.AsNativeArray()); | |
+ //context = default(DataStreamReader.Context); | |
+ rcv.FromStream(ref reader); | |
Assert.AreEqual((byte)SQPMessageType.QueryResponse, rcv.Header.Type); | |
Assert.AreEqual(id, (uint)rcv.Header.ChallangeId); | |
@@ -131,12 +131,12 @@ namespace TransportTests | |
writer.WriteString(sendLong, encoding); | |
writer.WriteString(sendUTF, encoding); | |
- reader = new DataStreamReader(writer, 0, writer.Length); | |
- context = default(DataStreamReader.Context); | |
+ reader = new DataStreamReader(writer.AsNativeArray()); | |
+ //context = default(DataStreamReader.Context); | |
- var recvShort = reader.ReadString(ref context, encoding); | |
- var recvLong = reader.ReadString(ref context, encoding); | |
- var recvUTF = reader.ReadString(ref context, encoding); | |
+ var recvShort = reader.ReadString( encoding); | |
+ var recvLong = reader.ReadString( encoding); | |
+ var recvUTF = reader.ReadString( encoding); | |
Assert.AreEqual(sendShort, recvShort); | |
@@ -175,9 +175,9 @@ namespace TransportTests | |
snd.ToStream(ref writer); | |
var rcv = new SQP.ServerInfo(); | |
- reader = new DataStreamReader(writer, 0, writer.Length); | |
- context = default(DataStreamReader.Context); | |
- rcv.FromStream(reader, ref context); | |
+ reader = new DataStreamReader(writer.AsNativeArray()); | |
+ //context = default(DataStreamReader.Context); | |
+ rcv.FromStream(ref reader); | |
Assert.AreEqual((byte)SQPMessageType.QueryResponse, rcv.QueryHeader.Header.Type); | |
Assert.AreEqual((uint)header.Header.ChallangeId, (uint)rcv.QueryHeader.Header.ChallangeId); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Assets/Scripts/Game/Main/ThinClientGameLoop.cs b/Assets/Scripts/Game/Main/ThinClientGameLoop.cs | |
index 8dff4d3..73c69d5 100644 | |
--- a/Assets/Scripts/Game/Main/ThinClientGameLoop.cs | |
+++ b/Assets/Scripts/Game/Main/ThinClientGameLoop.cs | |
@@ -1,4 +1,4 @@ | |
-using System.Collections.Generic; | |
+using System.Collections.Generic; | |
using UnityEngine; | |
using Unity.Entities; | |
using UnityEngine.Profiling; | |
@@ -328,8 +328,10 @@ public class ThinClient : INetworkCallbacks, INetworkClientCallbacks | |
#pragma warning disable 618 | |
// we're keeping World.Active until we can properly remove them all | |
// TODO (timj) not compatible with dots netcode | |
- m_GameWorld = World.Active; | |
- World.Active.CreateSystem<GameTimeSystem>(); | |
+ | |
+ m_GameWorld = World.DefaultGameObjectInjectionWorld; | |
+ | |
+ m_GameWorld.CreateSystem<GameTimeSystem>(); | |
#pragma warning restore 618 | |
@@ -540,8 +542,8 @@ public class ThinClient : INetworkCallbacks, INetworkClientCallbacks | |
#pragma warning disable 618 | |
// we're keeping World.Active until we can properly remove them all | |
// FIXME: not compatible with dots netcode | |
- m_GameWorld = World.Active; | |
- World.Active.CreateSystem<GameTimeSystem>(); | |
+ m_GameWorld = World.DefaultGameObjectInjectionWorld; | |
+ m_GameWorld.CreateSystem<GameTimeSystem>(); | |
#pragma warning restore 618 | |
//Game.game.clientFrontend.ShowMenu(ClientFrontend.MenuShowing.None); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment