Netcode Bootstrap
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
using ProjectM.Simulation;
|
||||
using Unity.Entities;
|
||||
using UnityEngine;
|
||||
|
||||
namespace ProjectM.Authoring
|
||||
{
|
||||
/// <summary>
|
||||
/// Authoring placed once in the gameplay subscene. Bakes a <see cref="PlayerSpawner"/> singleton
|
||||
/// holding the player ghost prefab entity and a spawn point, which the server's
|
||||
/// GoInGameServerSystem instantiates on each connect.
|
||||
/// </summary>
|
||||
public class PlayerSpawnerAuthoring : MonoBehaviour
|
||||
{
|
||||
[Tooltip("The Player ghost prefab to spawn for each connected client.")]
|
||||
public GameObject PlayerPrefab;
|
||||
|
||||
public Vector3 SpawnPoint = Vector3.zero;
|
||||
|
||||
private class PlayerSpawnerBaker : Baker<PlayerSpawnerAuthoring>
|
||||
{
|
||||
public override void Bake(PlayerSpawnerAuthoring authoring)
|
||||
{
|
||||
// The spawner itself needs no transform; it is a data singleton.
|
||||
var entity = GetEntity(authoring, TransformUsageFlags.None);
|
||||
|
||||
AddComponent(entity, new PlayerSpawner
|
||||
{
|
||||
PlayerPrefab = GetEntity(authoring.PlayerPrefab, TransformUsageFlags.Dynamic),
|
||||
SpawnPoint = authoring.SpawnPoint
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5e56c91ba352644bd900142035ff2799
|
||||
Reference in New Issue
Block a user