using ECM2.Examples.FirstPerson; using Obvious.Soap; using UnityEngine; public class MultiplayerPlayerAvatarSpawner : MonoBehaviour { [SerializeField] private ScriptableEventNetworkObjectSpawn OnNetworkObjectSpawn; [SerializeField] private GameObjectVariable playerGameObject; private void MultiplayerManager_OnInSession() { Debug.Log("(MultiplayerPlayerAvatarSpawner) Spawning player avatar"); OnNetworkObjectSpawn.Raise(new NetworkObjectSpawn("MultiplayerAvatarControler", playerGameObject.Value.transform.position, playerGameObject.Value.transform.rotation)); } private void MultiplayerAvatarControler_OnStartLocal(MultiplayerAvatarControler multiplayerAvatarControler) { if (playerGameObject.Value != null && playerGameObject.Value.TryGetComponent(out var component)) { Debug.Log("(MultiplayerPlayerAvatarSpawner) Initializing player avatar"); multiplayerAvatarControler.Init(component); } } private void OnEnable() { MultiplayerManager.OnInSession += MultiplayerManager_OnInSession; MultiplayerAvatarControler.OnStartLocal += MultiplayerAvatarControler_OnStartLocal; } private void OnDisable() { MultiplayerManager.OnInSession -= MultiplayerManager_OnInSession; MultiplayerAvatarControler.OnStartLocal -= MultiplayerAvatarControler_OnStartLocal; } }