Start FPS controls
This commit is contained in:
1 parent
be5a424911
commit
08e27ca2f1
16 files changed
+634
-25
No files matched your search
@@ -25,7 +25,9 @@ namespace Server
|
||||
public void OnUpdate(ref SystemState state)
|
||||
{
|
||||
var ecb = new EntityCommandBuffer(Allocator.Temp);
|
||||
var characterPrefab = SystemAPI.GetSingleton<TdPrefabs>().Character;
|
||||
var tdPrefabs = SystemAPI.GetSingleton<TdPrefabs>();
|
||||
var characterPrefab = tdPrefabs.Character;
|
||||
var fpsPlayerPrefab = tdPrefabs.FPSPlayer;
|
||||
|
||||
foreach (var (teamRequest, requestSource, requestEntity) in SystemAPI.Query<TdTeamRequest, ReceiveRpcCommandRequest>().WithEntityAccess())
|
||||
{
|
||||
@@ -55,12 +57,16 @@ namespace Server
|
||||
Debug.Log($"Server is assigning ClientId {clientId} to team {requestedTeam}");
|
||||
|
||||
var newCharacter = ecb.Instantiate(characterPrefab);
|
||||
var newFPSPlayer = ecb.Instantiate(fpsPlayerPrefab);
|
||||
|
||||
ecb.SetName(newCharacter, "Character");
|
||||
|
||||
var newTransform = LocalTransform.FromPosition(spawnPosition);
|
||||
ecb.SetComponent(newCharacter, newTransform);
|
||||
|
||||
ecb.SetComponent(newCharacter, new GhostOwner { NetworkId = clientId});
|
||||
ecb.SetComponent(newFPSPlayer, new GhostOwner { NetworkId = clientId});
|
||||
|
||||
ecb.SetComponent(newCharacter, new TdTeam { Value = requestedTeam });
|
||||
|
||||
ecb.SetComponent(newCharacter, new CharacterConfig
|
||||
@@ -68,8 +74,14 @@ namespace Server
|
||||
Color = requestedColor
|
||||
});
|
||||
|
||||
//Setup connection
|
||||
FirstPersonPlayer playerComponent = SystemAPI.GetComponent<FirstPersonPlayer>(tdPrefabs.FPSPlayer);
|
||||
playerComponent.ControlledCharacter = newCharacter;
|
||||
ecb.SetComponent(newFPSPlayer, playerComponent);
|
||||
|
||||
//Destroy character prefab, when client disconnects
|
||||
ecb.AppendToBuffer(requestSource.SourceConnection, new LinkedEntityGroup{Value = newCharacter});
|
||||
ecb.AppendToBuffer(requestSource.SourceConnection, new LinkedEntityGroup{Value = newFPSPlayer});
|
||||
}
|
||||
|
||||
ecb.Playback(state.EntityManager);
|
||||
|
||||
Reference in new issue
Block a user