Added MainMenu, Bootstrap and Factory scenes
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using Unity.Netcode;
|
||||
using UnityEngine;
|
||||
|
||||
public interface IPlayerSystem { void Initialize(PlayerFacade facade); }
|
||||
|
||||
[RequireComponent(typeof(NetworkObject))]
|
||||
public sealed class PlayerFacade : NetworkBehaviour
|
||||
{
|
||||
[SerializeField] private MonoBehaviour[] initializationOrder;
|
||||
|
||||
public event Action<PlayerFacade> Initialized;
|
||||
|
||||
public override void OnNetworkSpawn()
|
||||
{
|
||||
MonoBehaviour[] systems = initializationOrder.Length > 0
|
||||
? initializationOrder
|
||||
: GetComponents<MonoBehaviour>();
|
||||
foreach (MonoBehaviour system in systems)
|
||||
if (system is IPlayerSystem playerSystem) playerSystem.Initialize(this);
|
||||
Initialized?.Invoke(this);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user