Progress character customization

This commit is contained in:
Marius 2025-01-30 21:02:41 +01:00
parent bf545f3baf
commit 5708c0bbbd
20 changed files with 327 additions and 191 deletions

13
.idea/.idea.MP-TD-repo/.idea/.gitignore generated vendored Normal file
View File

@ -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

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>

6
.idea/.idea.MP-TD-repo/.idea/vcs.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View File

@ -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}

View File

@ -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

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 5aa1dc99cce5354e87e505b951e71c72
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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}

View File

@ -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

View File

@ -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<ClientTeamRequest>();
}
[BurstCompile]
public void OnUpdate(ref SystemState state)
{
//Get Requested team and all network ids that want to join
var teamrequest = SystemAPI.GetSingleton<ClientTeamRequest>();
var ecb = new EntityCommandBuffer(Allocator.Temp);
var requestedTeam = SystemAPI.GetSingleton<ClientTeamRequest>().Value;
var requestedColor = SystemAPI.GetSingleton<ClientTeamRequest>().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<NetworkStreamInGame>(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);
}
}
}

View File

@ -6,7 +6,7 @@ namespace Client
{
public struct ClientTeamRequest : IComponentData
{
public TeamType Value;
public Color Color;
public TeamType Value;
public Color Color;
}
}

View File

@ -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<CharacterTag>(entity);
AddComponent<NewCharacterTag>(entity);
AddComponent<TdTeam>(entity);
AddComponent<CharacterConfig>(entity);
}
}
}

View File

@ -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

View File

@ -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<RefRW<PhysicsMass>, RefRO<CharacterConfig>>().WithAny<NewCharacterTag>().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<NewCharacterTag>(newCharacterEntity);
}
ecb.Playback(state.EntityManager);
}
public void OnDestroy(ref SystemState state)
{
}
}
}

View File

@ -3,7 +3,7 @@ using UnityEngine;
namespace Common
{
class TDPrefabsAuthoring : MonoBehaviour
public class TDPrefabsAuthoring : MonoBehaviour
{
// public GameObject PrefabController;
public GameObject PrefabCharacter;

View File

@ -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<TdPrefabs>();
var builder = new EntityQueryBuilder(Allocator.Temp).WithAll<TdTeamRequest, ReceiveRpcCommandRequest>();
state.RequireForUpdate(state.GetEntityQuery(builder));
state.RequireForUpdate<TdPrefabs>();
}
public void OnUpdate(ref SystemState state)
{
var ecb = new EntityCommandBuffer(Allocator.Temp);
var ecb = new EntityCommandBuffer(Allocator.Temp);
var characterPrefab = SystemAPI.GetSingleton<TdPrefabs>().Character;
foreach (var (teamRequest, requestSource, requestEntity) in SystemAPI.Query<TdTeamRequest, ReceiveRpcCommandRequest>().WithEntityAccess())
@ -35,20 +37,37 @@ namespace Server
var requestedTeam = teamRequest.Value;
var requestedColor = teamRequest.Color;
var clientId = SystemAPI.GetComponent<NetworkId>(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<NetworkId>(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});
}

View File

@ -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<NetworkStreamDriver>());
using var networkDriverQuery = serverWorld.EntityManager.CreateEntityQuery(ComponentType.ReadWrite<NetworkStreamDriver>());
networkDriverQuery.GetSingletonRW<NetworkStreamDriver>().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,
});
}
}

View File

@ -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

View File

@ -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:

View File

@ -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