diff --git a/.idea/.idea.MP-TD-repo/.idea/.gitignore b/.idea/.idea.MP-TD-repo/.idea/.gitignore
new file mode 100644
index 0000000..eaff193
--- /dev/null
+++ b/.idea/.idea.MP-TD-repo/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/contentModel.xml
+/.idea.MP-TD-repo.iml
+/modules.xml
+/projectSettingsUpdater.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.MP-TD-repo/.idea/indexLayout.xml b/.idea/.idea.MP-TD-repo/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/.idea.MP-TD-repo/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.MP-TD-repo/.idea/vcs.xml b/.idea/.idea.MP-TD-repo/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/.idea.MP-TD-repo/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assets/Prefabs/CharacterPrefab.prefab b/Assets/Prefabs/CharacterPrefab.prefab
index 5b262d7..f1681af 100644
--- a/Assets/Prefabs/CharacterPrefab.prefab
+++ b/Assets/Prefabs/CharacterPrefab.prefab
@@ -15,6 +15,7 @@ GameObject:
- component: {fileID: 8700726934599842024}
- component: {fileID: 1854736588908238760}
- component: {fileID: 3403150522591491636}
+ - component: {fileID: 742358034037228598}
m_Layer: 0
m_Name: CharacterPrefab
m_TagString: Untagged
@@ -34,7 +35,8 @@ Transform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
- m_Children: []
+ m_Children:
+ - {fileID: 2348594743945901555}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!136 &6060867110873050882
@@ -84,12 +86,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 7c79d771cedb4794bf100ce60df5f764, type: 3}
m_Name:
m_EditorClassIdentifier:
- DefaultGhostMode: 0
+ DefaultGhostMode: 1
SupportedGhostModes: 3
OptimizationMode: 0
- Importance: 1
+ Importance: 1000
prefabId:
- HasOwner: 0
+ HasOwner: 1
SupportAutoCommandTarget: 1
TrackInterpolationDelay: 0
GhostGroup: 0
@@ -161,3 +163,116 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 544609009a6605d44a92eca2ad0145ad, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!54 &742358034037228598
+Rigidbody:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1555240849038293811}
+ serializedVersion: 4
+ m_Mass: 1
+ m_Drag: 0
+ m_AngularDrag: 0.05
+ m_CenterOfMass: {x: 0, y: 0, z: 0}
+ m_InertiaTensor: {x: 1, y: 1, z: 1}
+ m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ImplicitCom: 1
+ m_ImplicitTensor: 1
+ m_UseGravity: 1
+ m_IsKinematic: 0
+ m_Interpolate: 0
+ m_Constraints: 0
+ m_CollisionDetection: 0
+--- !u!1 &5307440377108821305
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2348594743945901555}
+ - component: {fileID: 2119331458662122770}
+ - component: {fileID: 4415356237060297836}
+ m_Layer: 0
+ m_Name: Cube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2348594743945901555
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5307440377108821305}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.391, z: 0.419}
+ m_LocalScale: {x: 0.6016427, y: 0.2015024, z: 0.1763629}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1555240849038293810}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &2119331458662122770
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5307440377108821305}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &4415356237060297836
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5307440377108821305}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
diff --git a/Assets/Samples/Character Controller/1.2.4/Standard Characters/Common/Materials/SimpleMaterial_White.mat b/Assets/Samples/Character Controller/1.2.4/Standard Characters/Common/Materials/SimpleMaterial_White.mat
index 7802c55..1b114ee 100644
--- a/Assets/Samples/Character Controller/1.2.4/Standard Characters/Common/Materials/SimpleMaterial_White.mat
+++ b/Assets/Samples/Character Controller/1.2.4/Standard Characters/Common/Materials/SimpleMaterial_White.mat
@@ -16,12 +16,12 @@ MonoBehaviour:
--- !u!21 &2100000
Material:
serializedVersion: 8
- m_ObjectHideFlags: 0
+ m_ObjectHideFlags: 32
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SimpleMaterial_White
- m_Shader: {fileID: -6465566751694194690, guid: 2d40c85a2e8955d4ea370f6fd8c48a34, type: 3}
+ m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
@@ -30,7 +30,8 @@ Material:
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
- stringTagMap: {}
+ stringTagMap:
+ RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
@@ -96,8 +97,11 @@ Material:
m_Ints: []
m_Floats:
- Vector1_3962d271a12b44169f6af5da4a6b1eae: 0.5
+ - _AddPrecomputedVelocity: 0
- _AlphaClip: 0
+ - _AlphaToMask: 0
- _Blend: 0
+ - _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
@@ -106,6 +110,7 @@ Material:
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
+ - _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
@@ -120,6 +125,7 @@ Material:
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
+ - _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
diff --git a/Assets/SceneDependencyCache/5aa1dc99cce5354e87e505b951e71c72.sceneWithBuildSettings b/Assets/SceneDependencyCache/5aa1dc99cce5354e87e505b951e71c72.sceneWithBuildSettings
new file mode 100644
index 0000000..f237d0d
Binary files /dev/null and b/Assets/SceneDependencyCache/5aa1dc99cce5354e87e505b951e71c72.sceneWithBuildSettings differ
diff --git a/Assets/SceneDependencyCache/5aa1dc99cce5354e87e505b951e71c72.sceneWithBuildSettings.meta b/Assets/SceneDependencyCache/5aa1dc99cce5354e87e505b951e71c72.sceneWithBuildSettings.meta
new file mode 100644
index 0000000..473a4c1
--- /dev/null
+++ b/Assets/SceneDependencyCache/5aa1dc99cce5354e87e505b951e71c72.sceneWithBuildSettings.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 5aa1dc99cce5354e87e505b951e71c72
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scenes/LobbyScene.unity b/Assets/Scenes/LobbyScene.unity
index f36ad06..509f5f8 100644
--- a/Assets/Scenes/LobbyScene.unity
+++ b/Assets/Scenes/LobbyScene.unity
@@ -494,7 +494,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0.000024508086}
m_SizeDelta: {x: 0, y: 300}
m_Pivot: {x: 0, y: 1}
--- !u!1 &526636516
@@ -800,6 +800,51 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 677145224}
m_CullTransparentMesh: 1
+--- !u!1 &792633462
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 792633464}
+ - component: {fileID: 792633463}
+ m_Layer: 0
+ m_Name: Bootstrapper
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &792633463
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 792633462}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 6d22fe1802f646eeb96208b5b2315fd6, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ ForceAutomaticBootstrapInScene: 0
+--- !u!4 &792633464
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 792633462}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 6.9057565, y: 4.3522143, z: -5.1578074}
+ 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!1 &847906850
GameObject:
m_ObjectHideFlags: 0
@@ -992,116 +1037,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1096722170}
m_CullTransparentMesh: 1
---- !u!1 &1155844015
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1155844019}
- - component: {fileID: 1155844018}
- - component: {fileID: 1155844017}
- - component: {fileID: 1155844016}
- m_Layer: 0
- m_Name: Capsule
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!136 &1155844016
-CapsuleCollider:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1155844015}
- m_Material: {fileID: 0}
- m_IncludeLayers:
- serializedVersion: 2
- m_Bits: 0
- m_ExcludeLayers:
- serializedVersion: 2
- m_Bits: 0
- m_LayerOverridePriority: 0
- m_IsTrigger: 0
- m_ProvidesContacts: 0
- m_Enabled: 1
- serializedVersion: 2
- m_Radius: 0.5
- m_Height: 2
- m_Direction: 1
- m_Center: {x: 0, y: 0, z: 0}
---- !u!23 &1155844017
-MeshRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1155844015}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_StaticShadowCaster: 0
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RayTracingMode: 2
- m_RayTraceProcedural: 0
- m_RayTracingAccelStructBuildFlagsOverride: 0
- m_RayTracingAccelStructBuildFlags: 1
- m_SmallMeshCulling: 1
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_ReceiveGI: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 1
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_AdditionalVertexStreams: {fileID: 0}
---- !u!33 &1155844018
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1155844015}
- m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
---- !u!4 &1155844019
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1155844015}
- serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 5, y: 1, z: -3.1}
- 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!1 &1195820793
GameObject:
m_ObjectHideFlags: 0
@@ -1782,4 +1717,4 @@ SceneRoots:
- {fileID: 640224008}
- {fileID: 847906853}
- {fileID: 515533932}
- - {fileID: 1155844019}
+ - {fileID: 792633464}
diff --git a/Assets/Scenes/TD_Scene.unity b/Assets/Scenes/TD_Scene.unity
index f96b17b..79e4e26 100644
--- a/Assets/Scenes/TD_Scene.unity
+++ b/Assets/Scenes/TD_Scene.unity
@@ -206,13 +206,13 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 330585543}
serializedVersion: 2
- m_LocalRotation: {x: 0.2588191, y: 0, z: 0, w: 0.9659258}
- m_LocalPosition: {x: 0, y: 6.19, z: -8.58}
+ m_LocalRotation: {x: 0, y: 0.9659258, z: -0.2588191, w: 0}
+ m_LocalPosition: {x: 0, y: 4, z: 8.5}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
- m_LocalEulerAnglesHint: {x: 30, y: 0, z: 0}
+ m_LocalEulerAnglesHint: {x: 30, y: 180, z: 0}
--- !u!114 &330585547
MonoBehaviour:
m_ObjectHideFlags: 0
diff --git a/Assets/Scripts/Client/ClientRequestGameEntrySystem.cs b/Assets/Scripts/Client/ClientRequestGameEntrySystem.cs
index 6cb8a26..3469345 100644
--- a/Assets/Scripts/Client/ClientRequestGameEntrySystem.cs
+++ b/Assets/Scripts/Client/ClientRequestGameEntrySystem.cs
@@ -11,7 +11,6 @@ namespace Client
{
private EntityQuery _pendingNetworkIdQuery;
- [BurstCompile]
public void OnCreate(ref SystemState state)
{
//Get all entities connected to the server (having networkID), but not in game yet (no NetworkStreamInGame)
@@ -23,42 +22,36 @@ namespace Client
state.RequireForUpdate();
}
- [BurstCompile]
public void OnUpdate(ref SystemState state)
{
//Get Requested team and all network ids that want to join
+ var teamrequest = SystemAPI.GetSingleton();
var ecb = new EntityCommandBuffer(Allocator.Temp);
- var requestedTeam = SystemAPI.GetSingleton().Value;
- var requestedColor = SystemAPI.GetSingleton().Color;
var pendingNetworkIds = _pendingNetworkIdQuery.ToEntityArray(Allocator.Temp);
foreach (var pendingNetworkId in pendingNetworkIds)
{
//mark network ID as joined in game - it will receive Snapshots
ecb.AddComponent(pendingNetworkId);
+
+ //create entity that holds request
var requestTeamEntity = ecb.CreateEntity();
//Give entity Rpc command request and team request so that the server can handle it
ecb.AddComponent(requestTeamEntity, new TdTeamRequest
{
- Value = requestedTeam,
- Color = requestedColor
+ Value = teamrequest.Value,
+ Color = teamrequest.Color
});
ecb.AddComponent(requestTeamEntity, new SendRpcCommandRequest()
{
TargetConnection = pendingNetworkId
});
-
- //Broadcast Rpc
- ecb.Playback(state.EntityManager);
}
- }
-
- [BurstCompile]
- public void OnDestroy(ref SystemState state)
- {
-
+
+ //Broadcast Rpc
+ ecb.Playback(state.EntityManager);
}
}
}
diff --git a/Assets/Scripts/Client/ClientTeamRequest.cs b/Assets/Scripts/Client/ClientTeamRequest.cs
index 87faf0e..380d349 100644
--- a/Assets/Scripts/Client/ClientTeamRequest.cs
+++ b/Assets/Scripts/Client/ClientTeamRequest.cs
@@ -6,7 +6,7 @@ namespace Client
{
public struct ClientTeamRequest : IComponentData
{
- public TeamType Value;
- public Color Color;
+ public TeamType Value;
+ public Color Color;
}
}
\ No newline at end of file
diff --git a/Assets/Scripts/Common/CharacterAuthoring.cs b/Assets/Scripts/Common/CharacterAuthoring.cs
index af98a15..3ab66eb 100644
--- a/Assets/Scripts/Common/CharacterAuthoring.cs
+++ b/Assets/Scripts/Common/CharacterAuthoring.cs
@@ -1,4 +1,6 @@
+using System.Linq.Expressions;
using Unity.Entities;
+using Unity.Rendering;
using UnityEngine;
namespace Common
@@ -13,6 +15,8 @@ namespace Common
AddComponent(entity);
AddComponent(entity);
AddComponent(entity);
+
+ AddComponent(entity);
}
}
}
diff --git a/Assets/Scripts/Common/CharacterComponents.cs b/Assets/Scripts/Common/CharacterComponents.cs
index e0d5160..83de9b9 100644
--- a/Assets/Scripts/Common/CharacterComponents.cs
+++ b/Assets/Scripts/Common/CharacterComponents.cs
@@ -1,16 +1,16 @@
using Unity.Entities;
using Unity.NetCode;
+using UnityEngine;
namespace Common
{
- public struct CharacterTag : IComponentData
- {
-
- }
+ public struct CharacterTag : IComponentData { }
- public struct NewCharacterTag : IComponentData
+ public struct NewCharacterTag : IComponentData { }
+
+ public struct CharacterConfig : IComponentData
{
-
+ [GhostField] public Color Color;
}
public struct TdTeam : IComponentData
diff --git a/Assets/Scripts/Common/InitializeCharacterSystem.cs b/Assets/Scripts/Common/InitializeCharacterSystem.cs
index 5e33e10..2fa688a 100644
--- a/Assets/Scripts/Common/InitializeCharacterSystem.cs
+++ b/Assets/Scripts/Common/InitializeCharacterSystem.cs
@@ -1,23 +1,43 @@
using Unity.Burst;
+using Unity.Collections;
using Unity.Entities;
+using Unity.Mathematics;
+using Unity.Physics;
+using Unity.Rendering;
+using UnityEngine;
+using UnityEngine.Rendering;
-partial struct InitializeCharacterSystem : ISystem
+namespace Common
{
- [BurstCompile]
- public void OnCreate(ref SystemState state)
+ [UpdateInGroup(typeof(SimulationSystemGroup), OrderFirst = true)]
+ [WorldSystemFilter(WorldSystemFilterFlags.ServerSimulation | WorldSystemFilterFlags.ClientSimulation)]
+ public partial struct InitializeCharacterSystem : ISystem
{
-
- }
+ public void OnCreate(ref SystemState state)
+ {
+ }
- [BurstCompile]
- public void OnUpdate(ref SystemState state)
- {
-
- }
+ public void OnUpdate(ref SystemState state)
+ {
+ var ecb = new EntityCommandBuffer(Allocator.Temp);
+ foreach (var (physicsMass, config, newCharacterEntity) in SystemAPI.Query, RefRO>().WithAny().WithEntityAccess())
+ {
+ physicsMass.ValueRW.InverseInertia[0] = 0;
+ physicsMass.ValueRW.InverseInertia[1] = 0;
+ physicsMass.ValueRW.InverseInertia[2] = 0;
- [BurstCompile]
- public void OnDestroy(ref SystemState state)
- {
+ var requestedColor = config.ValueRO.Color;
+ var color = new float4(requestedColor.r, requestedColor.g, requestedColor.b, requestedColor.a);
+ ecb.AddComponent(newCharacterEntity, new URPMaterialPropertyBaseColor{Value = color});
+ ecb.RemoveComponent(newCharacterEntity);
+ }
+
+ ecb.Playback(state.EntityManager);
+ }
+
+ public void OnDestroy(ref SystemState state)
+ {
+ }
}
}
diff --git a/Assets/Scripts/Common/TDPrefabsAuthoring.cs b/Assets/Scripts/Common/TDPrefabsAuthoring.cs
index ba7e215..085c06e 100644
--- a/Assets/Scripts/Common/TDPrefabsAuthoring.cs
+++ b/Assets/Scripts/Common/TDPrefabsAuthoring.cs
@@ -3,7 +3,7 @@ using UnityEngine;
namespace Common
{
- class TDPrefabsAuthoring : MonoBehaviour
+ public class TDPrefabsAuthoring : MonoBehaviour
{
// public GameObject PrefabController;
public GameObject PrefabCharacter;
diff --git a/Assets/Scripts/Server/ServerProcessGameEntryRequestSystem.cs b/Assets/Scripts/Server/ServerProcessGameEntryRequestSystem.cs
index 1649732..314ff78 100644
--- a/Assets/Scripts/Server/ServerProcessGameEntryRequestSystem.cs
+++ b/Assets/Scripts/Server/ServerProcessGameEntryRequestSystem.cs
@@ -1,5 +1,6 @@
using Common;
using RpcComponents;
+using Unity.Burst;
using Unity.Collections;
using Unity.Entities;
using Unity.Mathematics;
@@ -15,14 +16,15 @@ namespace Server
{
public void OnCreate(ref SystemState state)
{
+ state.RequireForUpdate();
var builder = new EntityQueryBuilder(Allocator.Temp).WithAll();
state.RequireForUpdate(state.GetEntityQuery(builder));
- state.RequireForUpdate();
}
+
public void OnUpdate(ref SystemState state)
{
- var ecb = new EntityCommandBuffer(Allocator.Temp);
+ var ecb = new EntityCommandBuffer(Allocator.Temp);
var characterPrefab = SystemAPI.GetSingleton().Character;
foreach (var (teamRequest, requestSource, requestEntity) in SystemAPI.Query().WithEntityAccess())
@@ -35,20 +37,37 @@ namespace Server
var requestedTeam = teamRequest.Value;
var requestedColor = teamRequest.Color;
- var clientId = SystemAPI.GetComponent(requestSource.SourceConnection).Value;
+
- Debug.Log($"Server is assigning ClientId {clientId} to team {requestedTeam}");
+ float3 spawnPosition = float3.zero;
- var newCharacter = ecb.Instantiate(characterPrefab);
- var spawnPosition = new float3(0f, 1f, 0f);
- var newTransform = LocalTransform.FromPosition(spawnPosition);
+ var clientId = SystemAPI.GetComponent(requestSource.SourceConnection).Value;
+ switch (clientId)
+ {
+ case 1:
+ spawnPosition = new float3(0f, 1f, 0f);
+ break;
+ case 2:
+ spawnPosition = new float3(2f, 1f, 0f);
+ break;
+ }
- ecb.SetComponent(newCharacter, newTransform);
+ Debug.Log($"Server is assigning ClientId {clientId} to team {requestedTeam}");
+
+ var newCharacter = ecb.Instantiate(characterPrefab);
ecb.SetName(newCharacter, "Character");
+
+ var newTransform = LocalTransform.FromPosition(spawnPosition);
+ ecb.SetComponent(newCharacter, newTransform);
- ecb.SetComponent(newCharacter, new TdTeam { Value = requestedTeam });
- ecb.AddComponent(newCharacter, new GhostOwner { NetworkId = clientId});
+ ecb.SetComponent(newCharacter, new GhostOwner { NetworkId = clientId});
+ ecb.SetComponent(newCharacter, new TdTeam { Value = requestedTeam });
+ ecb.SetComponent(newCharacter, new CharacterConfig
+ {
+ Color = requestedColor
+ });
+
//Destroy character prefab, when client disconnects
ecb.AppendToBuffer(requestSource.SourceConnection, new LinkedEntityGroup{Value = newCharacter});
}
diff --git a/Assets/Scripts/UI/ClientConnectionManager.cs b/Assets/Scripts/UI/ClientConnectionManager.cs
index 06e7266..f821e5e 100644
--- a/Assets/Scripts/UI/ClientConnectionManager.cs
+++ b/Assets/Scripts/UI/ClientConnectionManager.cs
@@ -100,6 +100,7 @@ namespace UI
}
}
+
private void StartServer()
{
//Create server world
@@ -108,13 +109,12 @@ namespace UI
//Define endpoint for world to listen to, and set network driver to listen to specified port
var serverEndPoint = NetworkEndpoint.AnyIpv4.WithPort(Port);
{
- using var networkDriverQuery =
- serverWorld.EntityManager.CreateEntityQuery(ComponentType.ReadWrite());
-
+ using var networkDriverQuery = serverWorld.EntityManager.CreateEntityQuery(ComponentType.ReadWrite());
networkDriverQuery.GetSingletonRW().ValueRW.Listen(serverEndPoint);
}
}
+
private void StartClient()
{
//Create server world
@@ -131,10 +131,12 @@ namespace UI
//create entity with join request component, so that the ClientRequestGameEntrySystem can take over
var teamRequestEntity = clientWorld.EntityManager.CreateEntity();
+ var color = _colorPicker.Color;
+
clientWorld.EntityManager.AddComponentData(teamRequestEntity, new ClientTeamRequest
{
- Value = TeamType.Player,
- Color = _colorPicker.Color
+ Value = TeamType.Player,
+ Color = color,
});
}
}
diff --git a/Assets/Settings/PC_RPAsset.asset b/Assets/Settings/PC_RPAsset.asset
index 8b30a06..fb240e0 100644
--- a/Assets/Settings/PC_RPAsset.asset
+++ b/Assets/Settings/PC_RPAsset.asset
@@ -78,11 +78,11 @@ MonoBehaviour:
m_UseAdaptivePerformance: 1
m_ColorGradingMode: 0
m_ColorGradingLutSize: 32
+ m_AllowPostProcessAlphaOutput: 0
m_UseFastSRGBLinearConversion: 0
m_SupportDataDrivenLensFlare: 1
m_SupportScreenSpaceLensFlare: 1
m_GPUResidentDrawerMode: 0
- m_UseLegacyLightmaps: 0
m_SmallMeshScreenPercentage: 0
m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0
m_ShadowType: 1
@@ -100,15 +100,16 @@ MonoBehaviour:
m_Keys: []
m_Values:
m_PrefilteringModeMainLightShadows: 3
- m_PrefilteringModeAdditionalLight: 4
- m_PrefilteringModeAdditionalLightShadows: 0
+ m_PrefilteringModeAdditionalLight: 0
+ m_PrefilteringModeAdditionalLightShadows: 2
m_PrefilterXRKeywords: 1
- m_PrefilteringModeForwardPlus: 1
+ m_PrefilteringModeForwardPlus: 2
m_PrefilteringModeDeferredRendering: 0
- m_PrefilteringModeScreenSpaceOcclusion: 1
+ m_PrefilteringModeScreenSpaceOcclusion: 2
m_PrefilterDebugKeywords: 1
- m_PrefilterWriteRenderingLayers: 0
+ m_PrefilterWriteRenderingLayers: 1
m_PrefilterHDROutput: 1
+ m_PrefilterAlphaOutput: 1
m_PrefilterSSAODepthNormals: 0
m_PrefilterSSAOSourceDepthLow: 1
m_PrefilterSSAOSourceDepthMedium: 1
@@ -120,10 +121,10 @@ MonoBehaviour:
m_PrefilterSSAOSampleCountHigh: 1
m_PrefilterDBufferMRT1: 1
m_PrefilterDBufferMRT2: 1
- m_PrefilterDBufferMRT3: 0
- m_PrefilterSoftShadowsQualityLow: 0
- m_PrefilterSoftShadowsQualityMedium: 0
- m_PrefilterSoftShadowsQualityHigh: 0
+ m_PrefilterDBufferMRT3: 1
+ m_PrefilterSoftShadowsQualityLow: 1
+ m_PrefilterSoftShadowsQualityMedium: 1
+ m_PrefilterSoftShadowsQualityHigh: 1
m_PrefilterSoftShadows: 0
m_PrefilterScreenCoord: 1
m_PrefilterNativeRenderPass: 1
diff --git a/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset b/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset
index cb11b1f..bfe8999 100644
--- a/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset
+++ b/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset
@@ -55,7 +55,17 @@ MonoBehaviour:
- rid: 8712630790384254976
- rid: 7930710930656067584
m_RuntimeSettings:
- m_List: []
+ m_List:
+ - rid: 6852985685364965378
+ - rid: 6852985685364965379
+ - rid: 6852985685364965380
+ - rid: 6852985685364965381
+ - rid: 6852985685364965384
+ - rid: 6852985685364965385
+ - rid: 6852985685364965392
+ - rid: 6852985685364965394
+ - rid: 8712630790384254976
+ - rid: 7930710930656067584
m_AssetVersion: 8
m_ObsoleteDefaultVolumeProfile: {fileID: 0}
m_RenderingLayerNames:
diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset
index aa5a1c3..a148e49 100644
--- a/ProjectSettings/GraphicsSettings.asset
+++ b/ProjectSettings/GraphicsSettings.asset
@@ -36,10 +36,8 @@ GraphicsSettings:
- {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
m_PreloadedShaders: []
m_PreloadShadersBatchTimeLimit: -1
- m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
- type: 0}
- m_CustomRenderPipeline: {fileID: 11400000, guid: 4b83569d67af61e458304325a23e5dfd,
- type: 2}
+ m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+ m_CustomRenderPipeline: {fileID: 11400000, guid: 4b83569d67af61e458304325a23e5dfd, type: 2}
m_TransparencySortMode: 0
m_TransparencySortAxis: {x: 0, y: 0, z: 1}
m_DefaultRenderingPath: 1
@@ -60,8 +58,7 @@ GraphicsSettings:
m_FogKeepExp2: 1
m_AlbedoSwatchInfos: []
m_RenderPipelineGlobalSettingsMap:
- UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 18dc0cd2c080841dea60987a38ce93fa,
- type: 2}
+ UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 18dc0cd2c080841dea60987a38ce93fa, type: 2}
m_LightsUseLinearIntensity: 1
m_LightsUseColorTemperature: 1
m_LogWhenShaderIsCompiled: 0